00000000: FF 00 30 98 37 27 10 00 3B 2A 2A 2A 2A 2A 2A 2A |..0.7'..;*******|
00000010: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
00000020: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A AA 20 00 BB 30 00 |**********. ..0.|
00000030: 3B 20 6D 6F 64 69 66 69 7A 69 65 72 74 65 20 64 |; modifizierte d|
00000040: 65 66 66 6E 20 2D 20 66 75 6E 6B 74 69 6F EE 40 |effn - funktio.@|
00000050: 00 BB 50 00 3B 20 28 63 29 20 77 65 72 6E 65 72 |..P.; (c) werner|
00000060: 20 68 61 61 6B 20 20 20 20 31 39 38 B5 60 00 BB | haak 198.`..|
00000070: 70 00 3B 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |p.;*************|
00000080: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************|
00000090: 2A 2A 2A 2A AA 80 00 BB 90 00 BB 00 01 3B 20 64 |****.........; d|
000000A0: 69 65 20 64 65 66 66 6E 20 66 75 6E 6B 74 69 6F |ie deffn funktio|
000000B0: 6E 20 6B 61 6E 6E 20 6E 75 6E 20 61 75 63 68 20 |n kann nun auch |
000000C0: 65 69 6E E5 10 01 3B 20 73 74 72 69 6E 67 76 61 |ein...; stringva|
000000D0: 72 69 61 62 6C 65 20 7A 75 67 65 77 69 65 73 65 |riable zugewiese|
000000E0: 6E 20 62 65 6B 6F 6D 6D 65 EE 20 01 BB 30 01 3B |n bekomme. ..0.;|
000000F0: 20 64 65 72 20 6E 65 75 65 20 73 79 6E 74 61 78 | der neue syntax|
00000100: 20 68 65 69 73 73 74 20 6E 75 6E BA 40 01 BB 50 | heisst nun.@..P|
00000110: 01 3B 20 64 65 66 20 66 6E 20 66 28 78 29 20 3D |.; def fn f(x) =|
00000120: 20 75 73 72 20 28 61 62 24 A9 60 01 3B 20 20 20 | usr (ab$.`.; |
00000130: 20 20 20 20 20 20 5E 20 20 20 20 20 20 20 20 20 | ^ |
00000140: 20 20 DE 70 01 3B 20 20 20 20 20 62 65 6C 69 65 | .p.; belie|
00000150: 62 69 67 20 20 20 20 20 73 74 72 69 6E 67 76 61 |big stringva|
00000160: 72 69 61 62 6C E5 80 01 BB 90 01 3B 20 73 6F 20 |riabl......; so |
00000170: 69 73 74 20 65 73 20 6D 6F 65 67 6C 69 63 68 20 |ist es moeglich |
00000180: 6D 69 74 20 69 6E 70 75 74 20 65 69 6E E5 00 02 |mit input ein...|
00000190: 3B 20 66 75 6E 6B 74 69 6F 6E 20 69 6E 20 65 69 |; funktion in ei|
000001A0: 6E 20 6C 61 75 66 65 6E 64 65 73 20 62 61 73 69 |n laufendes basi|
000001B0: 63 AD 10 02 3B 20 70 72 6F 67 72 61 6D 6D 20 7A |c...; programm z|
000001C0: 75 20 75 65 62 65 72 6E 65 68 6D 65 6E 20 75 6E |u uebernehmen un|
000001D0: 64 20 64 69 65 73 E5 20 02 3B 20 64 61 6E 6E 20 |d dies. .; dann |
000001E0: 64 65 66 20 66 6E 20 7A 75 7A 75 77 65 69 73 65 |def fn zuzuweise|
000001F0: 6E 2C 20 6F 68 6E 65 20 64 65 EE 30 02 3B 20 75 |n, ohne de.0.; u|
00000200: 6D 77 65 67 20 75 65 62 65 72 20 64 69 65 20 73 |mweg ueber die s|
00000210: 69 6D 75 6C 69 65 72 74 65 20 74 61 73 74 61 AD |imulierte tasta.|
00000220: 40 02 3B 20 74 75 72 20 7A 75 20 67 65 68 65 6E |@.; tur zu gehen|
00000230: 2C 20 6F 64 65 72 20 64 69 65 20 66 75 6E 6B 74 |, oder die funkt|
00000240: 69 6F EE 50 02 3B 20 27 65 69 6E 7A 75 70 6F 6B |io.P.; 'einzupok|
00000250: 65 6E 27 AE 60 02 BB 70 02 3B 2D 2D 2D 2D 2D 2D |en'.`..p.;------|
00000260: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------|
00000270: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D AD 80 02 BB 90 |-----------.....|
00000280: 02 3B 20 62 65 6E 75 74 7A 74 65 20 7A 65 72 6F |.; benutzte zero|
00000290: 70 61 67 65 2D 61 64 72 65 73 73 65 EE 00 03 BB |page-adresse....|
000002A0: 10 03 76 61 72 70 74 6E 20 20 20 20 20 2E 64 65 |..varptn .de|
000002B0: 20 24 34 37 20 20 3B 76 61 72 69 61 62 6C 65 6E | $47 ;variablen|
000002C0: 7A 65 69 67 65 F2 20 03 6F 70 70 74 72 20 20 20 |zeige. .opptr |
000002D0: 20 20 20 2E 64 65 20 24 34 62 20 20 3B 70 72 6F | .de $4b ;pro|
000002E0: 67 72 61 6D 6D 7A 65 69 67 65 F2 30 03 74 78 74 |grammzeige.0.txt|
000002F0: 70 74 72 20 20 20 20 20 2E 64 65 20 24 37 61 20 |ptr .de $7a |
00000300: 20 3B 70 72 6F 67 72 61 6D 6D 7A 65 69 67 65 F2 | ;programmzeige.|
00000310: 40 03 62 75 66 20 20 20 20 20 20 20 20 2E 64 65 |@.buf .de|
00000320: 20 24 32 30 30 20 3B 62 61 73 69 63 20 2D 20 65 | $200 ;basic - e|
00000330: 69 6E 67 61 62 65 70 75 66 66 65 F2 50 03 BB 60 |ingabepuffe.P..`|
00000340: 03 BB 70 03 3B 20 62 65 6E 75 74 7A 74 65 20 62 |..p.; benutzte b|
00000350: 61 73 69 63 20 2D 20 72 6F 75 74 69 6E 65 EE 80 |asic - routine..|
00000360: 03 BB 90 03 63 72 75 6E 63 68 20 20 20 20 20 2E |....crunch .|
00000370: 64 65 20 24 61 35 37 39 20 3B 76 61 72 69 61 62 |de $a579 ;variab|
00000380: 6C 65 6E 69 6E 68 61 6C 74 20 69 6E 20 74 6F 6B |leninhalt in tok|
00000390: 65 EE 00 04 66 72 6D 6E 75 6D 20 20 20 20 20 2E |e...frmnum .|
000003A0: 64 65 20 24 61 64 38 61 20 3B 61 75 73 77 65 72 |de $ad8a ;auswer|
000003B0: 74 65 6E 20 61 75 73 64 72 75 63 EB 10 04 6F 72 |ten ausdruc...or|
000003C0: 64 76 61 72 20 20 20 20 20 2E 64 65 20 24 62 30 |dvar .de $b0|
000003D0: 65 37 20 3B 76 61 72 69 61 62 6C 65 20 73 75 63 |e7 ;variable suc|
000003E0: 68 65 EE 20 04 BB 30 04 BB 40 04 3B 20 62 65 67 |he. ..0..@.; beg|
000003F0: 69 6E 6E 20 70 72 6F 67 72 61 6D ED 50 04 BB 60 |inn program.P..`|
00000400: 04 20 2E 62 61 20 24 63 30 30 30 20 3B 68 69 65 |. .ba $c000 ;hie|
00000410: 72 20 7A 2E 62 2E 20 6E 61 63 68 20 63 30 30 B0 |r z.b. nach c00.|
00000420: 70 04 BB 80 04 20 2E 6F 73 20 3B 6F 62 6A 65 6B |p.... .os ;objek|
00000430: 74 63 6F 64 65 20 69 6E 20 73 70 65 69 63 68 65 |tcode in speiche|
00000440: F2 90 04 BB 00 05 BB 10 05 20 6A 73 72 20 6F 72 |......... jsr or|
00000450: 64 76 61 72 20 3B 76 61 72 69 61 62 6C 65 20 73 |dvar ;variable s|
00000460: 75 63 68 65 EE 20 05 20 6C 64 79 20 23 24 30 B1 |uche. . ldy #$0.|
00000470: 30 05 20 64 65 79 20 20 3B 79 2D 72 65 67 69 73 |0. dey ;y-regis|
00000480: 74 65 72 3D B0 40 05 20 6C 64 61 20 28 76 61 72 |ter=.@. lda (var|
00000490: 70 74 6E 29 2C 79 20 20 3B 61 6E 7A 61 68 6C 20 |ptn),y ;anzahl |
000004A0: 64 65 72 20 62 79 74 65 F3 50 05 20 70 68 61 20 |der byte.P. pha |
000004B0: 3B 72 65 74 74 65 EE 60 05 20 69 6E 63 20 76 61 |;rette.`. inc va|
000004C0: 72 70 74 6E 20 3B 61 75 66 20 76 61 72 69 61 62 |rptn ;auf variab|
000004D0: 6C 65 6E 61 6E 66 61 6E E7 70 05 20 62 6E 65 20 |lenanfan.p. bne |
000004E0: 77 65 69 74 65 72 20 3B 6E 69 63 68 74 20 30 2C |weiter ;nicht 0,|
000004F0: 20 64 61 6E 6E 20 77 65 69 74 65 F2 80 05 20 69 | dann weite... i|
00000500: 6E 63 20 76 61 72 70 74 6E 2B B1 90 05 77 65 69 |nc varptn+...wei|
00000510: 74 65 72 20 6C 64 61 20 28 76 61 72 70 74 6E 29 |ter lda (varptn)|
00000520: 2C 79 20 3B 61 6E 66 61 6E 67 20 6C 6F F7 00 06 |,y ;anfang lo...|
00000530: 20 73 74 61 20 6F 70 70 74 72 20 3B 7A 77 69 73 | sta opptr ;zwis|
00000540: 63 68 65 6E 73 70 65 69 63 68 65 72 20 6C 6F F7 |chenspeicher lo.|
00000550: 10 06 20 69 6E F9 20 06 20 6C 64 61 20 28 76 61 |.. in. . lda (va|
00000560: 72 70 74 6E 29 2C 79 20 3B 61 6E 66 61 6E 67 20 |rptn),y ;anfang |
00000570: 68 69 67 E8 30 06 20 73 74 61 20 6F 70 70 74 72 |hig.0. sta opptr|
00000580: 2B 31 20 3B 7A 77 69 73 63 68 65 6E 73 70 2E 20 |+1 ;zwischensp. |
00000590: 68 69 67 E8 40 06 20 70 6C 61 20 3B 61 6E 7A 61 |hig.@. pla ;anza|
000005A0: 68 6C 20 7A 75 72 75 65 63 6B 68 6F 6C 65 EE 50 |hl zurueckhole.P|
000005B0: 06 20 74 61 79 20 3B 69 6E 73 20 79 2D 72 65 67 |. tay ;ins y-reg|
000005C0: 69 73 74 65 F2 60 06 20 64 65 79 20 3B 61 6E 7A |iste.`. dey ;anz|
000005D0: 61 68 6C 2D B1 70 06 6C 6F 6F 70 20 6C 64 61 20 |ahl-.p.loop lda |
000005E0: 28 6F 70 70 74 72 29 2C 79 20 3B 74 65 78 74 20 |(opptr),y ;text |
000005F0: 6C 61 64 65 EE 80 06 20 69 6E F9 90 06 20 20 20 |lade... in... |
00000600: 20 20 20 20 20 20 20 20 73 74 61 20 62 75 66 2D | sta buf-|
00000610: 31 2C F9 00 07 20 64 65 F9 10 07 20 64 65 F9 20 |1,... de... de. |
00000620: 07 20 62 70 6C 20 6C 6F 6F 70 20 3B 77 65 69 74 |. bpl loop ;weit|
00000630: 65 72 20 62 69 73 20 75 6E 74 65 72 6C 61 75 E6 |er bis unterlau.|
00000640: 30 07 20 6C 64 61 20 74 78 74 70 74 72 20 3B 7A |0. lda txtptr ;z|
00000650: 65 69 67 65 72 20 72 65 74 74 65 EE 40 07 20 70 |eiger rette.@. p|
00000660: 68 E1 50 07 20 6C 64 61 20 74 78 74 70 74 72 2B |h.P. lda txtptr+|
00000670: B1 60 07 20 70 68 E1 70 07 20 6C 64 61 20 23 24 |.`. ph.p. lda #$|
00000680: 66 E6 80 07 20 73 74 61 20 74 78 74 70 74 F2 90 |f... sta txtpt..|
00000690: 07 20 69 6E 63 20 74 78 74 70 74 72 20 3B 30 20 |. inc txtptr ;0 |
000006A0: 6E 61 63 68 20 74 78 74 70 74 F2 00 08 20 6C 64 |nach txtpt... ld|
000006B0: 61 20 23 24 30 B2 10 08 20 73 74 61 20 74 78 74 |a #$0... sta txt|
000006C0: 70 74 72 2B 31 20 3B 30 32 30 30 2D 7A 65 69 67 |ptr+1 ;0200-zeig|
000006D0: 65 72 20 74 78 74 70 74 F2 20 08 20 6A 73 72 20 |er txtpt. . jsr |
000006E0: 63 72 75 6E 63 68 20 3B 74 65 78 74 20 69 6E 20 |crunch ;text in |
000006F0: 74 6F 6B 65 6E 20 77 61 6E 64 65 6C EE 30 08 20 |token wandel.0. |
00000700: 69 6E 63 20 74 78 74 70 74 72 20 3B 77 69 72 64 |inc txtptr ;wird|
00000710: 20 77 69 65 64 65 72 20 B0 40 08 20 69 6E 63 20 | wieder .@. inc |
00000720: 74 78 74 70 74 72 2B 31 20 3B 77 69 72 64 20 77 |txtptr+1 ;wird w|
00000730: 69 65 64 65 72 20 B2 50 08 20 6A 73 72 20 66 72 |ieder .P. jsr fr|
00000740: 6D 6E 75 6D 20 3B 61 75 73 77 65 72 74 65 EE 60 |mnum ;auswerte.`|
00000750: 08 20 70 6C 61 20 3B 61 6C 74 65 20 7A 65 69 67 |. pla ;alte zeig|
00000760: 65 72 20 7A 75 72 75 65 63 EB 70 08 20 73 74 61 |er zuruec.p. sta|
00000770: 20 74 78 74 70 74 72 2B B1 80 08 20 70 6C E1 90 | txtptr+... pl..|
00000780: 08 20 73 74 61 20 74 78 74 70 74 F2 00 09 20 72 |. sta txtpt... r|
00000790: 74 F3 10 09 BB 20 09 BB 30 09 20 2E 65 EE FF F7 |t.... ..0. .e...|
..0.7'..;*******************************
**. ..0.; MODIFIZIERTE DEFFN - FUNKTIO.@
..P.; (C) WERNER HAAK 198.`..P.;*****
****************************.........; D
IE DEFFN FUNKTION KANN NUN AUCH EIN...;
STRINGVARIABLE ZUGEWIESEN BEKOMME. ..0.;
DER NEUE SYNTAX HEISST NUN.@..P.; DEF F
N F(X) = USR (AB$.`.; ^
.P.; BELIEBIG STRINGVARIABL...
...; SO IST ES MOEGLICH MIT INPUT EIN...
; FUNKTION IN EIN LAUFENDES BASIC...; PR
OGRAMM ZU UEBERNEHMEN UND DIES. .; DANN
DEF FN ZUZUWEISEN, OHNE DE.0.; UMWEG UEB
ER DIE SIMULIERTE TASTA.@.; TUR ZU GEHEN
, ODER DIE FUNKTIO.P.; 'EINZUPOKEN'.`..P
.;---------------------------------.....
.; BENUTZTE ZEROPAGE-ADRESSE......VARPTN
.DE $47 ;VARIABLENZEIGE. .OPPTR
.DE $4B ;PROGRAMMZEIGE.0.TXTPTR
.DE $7A ;PROGRAMMZEIGE.@.BUF .DE
$200 ;BASIC - EINGABEPUFFE.P..`..P.; BE
NUTZTE BASIC - ROUTINE......CRUNCH .
DE $A579 ;VARIABLENINHALT IN TOKE...FRMN
UM .DE $AD8A ;AUSWERTEN AUSDRUC...OR
DVAR .DE $B0E7 ;VARIABLE SUCHE. ..0.
.@.; BEGINN PROGRAM.P..`. .BA $C000 ;HIE
R Z.B. NACH C00.P.... .OS ;OBJEKTCODE IN
SPEICHE......... JSR ORDVAR ;VARIABLE S
UCHE. . LDY #$0.0. DEY ;Y-REGISTER=.@.
LDA (VARPTN),Y ;ANZAHL DER BYTE.P. PHA
;RETTE.`. INC VARPTN ;AUF VARIABLENANFAN
.P. BNE WEITER ;NICHT 0, DANN WEITE... I
NC VARPTN+...WEITER LDA (VARPTN),Y ;ANFA
NG LO... STA OPPTR ;ZWISCHENSPEICHER LO.
.. IN. . LDA (VARPTN),Y ;ANFANG HIG.0. S
TA OPPTR+1 ;ZWISCHENSP. HIG.@. PLA ;ANZA
HL ZURUECKHOLE.P. TAY ;INS Y-REGISTE.`.
DEY ;ANZAHL-.P.LOOP LDA (OPPTR),Y ;TEXT
LADE... IN... STA BUF-1,... DE
... DE. . BPL LOOP ;WEITER BIS UNTERLAU.
0. LDA TXTPTR ;ZEIGER RETTE.@. PH.P. LDA
TXTPTR+.`. PH.P. LDA #$F... STA TXTPT..
. INC TXTPTR ;0 NACH TXTPT... LDA #$0...
STA TXTPTR+1 ;0200-ZEIGER TXTPT. . JSR
CRUNCH ;TEXT IN TOKEN WANDEL.0. INC TXTP
TR ;WIRD WIEDER .@. INC TXTPTR+1 ;WIRD W
IEDER .P. JSR FRMNUM ;AUSWERTE.`. PLA ;A
LTE ZEIGER ZURUEC.P. STA TXTPTR+... PL..
. STA TXTPT... RT.... ..0. .E...
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL