python.exe decompile.py redforth.img > forth.txt
$0500: 18FBC230A90003EF01EF02A90004EF03EF04A90005EF064C561DDOCON $0524: DCB500482B02DOVAR $0534: DCDA2B02DODOES $0543: 3BDA02(lit) $0550: 424802EXIT $055C: 2B02(branch) $056B: 42AA5C02(?branch) $057D: 6842D002AA5C02(do) $058D: 42A3024B6838E3004B6802(?do) $05A2: 42AAA3024B6838E300F0034B68026B685C02(loop) $05BF: 42AAA7001A4700890080D0015CA7001A870002(+loop) $05DE: 42AAA3001867004700890080D0015C18686700870002(leave) $0600: 6B6B42A8B6005C8A02UNLOOP $0614: 6B6B02I $061D: A7001867024802J $062A: A7041867064802EXECUTE $063D: FACADA60DUP $0649: A3004802?DUP $0656: A300F00148022DUP $0665: A30248A3024802DROP $0675: 68022DROP $0681: 686802SWAP $068D: 68FA48DA02PICK $069B: 68182A1869020048BA9BB300830002OVER $06B3: A30248022OVER $06C1: A3044802ROT $06CD: 68FA7ADA485A022SWAP $06DE: A306AAA30283068A8302A304AAA30083048A830002-ROT $06FC: 68FA7A485ADA02NIP $070B: 68FA4802TUCK $0718: 68FA48DA4802>R $0725: 684B02R> $072F: 6B4802! $0738: FA68950002+! $0744: FA68187500950002-! $0753: FA38B500E30095006802C! $0764: FA68E2209500C22002@ $0773: FAB5004802C@ $077F: FAE220B5008FC2204802+ $078F: 68186300830002- $079C: A30238E30083026802M* $07AC: 68BA381F00FA48DF02UM* $07BD: 68BA181F00FA48DF02* $07CC: 68BA381F00FA4802U* $07DB: 68BA181F00FA4802SM/REM $07EE: FACF68DABA385F00FADF4802FM/MOD $0805: FACF68DABA385F00FADF48AFF011DA4300890080F00A681863028302BAD60002FA02UM/MOD $0832: FACF68DABA185F00FADF48022* $0845: 68182A48022/ $0851: A3002A686A4802U>> $0860: 7A68186A88D0FB4802<< $0870: 7A68C00000F005182A88D0FB4802AND $0886: 682300830002OR $0893: 680300830002XOR $08A1: 684300830002INVERT $08B2: 6849FFFF4802NEGATE $08C3: 6849FFFF1A48021+ $08D1: 681A48021- $08DC: 683A4802SP@ $08E8: BADA02SP! $08F3: FA9A02RP@ $08FE: ABDA02RP! $0909: FA8B020= $0913: 68F004F4000002F4FFFF020<> $0926: 68F004F4FFFF0248020< $0936: 683004F4000002F4FFFF02<> $0948: 68C300F00568F4FFFF0268F4000002< $095D: 68C3003007F00568F4FFFF0268F4000002> $0974: 68C300300568F400000268F4FFFF02U< $098A: 68C3009007F00568F4FFFF0268F4000002U> $09A2: 68C300900568F400000268F4FFFF02<= $09B8: 68C300300568F4FFFF0268F4000002>= $09CE: 68C3003007F00568F400000268F4FFFF02= $09E5: 68C300F00568F400000268F4FFFF02CELL $09FD: F4020002CELLS $0A0B: 68182A4802MAX $0A18: 68C3003002830002MIN $0A28: 68C3001002830002MOVE $0A39: 0B687AFA5CBBA8F00BE220429500E888D0F9C2202B02FILL $0A58: 687AFAC00000F00AE2209500E888D0FAC22002MEMCMP $0A76: 0B687AFA5CBBA8F00DE22042D500D00BE888D0F7C2202BF4000002C2202B3004F4010002F4FFFF02STRLEN $0AA9: A300AAA90000E220D500F003E880F9C2208A38E300830002RSTRLEN $0ACD: A300AAA90000E220D500F003CA80F9C22068DA38E300830002TRUE $0AEF: 222405FFFFFALSE $0AFE: 2224050000SCRATCH $0B0F: 2224054000TIB $0B1C: 2224058000RADIX $0B2B: 2234050A00BL $0B37: 2224052000UITOA $0B46: 220F0B500514008F0750050000B3066407DC088D06500500002B0B73073208FC06500530008F0749065005390074097D057F0B500507008F07B3066407B30613097D05570B0B075C05WORD $0B98: 2249067F07490650052000E509B30650050900E5099308B30650050A00E5099308B30650050D00E50993080B077D05CF0BD1086B05990B49067F0713097D05DD0B49065C05490649067F074906500520004809B30626098608B3065005090048098608B30650050A0048098608B30650050D00480986080B077D051B0CD1086B05DF0B49067F077D052D0C50050000B3066407D1088D065C05SPLIT $0C3B: 228D06B306B3067F07E5097D05500CD1086B053E0C1807B306B3067F074809B3067F07260986087D056C0CD1086B05520C49067F077D057E0C50050000B3066407D1080B078D065C05STRCMP $0C8F: 226506A90A8D06A90A280AD108760A5C05ISUNUM $0CAB: 2249065005400074097D05BE0C500507009C07500530009C07490636098D062B0B7307DC087409930813095C05ISNUM $0CE2: 224906AB0C8D0650052D00E50993085C05UATOI $0CFD: 2250050000B3067F0749065005400074097D05180D500507009C07500530009C0749063609B3062B0B7307CE09930813097D05460D8D062B0B7307DB078F078D06D1088D066B05020D75060B075C05ATOI $0D55: 2249067F0750052D00E5097D056E0DD108FD0CC3086B05700DFD0C5C05HEX $0D7A: 22500510002B0B38075C05DECIMAL $0D91: 2250050A002B0B38075C05TICK $0DA5: CB02RBP! $0DB0: 68EF0002TERMADDR $0DC1: 2234050100PAGE $0DCF: 22C10D7307B00D50050000500503036407500520005005080364075005000050050A0338075005503250050C03380750050100500507036407500507037F071309A50D7D05080E50050100500501033807500502005005030364075C05SCROLL $0E37: 22C10D7307B00D50050000500503036407500500015005080338075005000050050A0338075005503150050C03380750050300500507036407500507037F071309A50D7D05700E500520005005080364075005003150050A0338075005500150050C03380750050100500507036407500507037F071309A50D7D05A60E500502005005030364075C05CR $0EC7: 22C10D7307B00D500502037F075005300074097D05E40E370E6B05F20E500502037F07D108500502036407500500005005010364075C05EMIT $0F07: 22C10D7307B00D500502037F07500500036407500501037F07500510038F076407500501037F0750054E0074097D053E0FC70E6B054C0F500501037F07D1085005010364075C05BS $0F55: E220ADC40DEF00AD0103F0103A8D0103AAAD02038D0003A9209D1003C22002KEY? $0F7D: E220ADC40DEF00AD0403CD0503C220F004F4FFFF02F4000002KEY $0F9E: E220ADC40DEF00AD0403CD0503D003CB80F5AD06038FEE0403C2204802AT-XY $0FC5: E220ADC40DEF00FA8A8D0203FA8A8D0103C22002([paste][/paste]") $0FE2: 222F0749067F0756067D05F70F070FD1086B05E50FD10825075C05SPACE $1007: 22370B070F5C05TYPE $1017: 2249067F0756067D052A10070FD1086B05181075065C05[paste][/paste] $1034: 22490636097D054F10C308460BDC0850052D00B30664076B055110460B171007105C05U[paste][/paste] $105E: 22460B171007105C05/MOD $1070: 22B30636098D0605085C05/ $1081: 22701075065C05MOD $1090: 2270100B075C05ABORT $10A1: 227816F3082918TIBPTR $10B3: 2234050000VOCAB $10C2: 223405561D(HERE) $10D2: 223405A71DHERE $10E0: 22D21073075C05TOP $10EF: 2234050000STATE $10FE: 2234050000PROBE $110D: 225005FF1F4906500500208F0749067F074906B208C10638074906C1067F07E5098D06C10664077D053C1175065C050B0749065005FFFFE5097D0512115C05FREE $1155: 22EF107307E0109C075C05ALLOT $116A: 224906500502008F075511A2097D058F11E20F4F7574206F66206D656D6F727900C70EA110E0108D06D21044075C05, $119F: 22FD096A1138075C05,C $11AF: 22500501006A1164075C05,S $11C1: 2249067F077D05D61149067F07AF11D1086B05C211750650050000AF115C05TIBWORD $11EC: 22B3107307980B8D06B31038075C05TIBSPLIT $1208: 22B31073078D063B0C8D06B31038075C05HEADER $1224: 2250050000AF11EC11C11150050000AF11C21073079F11E010C21038075C05CONSTANT $1250: 22241250052200AF11500524059F119F115C05CREATE $126E: 22241250052200AF11500534059F115C05VARIABLE $128C: 226E12500500009F115C05[ $129D: 2250050100FE1038075C05] $12AE: 2250050000FE1038075C05HIDE $12C2: 22C2107307500503009C0749067F075005020093088D0664075C05REVEAL $12E8: 22C2107307500503009C0749067F075005010086088D0664075C05IMMEDIATE $1311: 22C2107307500503009C0749067F075005010093088D0664075C05(does) $1337: 222F07C2107307D10838075C05DOES> $134E: 22500537139F1150052200AF11500543059F115C05: $1369: 222412C21250052200AF119D125C05; $137E: 2250055C059F11AE12E8125C05IF $1392: 2250057D059F11E010500500009F11500500005C05THEN $13B0: 227506E0108D0638075C05ELSE $13C4: 22750650056B059F11E010500500009F118D06E0108D063807500500005C05[paste][/paste]" $13EA: 225005E20F9F11500522000812C1115C05BEGIN $1405: 22E010500500005C05AGAIN $1418: 22750650056B059F119F115C05UNTIL $142F: 22750650057D059F119F115C05WHILE $1446: 2250057D059F11E010500500009F11500500005C05REPEAT $1466: 2275060B078D0650056B059F119F11E0108D0638075C05DO $1484: 2250058D059F11E010500500009F11E0108D065C05?DO $14A1: 225005A2059F11E010500500009F11E0108D065C05LOOP $14BF: 228D065005BF059F119F11500514069F11E0108D0638075C05+LOOP $14E2: 228D065005DE059F119F11500514069F11E0108D0638075C05LEAVE $1505: 225005010049069B0613097D051E15500502008F076B050A15500500069F119B06500502009C079F115C05\ $1536: 2250050D00081275065C05( $1547: 2250052900081275065C05(") $155A: 222F07490649067F077D056D15D1086B055F15D10825075C05" $1579: 2250055A159F11500522000812C1115C05TIMES $1594: 22FE10730713097D05BB15F1188D0650050000A205B51549063D06BF05AB15140675066B05F115F118500550059F11500500009F115005A2059F11E01050050A008F079F119F11E010500502009C075005BF059F119F11500514069F115C05LITERAL $15FF: 22F118500550059F119F115C05POSTPONE $1619: 22F1184906500503009C077F075005010086087D0536169F116B053E16500550059F119F115C05RECURSE $164C: 22C21073079F115C05TICKS $165F: 2256067D056E16A50DDC086B0560165C05SP0 $1678: 2224050002RP0 $1685: 2224050003>NAME $1694: 22500505009C074906CD0A9C07D1085C05NAME> $16AF: 224906A90A8F07500506008F075C05FIND $16C7: 22C210730749067D050417650694168F0C1309B306500503009C077F07500502008608130986087D05F816EF0A6B050017FD099C077307FE0A6B050617EF0A7D05CC160B075C05ACCEPT $1719: 22B3068F07DC08B3069E0F490650050D0048097D056217490650050800E5097D0550177506C106B3065D097D054C17550FDC086B055E174906070FB3066407D108B306280A6B0522177506280A500500008D0664075C050SP $1778: 227816F3085C05INTERPRET $178D: 22980B4906A90A26097D051A188D06B31038074906C71656067D05DA170B07FE1073077D05D4174906500503009C077F075005010086087D05CE173D066B05D0179F116B05D6173D066B05121849067F07E20C7D05FA17550DFE1073077D05F617500550059F119F116B051218E20F556E6B6E6F776E20546F6B656E3A20001710C70EA110B31073076B058E17750675065C05QUIT $1829: 228516090950050000FE103807B61836097D055018E20F456D70747920537461636B007816F308C70EFE10730713097D056518E20F3E20006B057118E20F636F6D70696C653A20001C0B50057800191707108D176B053618WORDS $188B: 22C210730749067D05A8184906941617100710FD099C0773076B05901875065C05DEPTH $18B6: 22E80878168D069C0751085C05[paste][/paste]S $18CA: 22B618490650050000A205E71849061D069C079B063410BF05D718140675065C05' $18F1: 22EC114906C716560613097D051C19E20F556E6B6E6F776E20546F6B656E3A20001710C70EA1106B051E190B075C05FORGET $192B: 22F11849069416DC08D2103807FD099C077307C21038075C05IOXADDR $1950: 2234050300IOX@ $195E: 2250197307B00D5005000373075C05IOX! $1976: 2250197307B00D5005020338075C05IOXSET $1990: 2250197307B00D50050203730793085005020338075C05IOXRST $19B2: 2250197307B00DB20850050203730786085005020338075C05DISKADDR $19D8: 2234050200DISKNAME" $19EB: 22500522000812D8197307B00D50050003B306A90AD108390A50050200500582036407500582037F0750050200E5097D05241AA50D6B050E1A5C05DISKID $1A31: 22D8197307B00D50050300500582036407500582037F0750050300E5097D05581AA50D6B05421A500500030F0B50054000390A0F0B17105C05DISKWS $1A75: 22D8197307B00D5005800338075005000350058000390A50050500500582036407500582037F0750050500E5097D05AC1AA50D6B05961A5C05DISKRS $1AB9: 22D8197307B00D50058003380750050400500582036407500582037F0750050400E5097D05E61AA50D6B05D01A500500038D0650058000390A5C05SAVE" $1AFE: 22EB1950050005E010500581049C07500507006008500500008D052D1B49061D06751A500580008F07BF051B1B14065C05(blkbuf) $1B3C: 2234050000(blkno) $1B4D: 2234050000(blkup) $1B5E: 2234050000FLUSH $1B6D: 223C1B73074D1B7307DC0850050300700850050800500500008D05A01B6506751A8D06500580008F078D06D108BF058A1B14068106500500005E1B38075C05REVERT $1BB7: 22500500005E1B38073C1B73074D1B7307DC0850050300700850050800500500008D05F21B6506B91A8D06500580008F078D06D108BF05DC1B140681065C05BLOCK $1C00: 223C1B730713097D05151C500500046A113C1B380749064D1B7307E5097D05291C75063C1B73075C054D1B730726097D05351C6D1B4D1B3807B71B3C1B73075C05UPDATE $1C4C: 22500501005E1B38075C05LIST $1C60: 22001CC70E50050A002B0B380750051000500500008D05AD1C1D0650050A005D097D05871C07101D06341050054000500500008D05A51C49067F07070FD108BF05971C1406C70EBF05791C140675065C05WIPE $1CBA: 224C1C3C1B73075005000450052000580A5C05PP $1CD4: 224C1C5005060070083C1B73078F0749065005400050052000580A50050D0008121807A90A50054000280A390A5C05LOAD $1D0C: 22001C500500001C0B500540008F07640750051000500500008D05491D49061C0B50054000390A1C0BB31038071C0B8D17500540008F07BF05291D140675065C05COLD $1D56: 22500500007F07D8193807500501007F07C10D3807C70EC70EE20F4D696E654F532056312E3120496E697469616C697A656400C70E0D11EF10380755115E10E20F627974657320667265652E00C70E2918: ( $0500 NATIVE ) CLC XCE REP #$30 LDA #$0300 MMU #$01 MMU #$02 LDA #$0400 MMU #$03 MMU #$04 LDA #$0500 MMU #$06 JMP $1D56: ! ( $0738 NATIVE ) PLX PLA STA $00,X NXT : " ( $1579 IMMEDIATE ) (lit) '(") ( 0 ) , ( 2 ) (lit) $22 ( 3 ) TIBSPLIT ( 5 ) ,S ( 6 ) EXIT ( 7 ): ' ( $18F1 ) TIBWORD ( 0 ) DUP ( 1 ) FIND ( 2 ) ?DUP ( 3 ) 0= ( 4 ) (?branch) 21 ( 5 ) ([paste][/paste]") Unknown Token: " ( 7 ) TYPE ( 16 ) CR ( 17 ) ABORT ( 18 ) (branch) 22 ( 19 ) NIP ( 21 ) EXIT ( 22 ): ( ( $1547 IMMEDIATE ) (lit) $29 ( 0 ) TIBSPLIT ( 2 ) DROP ( 3 ) EXIT ( 4 ): (") ( $155A ) R> ( 0 ) DUP ( 1 ) DUP ( 2 ) C@ ( 3 ) (?branch) 9 ( 4 ) 1+ ( 6 ) (branch) 2 ( 7 ) 1+ ( 9 ) >R ( 10 ) EXIT ( 11 ): (+loop) ( $05DE NATIVE ) NXA TAX LDA 0,S CLC ADC 0,R EOR 0,R BIT #$8000 BNE 1 TXI CLC PLA ADC 0,R STA 0,R NXT : ([paste][/paste]") ( $0FE2 ) R> ( 0 ) DUP ( 1 ) C@ ( 2 ) ?DUP ( 3 ) (?branch) 10 ( 4 ) EMIT ( 6 ) 1+ ( 7 ) (branch) 1 ( 8 ) 1+ ( 10 ) >R ( 11 ) EXIT ( 12 ): (?branch) ( $057D NATIVE ) PLA NXA BNE 2 TAX TXI NXT : (?do) ( $05A2 NATIVE ) NXA TAX LDA 2,S RHA PLA SEC SBC 0,S BEQ 3 RHA PLA NXT RLA PLA TXI NXT : (HERE) ( $10D2 ) DOVAR $1DA7 ( 0 ): (blkbuf) ( $1B3C ) DOVAR $00 ( 0 ): (blkno) ( $1B4D ) DOVAR $00 ( 0 ): (blkup) ( $1B5E ) DOVAR $00 ( 0 ): (branch) ( $056B NATIVE ) NXA TAX TXI NXT : (do) ( $058D NATIVE ) NXA LDA 2,S RHA PLA SEC SBC 0,S RHA PLA NXT : (does) ( $1337 ) R> ( 0 ) VOCAB ( 1 ) @ ( 2 ) 1+ ( 3 ) ! ( 4 ) EXIT ( 5 ): (leave) ( $0600 NATIVE ) RLA RLA NXA TAY LDX $00,Y TXI TXA NXT : (lit) ( $0550 NATIVE ) NXA PHA NXT : (loop) ( $05BF NATIVE ) NXA TAX LDA 0,R INC A EOR 0,R BIT #$8000 BNE 1 TXI LDA 0,R INC A STA 0,R NXT : * ( $07CC NATIVE ) PLA TSX SEC MUL $00,X PLX PHA NXT : + ( $078F NATIVE ) PLA CLC ADC 0,S STA 0,S NXT : +! ( $0744 NATIVE ) PLX PLA CLC ADC $00,X STA $00,X NXT : +LOOP ( $14E2 IMMEDIATE ) SWAP ( 0 ) (lit) '(+loop) ( 1 ) , ( 3 ) , ( 4 ) (lit) 'UNLOOP ( 5 ) , ( 7 ) HERE ( 8 ) SWAP ( 9 ) ! ( 10 ) EXIT ( 11 ): , ( $119F ) CELL ( 0 ) ALLOT ( 1 ) ! ( 2 ) EXIT ( 3 ): ,C ( $11AF ) (lit) $01 ( 0 ) ALLOT ( 2 ) C! ( 3 ) EXIT ( 4 ): ,S ( $11C1 ) DUP ( 0 ) C@ ( 1 ) (?branch) 10 ( 2 ) DUP ( 4 ) C@ ( 5 ) ,C ( 6 ) 1+ ( 7 ) (branch) 0 ( 8 ) DROP ( 10 ) (lit) $00 ( 11 ) ,C ( 13 ) EXIT ( 14 ): - ( $079C NATIVE ) LDA 2,S SEC SBC 0,S STA 2,S PLA NXT : -! ( $0753 NATIVE ) PLX SEC LDA $00,X SBC 0,S STA $00,X PLA NXT : -ROT ( $06FC NATIVE ) PLA PLX PLY PHA PHY PHX NXT : [paste][/paste] ( $1034 ) DUP ( 0 ) 0< ( 1 ) (?branch) 13 ( 2 ) NEGATE ( 4 ) UITOA ( 5 ) 1- ( 6 ) (lit) $2D ( 7 ) OVER ( 9 ) C! ( 10 ) (branch) 14 ( 11 ) UITOA ( 13 ) TYPE ( 14 ) SPACE ( 15 ) EXIT ( 16 ): [paste][/paste]" ( $13EA IMMEDIATE ) (lit) '([paste][/paste]") ( 0 ) , ( 2 ) (lit) $22 ( 3 ) TIBSPLIT ( 5 ) ,S ( 6 ) EXIT ( 7 ): [paste][/paste]S ( $18CA ) DEPTH ( 0 ) DUP ( 1 ) (lit) $00 ( 2 ) (?do) 14 ( 4 ) DUP ( 6 ) I ( 7 ) - ( 8 ) PICK ( 9 ) [paste][/paste] ( 10 ) (loop) 6 ( 11 ) UNLOOP ( 13 ) DROP ( 14 ) EXIT ( 15 ): / ( $1081 ) /MOD ( 0 ) DROP ( 1 ) EXIT ( 2 ): /MOD ( $1070 ) OVER ( 0 ) 0< ( 1 ) SWAP ( 2 ) FM/MOD ( 3 ) EXIT ( 4 ): 0< ( $0936 NATIVE ) PLA BMI 4 PEA $0000 NXT PEA $FFFF NXT : 0<> ( $0926 NATIVE ) PLA BEQ 4 PEA $FFFF NXT PHA NXT : 0= ( $0913 NATIVE ) PLA BEQ 4 PEA $0000 NXT PEA $FFFF NXT : 0SP ( $1778 ) SP0 ( 0 ) SP! ( 1 ) EXIT ( 2 ): 1+ ( $08D1 NATIVE ) PLA INC A PHA NXT : 1- ( $08DC NATIVE ) PLA DEC A PHA NXT : 2* ( $0845 NATIVE ) PLA CLC ROL A PHA NXT : 2/ ( $0851 NATIVE ) LDA 0,S ROL A PLA ROR A PHA NXT : 2DROP ( $0681 NATIVE ) PLA PLA NXT : 2DUP ( $0665 NATIVE ) LDA 2,S PHA LDA 2,S PHA NXT : 2OVER ( $06C1 NATIVE ) LDA 4,S PHA NXT : 2SWAP ( $06DE NATIVE ) LDA 6,S TAX LDA 2,S STA 6,S TXA STA 2,S LDA 4,S TAX LDA 0,S STA 4,S TXA STA 0,S NXT : : ( $1369 ) HEADER ( 0 ) HIDE ( 1 ) (lit) $22 ( 2 ) ,C ( 4 ) [ ( 5 ) EXIT ( 6 ): ; ( $137E IMMEDIATE ) (lit) 'EXIT ( 0 ) , ( 2 ) ] ( 3 ) REVEAL ( 4 ) EXIT ( 5 ): < ( $095D NATIVE ) PLA CMP 0,S BMI 7 BEQ 5 PLA PEA $FFFF NXT PLA PEA $0000 NXT : << ( $0870 NATIVE ) PLY PLA CPY #$0000 BEQ 5 CLC ROL A DEY BNE -5 PHA NXT : <= ( $09B8 NATIVE ) PLA CMP 0,S BMI 5 PLA PEA $FFFF NXT PLA PEA $0000 NXT : <> ( $0948 NATIVE ) PLA CMP 0,S BEQ 5 PLA PEA $FFFF NXT PLA PEA $0000 NXT : = ( $09E5 NATIVE ) PLA CMP 0,S BEQ 5 PLA PEA $0000 NXT PLA PEA $FFFF NXT : > ( $0974 NATIVE ) PLA CMP 0,S BMI 5 PLA PEA $0000 NXT PLA PEA $FFFF NXT : >= ( $09CE NATIVE ) PLA CMP 0,S BMI 7 BEQ 5 PLA PEA $0000 NXT PLA PEA $FFFF NXT : >NAME ( $1694 ) (lit) $05 ( 0 ) - ( 2 ) DUP ( 3 ) RSTRLEN ( 4 ) - ( 5 ) 1+ ( 6 ) EXIT ( 7 ): >R ( $0725 NATIVE ) PLA RHA NXT : ?DO ( $14A1 IMMEDIATE ) (lit) '(?do) ( 0 ) , ( 2 ) HERE ( 3 ) (lit) $00 ( 4 ) , ( 6 ) HERE ( 7 ) SWAP ( 8 ) EXIT ( 9 ): ?DUP ( $0656 NATIVE ) LDA 0,S BEQ 1 PHA NXT : @ ( $0773 NATIVE ) PLX LDA $00,X PHA NXT : ABORT ( $10A1 ) SP0 ( 0 ) SP! ( 1 ) QUIT ( 2 ): ACCEPT ( $1719 ) OVER ( 0 ) + ( 1 ) 1- ( 2 ) OVER ( 3 ) KEY ( 4 ) DUP ( 5 ) (lit) $0D ( 6 ) <> ( 8 ) (?branch) 36 ( 9 ) DUP ( 11 ) (lit) $08 ( 12 ) = ( 14 ) (?branch) 27 ( 15 ) DROP ( 17 ) 2OVER ( 18 ) OVER ( 19 ) < ( 20 ) (?branch) 25 ( 21 ) BS ( 23 ) 1- ( 24 ) (branch) 34 ( 25 ) DUP ( 27 ) EMIT ( 28 ) OVER ( 29 ) C! ( 30 ) 1+ ( 31 ) OVER ( 32 ) MIN ( 33 ) (branch) 4 ( 34 ) DROP ( 36 ) MIN ( 37 ) (lit) $00 ( 38 ) SWAP ( 40 ) C! ( 41 ) EXIT ( 42 ): AGAIN ( $1418 IMMEDIATE ) DROP ( 0 ) (lit) '(branch) ( 1 ) , ( 3 ) , ( 4 ) EXIT ( 5 ): ALLOT ( $116A ) DUP ( 0 ) (lit) $02 ( 1 ) + ( 3 ) FREE ( 4 ) U> ( 5 ) (?branch) 18 ( 6 ) ([paste][/paste]") Out of memory" ( 8 ) CR ( 16 ) ABORT ( 17 ) HERE ( 18 ) SWAP ( 19 ) (HERE) ( 20 ) +! ( 21 ) EXIT ( 22 ): AND ( $0886 NATIVE ) PLA AND 0,S STA 0,S NXT : AT-XY ( $0FC5 NATIVE ) SEP #$20 LDA $0DC4 MMU #$00 PLX TXA STA $0302 PLX TXA STA $0301 REP #$20 NXT : ATOI ( $0D55 ) DUP ( 0 ) C@ ( 1 ) (lit) $2D ( 2 ) = ( 4 ) (?branch) 12 ( 5 ) 1+ ( 7 ) UATOI ( 8 ) NEGATE ( 9 ) (branch) 13 ( 10 ) UATOI ( 12 ) EXIT ( 13 ): BEGIN ( $1405 IMMEDIATE ) HERE ( 0 ) (lit) $00 ( 1 ) EXIT ( 3 ): BL ( $0B37 ) DOCON $20 ( 0 ): BLOCK ( $1C00 ) (blkbuf) ( 0 ) @ ( 1 ) 0= ( 2 ) (?branch) 10 ( 3 ) (lit) $0400 ( 5 ) ALLOT ( 7 ) (blkbuf) ( 8 ) ! ( 9 ) DUP ( 10 ) (blkno) ( 11 ) @ ( 12 ) = ( 13 ) (?branch) 20 ( 14 ) DROP ( 16 ) (blkbuf) ( 17 ) @ ( 18 ) EXIT ( 19 ) (blkno) ( 20 ) @ ( 21 ) 0<> ( 22 ) (?branch) 26 ( 23 ) FLUSH ( 25 ) (blkno) ( 26 ) ! ( 27 ) REVERT ( 28 ) (blkbuf) ( 29 ) @ ( 30 ) EXIT ( 31 ): BS ( $0F55 NATIVE ) SEP #$20 LDA $0DC4 MMU #$00 LDA $0301 BEQ 16 DEC A STA $0301 TAX LDA $0302 STA $0300 LDA #$20 STA $0310,X REP #$20 NXT : C! ( $0764 NATIVE ) PLX PLA SEP #$20 STA $00,X REP #$20 NXT : C@ ( $077F NATIVE ) PLX SEP #$20 LDA $00,X ZEA REP #$20 PHA NXT : CELL ( $09FD NATIVE ) PEA $0002 NXT : CELLS ( $0A0B NATIVE ) PLA CLC ROL A PHA NXT : COLD ( $1D56 ) (lit) $00 ( 0 ) C@ ( 2 ) DISKADDR ( 3 ) ! ( 4 ) (lit) $01 ( 5 ) C@ ( 7 ) TERMADDR ( 8 ) ! ( 9 ) CR ( 10 ) CR ( 11 ) ([paste][/paste]") MineOS V1[paste][/paste]1 Initialized" ( 12 ) CR ( 25 ) PROBE ( 26 ) TOP ( 27 ) ! ( 28 ) FREE ( 29 ) U[paste][/paste] ( 30 ) ([paste][/paste]") bytes free[paste][/paste]" ( 31 ) CR ( 38 ) QUIT ( 39 ): CONSTANT ( $1250 ) HEADER ( 0 ) (lit) $22 ( 1 ) ,C ( 3 ) (lit) 'DOCON ( 4 ) , ( 6 ) , ( 7 ) EXIT ( 8 ): CR ( $0EC7 ) TERMADDR ( 0 ) @ ( 1 ) RBP! ( 2 ) (lit) $0302 ( 3 ) C@ ( 5 ) (lit) $30 ( 6 ) > ( 8 ) (?branch) 14 ( 9 ) SCROLL ( 11 ) (branch) 21 ( 12 ) (lit) $0302 ( 14 ) C@ ( 16 ) 1+ ( 17 ) (lit) $0302 ( 18 ) C! ( 20 ) (lit) $00 ( 21 ) (lit) $0301 ( 23 ) C! ( 25 ) EXIT ( 26 ): CREATE ( $126E ) HEADER ( 0 ) (lit) $22 ( 1 ) ,C ( 3 ) (lit) 'DOVAR ( 4 ) , ( 6 ) EXIT ( 7 ): DECIMAL ( $0D91 IMMEDIATE ) (lit) $0A ( 0 ) RADIX ( 2 ) ! ( 3 ) EXIT ( 4 ): DEPTH ( $18B6 ) SP@ ( 0 ) SP0 ( 1 ) SWAP ( 2 ) - ( 3 ) 2/ ( 4 ) EXIT ( 5 ): DISKADDR ( $19D8 ) DOVAR $02 ( 0 ): DISKID ( $1A31 ) DISKADDR ( 0 ) @ ( 1 ) RBP! ( 2 ) (lit) $03 ( 3 ) (lit) $0382 ( 5 ) C! ( 7 ) (lit) $0382 ( 8 ) C@ ( 10 ) (lit) $03 ( 11 ) = ( 13 ) (?branch) 19 ( 14 ) TICK ( 16 ) (branch) 8 ( 17 ) (lit) $0300 ( 19 ) SCRATCH ( 21 ) (lit) $40 ( 22 ) MOVE ( 24 ) SCRATCH ( 25 ) TYPE ( 26 ) EXIT ( 27 ): DISKNAME" ( $19EB ) (lit) $22 ( 0 ) TIBSPLIT ( 2 ) DISKADDR ( 3 ) @ ( 4 ) RBP! ( 5 ) (lit) $0300 ( 6 ) OVER ( 8 ) STRLEN ( 9 ) 1+ ( 10 ) MOVE ( 11 ) (lit) $02 ( 12 ) (lit) $0382 ( 14 ) C! ( 16 ) (lit) $0382 ( 17 ) C@ ( 19 ) (lit) $02 ( 20 ) = ( 22 ) (?branch) 28 ( 23 ) TICK ( 25 ) (branch) 17 ( 26 ) EXIT ( 28 ): DISKRS ( $1AB9 ) DISKADDR ( 0 ) @ ( 1 ) RBP! ( 2 ) (lit) $0380 ( 3 ) ! ( 5 ) (lit) $04 ( 6 ) (lit) $0382 ( 8 ) C! ( 10 ) (lit) $0382 ( 11 ) C@ ( 13 ) (lit) $04 ( 14 ) = ( 16 ) (?branch) 22 ( 17 ) TICK ( 19 ) (branch) 11 ( 20 ) (lit) $0300 ( 22 ) SWAP ( 24 ) (lit) $80 ( 25 ) MOVE ( 27 ) EXIT ( 28 ): DISKWS ( $1A75 ) DISKADDR ( 0 ) @ ( 1 ) RBP! ( 2 ) (lit) $0380 ( 3 ) ! ( 5 ) (lit) $0300 ( 6 ) (lit) $80 ( 8 ) MOVE ( 10 ) (lit) $05 ( 11 ) (lit) $0382 ( 13 ) C! ( 15 ) (lit) $0382 ( 16 ) C@ ( 18 ) (lit) $05 ( 19 ) = ( 21 ) (?branch) 27 ( 22 ) TICK ( 24 ) (branch) 16 ( 25 ) EXIT ( 27 ): DO ( $1484 IMMEDIATE ) (lit) '(do) ( 0 ) , ( 2 ) HERE ( 3 ) (lit) $00 ( 4 ) , ( 6 ) HERE ( 7 ) SWAP ( 8 ) EXIT ( 9 ): DOCON ( $0524 NATIVE ) TIX LDA $00,X PHA RLI NXT : DODOES ( $0543 NATIVE ) RLX PHX NXT : DOES> ( $134E IMMEDIATE ) (lit) '(does) ( 0 ) , ( 2 ) (lit) $22 ( 3 ) ,C ( 5 ) (lit) 'DODOES ( 6 ) , ( 8 ) EXIT ( 9 ): DOVAR ( $0534 NATIVE ) TIX PHX RLI NXT : DROP ( $0675 NATIVE ) PLA NXT : DUP ( $0649 NATIVE ) LDA 0,S PHA NXT : ELSE ( $13C4 IMMEDIATE ) DROP ( 0 ) (lit) '(branch) ( 1 ) , ( 3 ) HERE ( 4 ) (lit) $00 ( 5 ) , ( 7 ) SWAP ( 8 ) HERE ( 9 ) SWAP ( 10 ) ! ( 11 ) (lit) $00 ( 12 ) EXIT ( 14 ): EMIT ( $0F07 ) TERMADDR ( 0 ) @ ( 1 ) RBP! ( 2 ) (lit) $0302 ( 3 ) C@ ( 5 ) (lit) $0300 ( 6 ) C! ( 8 ) (lit) $0301 ( 9 ) C@ ( 11 ) (lit) $0310 ( 12 ) + ( 14 ) C! ( 15 ) (lit) $0301 ( 16 ) C@ ( 18 ) (lit) $4E ( 19 ) > ( 21 ) (?branch) 27 ( 22 ) CR ( 24 ) (branch) 34 ( 25 ) (lit) $0301 ( 27 ) C@ ( 29 ) 1+ ( 30 ) (lit) $0301 ( 31 ) C! ( 33 ) EXIT ( 34 ): EXECUTE ( $063D NATIVE ) PLX DEX PHX RTS : EXIT ( $055C NATIVE ) RLI NXT : FALSE ( $0AFE ) DOCON $00 ( 0 ): FILL ( $0A58 NATIVE ) PLA PLY PLX CPY #$0000 BEQ 10 SEP #$20 STA $00,X INX DEY BNE -6 REP #$20 NXT : FIND ( $16C7 ) VOCAB ( 0 ) @ ( 1 ) DUP ( 2 ) (?branch) 30 ( 3 ) 2DUP ( 5 ) >NAME ( 6 ) STRCMP ( 7 ) 0= ( 8 ) OVER ( 9 ) (lit) $03 ( 10 ) - ( 12 ) C@ ( 13 ) (lit) $02 ( 14 ) AND ( 16 ) 0= ( 17 ) AND ( 18 ) (?branch) 24 ( 19 ) TRUE ( 21 ) (branch) 28 ( 22 ) CELL ( 24 ) - ( 25 ) @ ( 26 ) FALSE ( 27 ) (branch) 31 ( 28 ) TRUE ( 30 ) (?branch) 2 ( 31 ) NIP ( 33 ) EXIT ( 34 ): FLUSH ( $1B6D ) (blkbuf) ( 0 ) @ ( 1 ) (blkno) ( 2 ) @ ( 3 ) 1- ( 4 ) (lit) $03 ( 5 ) << ( 7 ) (lit) $08 ( 8 ) (lit) $00 ( 10 ) (do) 25 ( 12 ) 2DUP ( 14 ) DISKWS ( 15 ) SWAP ( 16 ) (lit) $80 ( 17 ) + ( 19 ) SWAP ( 20 ) 1+ ( 21 ) (loop) 14 ( 22 ) UNLOOP ( 24 ) 2DROP ( 25 ) (lit) $00 ( 26 ) (blkup) ( 28 ) ! ( 29 ) EXIT ( 30 ): FM/MOD ( $0805 NATIVE ) PLX PLD PLA PHX TSX SEC DIV $00,X PLX PHD PHA TDA BEQ 17 PHX EOR 0,S BIT #$8000 BEQ 10 PLA CLC ADC 2,S STA 2,S TSX DEC $00,X NXT PLX NXT : FORGET ( $192B ) ' ( 0 ) DUP ( 1 ) >NAME ( 2 ) 1- ( 3 ) (HERE) ( 4 ) ! ( 5 ) CELL ( 6 ) - ( 7 ) @ ( 8 ) VOCAB ( 9 ) ! ( 10 ) EXIT ( 11 ): FREE ( $1155 ) TOP ( 0 ) @ ( 1 ) HERE ( 2 ) - ( 3 ) EXIT ( 4 ): HEADER ( $1224 ) (lit) $00 ( 0 ) ,C ( 2 ) TIBWORD ( 3 ) ,S ( 4 ) (lit) $00 ( 5 ) ,C ( 7 ) VOCAB ( 8 ) @ ( 9 ) , ( 10 ) HERE ( 11 ) VOCAB ( 12 ) ! ( 13 ) EXIT ( 14 ): HERE ( $10E0 ) (HERE) ( 0 ) @ ( 1 ) EXIT ( 2 ): HEX ( $0D7A IMMEDIATE ) (lit) $10 ( 0 ) RADIX ( 2 ) ! ( 3 ) EXIT ( 4 ): HIDE ( $12C2 ) VOCAB ( 0 ) @ ( 1 ) (lit) $03 ( 2 ) - ( 4 ) DUP ( 5 ) C@ ( 6 ) (lit) $02 ( 7 ) OR ( 9 ) SWAP ( 10 ) C! ( 11 ) EXIT ( 12 ): I ( $061D NATIVE ) LDA 0,R CLC ADC 2,R PHA NXT : IF ( $1392 IMMEDIATE ) (lit) '(?branch) ( 0 ) , ( 2 ) HERE ( 3 ) (lit) $00 ( 4 ) , ( 6 ) (lit) $00 ( 7 ) EXIT ( 9 ): IMMEDIATE ( $1311 ) VOCAB ( 0 ) @ ( 1 ) (lit) $03 ( 2 ) - ( 4 ) DUP ( 5 ) C@ ( 6 ) (lit) $01 ( 7 ) OR ( 9 ) SWAP ( 10 ) C! ( 11 ) EXIT ( 12 ): INTERPRET ( $178D ) WORD ( 0 ) DUP ( 1 ) STRLEN ( 2 ) 0<> ( 3 ) (?branch) 70 ( 4 ) SWAP ( 6 ) TIBPTR ( 7 ) ! ( 8 ) DUP ( 9 ) FIND ( 10 ) ?DUP ( 11 ) (?branch) 38 ( 12 ) NIP ( 14 ) STATE ( 15 ) @ ( 16 ) (?branch) 35 ( 17 ) DUP ( 19 ) (lit) $03 ( 20 ) - ( 22 ) C@ ( 23 ) (lit) $01 ( 24 ) AND ( 26 ) (?branch) 32 ( 27 ) EXECUTE ( 29 ) (branch) 33 ( 30 ) , ( 32 ) (branch) 36 ( 33 ) EXECUTE ( 35 ) (branch) 66 ( 36 ) DUP ( 38 ) C@ ( 39 ) ISNUM ( 40 ) (?branch) 54 ( 41 ) ATOI ( 43 ) STATE ( 44 ) @ ( 45 ) (?branch) 52 ( 46 ) (lit) '(lit) ( 48 ) , ( 50 ) , ( 51 ) (branch) 66 ( 52 ) ([paste][/paste]") Unknown Token: " ( 54 ) TYPE ( 63 ) CR ( 64 ) ABORT ( 65 ) TIBPTR ( 66 ) @ ( 67 ) (branch) 0 ( 68 ) DROP ( 70 ) DROP ( 71 ) EXIT ( 72 ): INVERT ( $08B2 NATIVE ) PLA EOR #$FFFF PHA NXT : IOX! ( $1976 ) IOXADDR ( 0 ) @ ( 1 ) RBP! ( 2 ) (lit) $0302 ( 3 ) ! ( 5 ) EXIT ( 6 ): IOX@ ( $195E ) IOXADDR ( 0 ) @ ( 1 ) RBP! ( 2 ) (lit) $0300 ( 3 ) @ ( 5 ) EXIT ( 6 ): IOXADDR ( $1950 ) DOVAR $03 ( 0 ): IOXRST ( $19B2 ) IOXADDR ( 0 ) @ ( 1 ) RBP! ( 2 ) INVERT ( 3 ) (lit) $0302 ( 4 ) @ ( 6 ) AND ( 7 ) (lit) $0302 ( 8 ) ! ( 10 ) EXIT ( 11 ): IOXSET ( $1990 ) IOXADDR ( 0 ) @ ( 1 ) RBP! ( 2 ) (lit) $0302 ( 3 ) @ ( 5 ) OR ( 6 ) (lit) $0302 ( 7 ) ! ( 9 ) EXIT ( 10 ): ISNUM ( $0CE2 ) DUP ( 0 ) ISUNUM ( 1 ) SWAP ( 2 ) (lit) $2D ( 3 ) = ( 5 ) OR ( 6 ) EXIT ( 7 ): ISUNUM ( $0CAB ) DUP ( 0 ) (lit) $40 ( 1 ) > ( 3 ) (?branch) 9 ( 4 ) (lit) $07 ( 6 ) - ( 8 ) (lit) $30 ( 9 ) - ( 11 ) DUP ( 12 ) 0< ( 13 ) SWAP ( 14 ) RADIX ( 15 ) @ ( 16 ) 1- ( 17 ) > ( 18 ) OR ( 19 ) 0= ( 20 ) EXIT ( 21 ): J ( $062A NATIVE ) LDA 4,R CLC ADC 6,R PHA NXT : KEY ( $0F9E NATIVE ) SEP #$20 LDA $0DC4 MMU #$00 LDA $0304 CMP $0305 BNE 3 WAI BRA -11 LDA $0306 ZEA INC $0304 REP #$20 PHA NXT : KEY? ( $0F7D NATIVE ) SEP #$20 LDA $0DC4 MMU #$00 LDA $0304 CMP $0305 REP #$20 BEQ 4 PEA $FFFF NXT PEA $0000 NXT : LEAVE ( $1505 IMMEDIATE ) (lit) $01 ( 0 ) DUP ( 2 ) PICK ( 3 ) 0= ( 4 ) (?branch) 12 ( 5 ) (lit) $02 ( 7 ) + ( 9 ) (branch) 2 ( 10 ) (lit) '(leave) ( 12 ) , ( 14 ) PICK ( 15 ) (lit) $02 ( 16 ) - ( 18 ) , ( 19 ) EXIT ( 20 ): LIST ( $1C60 ) BLOCK ( 0 ) CR ( 1 ) (lit) $0A ( 2 ) RADIX ( 4 ) ! ( 5 ) (lit) $10 ( 6 ) (lit) $00 ( 8 ) (do) 38 ( 10 ) I ( 12 ) (lit) $0A ( 13 ) < ( 15 ) (?branch) 19 ( 16 ) SPACE ( 18 ) I ( 19 ) [paste][/paste] ( 20 ) (lit) $40 ( 21 ) (lit) $00 ( 23 ) (do) 34 ( 25 ) DUP ( 27 ) C@ ( 28 ) EMIT ( 29 ) 1+ ( 30 ) (loop) 27 ( 31 ) UNLOOP ( 33 ) CR ( 34 ) (loop) 12 ( 35 ) UNLOOP ( 37 ) DROP ( 38 ) EXIT ( 39 ): LITERAL ( $15FF IMMEDIATE ) ' ( 0 ) (lit) '(lit) ( 1 ) , ( 3 ) , ( 4 ) EXIT ( 5 ): LOAD ( $1D0C ) BLOCK ( 0 ) (lit) $00 ( 1 ) TIB ( 3 ) (lit) $40 ( 4 ) + ( 6 ) C! ( 7 ) (lit) $10 ( 8 ) (lit) $00 ( 10 ) (do) 30 ( 12 ) DUP ( 14 ) TIB ( 15 ) (lit) $40 ( 16 ) MOVE ( 18 ) TIB ( 19 ) TIBPTR ( 20 ) ! ( 21 ) TIB ( 22 ) INTERPRET ( 23 ) (lit) $40 ( 24 ) + ( 26 ) (loop) 14 ( 27 ) UNLOOP ( 29 ) DROP ( 30 ) EXIT ( 31 ): LOOP ( $14BF IMMEDIATE ) SWAP ( 0 ) (lit) '(loop) ( 1 ) , ( 3 ) , ( 4 ) (lit) 'UNLOOP ( 5 ) , ( 7 ) HERE ( 8 ) SWAP ( 9 ) ! ( 10 ) EXIT ( 11 ): M* ( $07AC NATIVE ) PLA TSX SEC MUL $00,X PLX PHA PHD NXT : MAX ( $0A18 NATIVE ) PLA CMP 0,S BMI 2 STA 0,S NXT : MEMCMP ( $0A76 NATIVE ) RHX PLA PLY PLX TXI TYX TAY BEQ 13 SEP #$20 NXA CMP $00,X BNE 11 INX DEY BNE -9 REP #$20 RLI PEA $0000 NXT REP #$20 RLI BMI 4 PEA $0001 NXT PEA $FFFF NXT : MIN ( $0A28 NATIVE ) PLA CMP 0,S BPL 2 STA 0,S NXT : MOD ( $1090 ) /MOD ( 0 ) NIP ( 1 ) EXIT ( 2 ): MOVE ( $0A39 NATIVE ) RHX PLA PLY PLX TXI TYX TAY BEQ 11 SEP #$20 NXA STA $00,X INX DEY BNE -7 REP #$20 RLI NXT : NAME> ( $16AF ) DUP ( 0 ) STRLEN ( 1 ) + ( 2 ) (lit) $06 ( 3 ) + ( 5 ) EXIT ( 6 ): NEGATE ( $08C3 NATIVE ) PLA EOR #$FFFF INC A PHA NXT : NIP ( $070B NATIVE ) PLA PLX PHA NXT : OR ( $0893 NATIVE ) PLA ORA 0,S STA 0,S NXT : OVER ( $06B3 NATIVE ) LDA 2,S PHA NXT : PAGE ( $0DCF ) TERMADDR ( 0 ) @ ( 1 ) RBP! ( 2 ) (lit) $00 ( 3 ) (lit) $0303 ( 5 ) C! ( 7 ) (lit) $20 ( 8 ) (lit) $0308 ( 10 ) C! ( 12 ) (lit) $00 ( 13 ) (lit) $030A ( 15 ) ! ( 17 ) (lit) $3250 ( 18 ) (lit) $030C ( 20 ) ! ( 22 ) (lit) $01 ( 23 ) (lit) $0307 ( 25 ) C! ( 27 ) (lit) $0307 ( 28 ) C@ ( 30 ) 0= ( 31 ) TICK ( 32 ) (?branch) 28 ( 33 ) (lit) $01 ( 35 ) (lit) $0301 ( 37 ) ! ( 39 ) (lit) $02 ( 40 ) (lit) $0303 ( 42 ) C! ( 44 ) EXIT ( 45 ): PICK ( $069B NATIVE ) PLA CLC ROL A CLC ADC #$0002 PHA TSX TXY LDA (0,S),Y STA 0,S NXT : POSTPONE ( $1619 IMMEDIATE ) ' ( 0 ) DUP ( 1 ) (lit) $03 ( 2 ) - ( 4 ) C@ ( 5 ) (lit) $01 ( 6 ) AND ( 8 ) (?branch) 14 ( 9 ) , ( 11 ) (branch) 18 ( 12 ) (lit) '(lit) ( 14 ) , ( 16 ) , ( 17 ) EXIT ( 18 ): PP ( $1CD4 ) UPDATE ( 0 ) (lit) $06 ( 1 ) << ( 3 ) (blkbuf) ( 4 ) @ ( 5 ) + ( 6 ) DUP ( 7 ) (lit) $40 ( 8 ) (lit) $20 ( 10 ) FILL ( 12 ) (lit) $0D ( 13 ) TIBSPLIT ( 15 ) TUCK ( 16 ) STRLEN ( 17 ) (lit) $40 ( 18 ) MIN ( 20 ) MOVE ( 21 ) EXIT ( 22 ): PROBE ( $110D ) (lit) $1FFF ( 0 ) DUP ( 2 ) (lit) $2000 ( 3 ) + ( 5 ) DUP ( 6 ) C@ ( 7 ) DUP ( 8 ) INVERT ( 9 ) 2OVER ( 10 ) ! ( 11 ) DUP ( 12 ) 2OVER ( 13 ) C@ ( 14 ) = ( 15 ) SWAP ( 16 ) 2OVER ( 17 ) C! ( 18 ) (?branch) 23 ( 19 ) DROP ( 21 ) EXIT ( 22 ) NIP ( 23 ) DUP ( 24 ) (lit) $FFFF ( 25 ) = ( 27 ) (?branch) 2 ( 28 ) EXIT ( 30 ): QUIT ( $1829 ) RP0 ( 0 ) RP! ( 1 ) (lit) $00 ( 2 ) STATE ( 4 ) ! ( 5 ) DEPTH ( 6 ) 0< ( 7 ) (?branch) 19 ( 8 ) ([paste][/paste]") Empty Stack" ( 10 ) SP0 ( 17 ) SP! ( 18 ) CR ( 19 ) STATE ( 20 ) @ ( 21 ) 0= ( 22 ) (?branch) 29 ( 23 ) ([paste][/paste]") > " ( 25 ) (branch) 35 ( 27 ) ([paste][/paste]") compile: " ( 29 ) TIB ( 35 ) (lit) $78 ( 36 ) ACCEPT ( 38 ) SPACE ( 39 ) INTERPRET ( 40 ) (branch) 6 ( 41 ): R> ( $072F NATIVE ) RLA PHA NXT : RADIX ( $0B2B ) DOVAR $0A ( 0 ): RBP! ( $0DB0 NATIVE ) PLA MMU #$00 NXT : RECURSE ( $164C IMMEDIATE ) VOCAB ( 0 ) @ ( 1 ) , ( 2 ) EXIT ( 3 ): REPEAT ( $1466 IMMEDIATE ) DROP ( 0 ) NIP ( 1 ) SWAP ( 2 ) (lit) '(branch) ( 3 ) , ( 5 ) , ( 6 ) HERE ( 7 ) SWAP ( 8 ) ! ( 9 ) EXIT ( 10 ): REVEAL ( $12E8 ) VOCAB ( 0 ) @ ( 1 ) (lit) $03 ( 2 ) - ( 4 ) DUP ( 5 ) C@ ( 6 ) (lit) $01 ( 7 ) AND ( 9 ) SWAP ( 10 ) C! ( 11 ) EXIT ( 12 ): REVERT ( $1BB7 ) (lit) $00 ( 0 ) (blkup) ( 2 ) ! ( 3 ) (blkbuf) ( 4 ) @ ( 5 ) (blkno) ( 6 ) @ ( 7 ) 1- ( 8 ) (lit) $03 ( 9 ) << ( 11 ) (lit) $08 ( 12 ) (lit) $00 ( 14 ) (do) 29 ( 16 ) 2DUP ( 18 ) DISKRS ( 19 ) SWAP ( 20 ) (lit) $80 ( 21 ) + ( 23 ) SWAP ( 24 ) 1+ ( 25 ) (loop) 18 ( 26 ) UNLOOP ( 28 ) 2DROP ( 29 ) EXIT ( 30 ): ROT ( $06CD NATIVE ) PLA PLX PLY PHX PHA PHY NXT : RP! ( $0909 NATIVE ) PLX TXR NXT : RP0 ( $1685 ) DOCON $0300 ( 0 ): RP@ ( $08FE NATIVE ) TRX PHX NXT : RSTRLEN ( $0ACD NATIVE ) LDA 0,S TAX LDA #$0000 SEP #$20 CMP $00,X BEQ 3 DEX BRA -7 REP #$20 PLA PHX SEC SBC 0,S STA 0,S NXT : SAVE" ( $1AFE ) DISKNAME" ( 0 ) (lit) ' ( 1 ) HERE ( 3 ) (lit) $0481 ( 4 ) - ( 6 ) (lit) $07 ( 7 ) U>> ( 9 ) (lit) $00 ( 10 ) (do) 23 ( 12 ) DUP ( 14 ) I ( 15 ) DISKWS ( 16 ) (lit) $80 ( 17 ) + ( 19 ) (loop) 14 ( 20 ) UNLOOP ( 22 ) EXIT ( 23 ): SCRATCH ( $0B0F ) DOCON $40 ( 0 ): SCROLL ( $0E37 ) TERMADDR ( 0 ) @ ( 1 ) RBP! ( 2 ) (lit) $00 ( 3 ) (lit) $0303 ( 5 ) C! ( 7 ) (lit) $0100 ( 8 ) (lit) $0308 ( 10 ) ! ( 12 ) (lit) $00 ( 13 ) (lit) $030A ( 15 ) ! ( 17 ) (lit) $3150 ( 18 ) (lit) $030C ( 20 ) ! ( 22 ) (lit) $03 ( 23 ) (lit) $0307 ( 25 ) C! ( 27 ) (lit) $0307 ( 28 ) C@ ( 30 ) 0= ( 31 ) TICK ( 32 ) (?branch) 28 ( 33 ) (lit) $20 ( 35 ) (lit) $0308 ( 37 ) C! ( 39 ) (lit) $3100 ( 40 ) (lit) $030A ( 42 ) ! ( 44 ) (lit) $0150 ( 45 ) (lit) $030C ( 47 ) ! ( 49 ) (lit) $01 ( 50 ) (lit) $0307 ( 52 ) C! ( 54 ) (lit) $0307 ( 55 ) C@ ( 57 ) 0= ( 58 ) TICK ( 59 ) (?branch) 55 ( 60 ) (lit) $02 ( 62 ) (lit) $0303 ( 64 ) C! ( 66 ) EXIT ( 67 ): SM/REM ( $07EE NATIVE ) PLX PLD PLA PHX TSX SEC DIV $00,X PLX PHD PHA NXT : SP! ( $08F3 NATIVE ) PLX TXA NXT : SP0 ( $1678 ) DOCON $0200 ( 0 ): SP@ ( $08E8 NATIVE ) TSX PHX NXT : SPACE ( $1007 ) BL ( 0 ) EMIT ( 1 ) EXIT ( 2 ): SPLIT ( $0C3B ) SWAP ( 0 ) OVER ( 1 ) OVER ( 2 ) C@ ( 3 ) = ( 4 ) (?branch) 10 ( 5 ) 1+ ( 7 ) (branch) 1 ( 8 ) TUCK ( 10 ) OVER ( 11 ) OVER ( 12 ) C@ ( 13 ) <> ( 14 ) OVER ( 15 ) C@ ( 16 ) 0<> ( 17 ) AND ( 18 ) (?branch) 24 ( 19 ) 1+ ( 21 ) (branch) 11 ( 22 ) DUP ( 24 ) C@ ( 25 ) (?branch) 33 ( 26 ) (lit) $00 ( 28 ) OVER ( 30 ) C! ( 31 ) 1+ ( 32 ) NIP ( 33 ) SWAP ( 34 ) EXIT ( 35 ): STATE ( $10FE ) DOVAR $00 ( 0 ): STRCMP ( $0C8F ) 2DUP ( 0 ) STRLEN ( 1 ) SWAP ( 2 ) STRLEN ( 3 ) MIN ( 4 ) 1+ ( 5 ) MEMCMP ( 6 ) EXIT ( 7 ): STRLEN ( $0AA9 NATIVE ) LDA 0,S TAX LDA #$0000 SEP #$20 CMP $00,X BEQ 3 INX BRA -7 REP #$20 TXA SEC SBC 0,S STA 0,S NXT : SWAP ( $068D NATIVE ) PLA PLX PHA PHX NXT : TERMADDR ( $0DC1 ) DOVAR $01 ( 0 ): THEN ( $13B0 IMMEDIATE ) DROP ( 0 ) HERE ( 1 ) SWAP ( 2 ) ! ( 3 ) EXIT ( 4 ): TIB ( $0B1C ) DOCON $80 ( 0 ): TIBPTR ( $10B3 ) DOVAR $00 ( 0 ): TIBSPLIT ( $1208 ) TIBPTR ( 0 ) @ ( 1 ) SWAP ( 2 ) SPLIT ( 3 ) SWAP ( 4 ) TIBPTR ( 5 ) ! ( 6 ) EXIT ( 7 ): TIBWORD ( $11EC ) TIBPTR ( 0 ) @ ( 1 ) WORD ( 2 ) SWAP ( 3 ) TIBPTR ( 4 ) ! ( 5 ) EXIT ( 6 ): TICK ( $0DA5 NATIVE ) WAI NXT : TICKS ( $165F ) ?DUP ( 0 ) (?branch) 7 ( 1 ) TICK ( 3 ) 1- ( 4 ) (branch) 0 ( 5 ) EXIT ( 7 ): TIMES ( $1594 IMMEDIATE ) STATE ( 0 ) @ ( 1 ) 0= ( 2 ) (?branch) 19 ( 3 ) ' ( 5 ) SWAP ( 6 ) (lit) $00 ( 7 ) (?do) 16 ( 9 ) DUP ( 11 ) EXECUTE ( 12 ) (loop) 11 ( 13 ) UNLOOP ( 15 ) DROP ( 16 ) (branch) 46 ( 17 ) ' ( 19 ) (lit) '(lit) ( 20 ) , ( 22 ) (lit) $00 ( 23 ) , ( 25 ) (lit) '(?do) ( 26 ) , ( 28 ) HERE ( 29 ) (lit) $0A ( 30 ) + ( 32 ) , ( 33 ) , ( 34 ) HERE ( 35 ) (lit) $02 ( 36 ) - ( 38 ) (lit) '(loop) ( 39 ) , ( 41 ) , ( 42 ) (lit) 'UNLOOP ( 43 ) , ( 45 ) EXIT ( 46 ): TOP ( $10EF ) DOVAR $00 ( 0 ): TRUE ( $0AEF ) DOCON $FFFF ( 0 ): TUCK ( $0718 NATIVE ) PLA PLX PHA PHX PHA NXT : TYPE ( $1017 ) DUP ( 0 ) C@ ( 1 ) ?DUP ( 2 ) (?branch) 9 ( 3 ) EMIT ( 5 ) 1+ ( 6 ) (branch) 0 ( 7 ) DROP ( 9 ) EXIT ( 10 ): U* ( $07DB NATIVE ) PLA TSX CLC MUL $00,X PLX PHA NXT : U[paste][/paste] ( $105E ) UITOA ( 0 ) TYPE ( 1 ) SPACE ( 2 ) EXIT ( 3 ): U< ( $098A NATIVE ) PLA CMP 0,S BCC 7 BEQ 5 PLA PEA $FFFF NXT PLA PEA $0000 NXT : U> ( $09A2 NATIVE ) PLA CMP 0,S BCC 5 PLA PEA $0000 NXT PLA PEA $FFFF NXT : U>> ( $0860 NATIVE ) PLY PLA CLC ROR A DEY BNE -5 PHA NXT : UATOI ( $0CFD ) (lit) $00 ( 0 ) OVER ( 2 ) C@ ( 3 ) DUP ( 4 ) (lit) $40 ( 5 ) > ( 7 ) (?branch) 13 ( 8 ) (lit) $07 ( 10 ) - ( 12 ) (lit) $30 ( 13 ) - ( 15 ) DUP ( 16 ) 0< ( 17 ) OVER ( 18 ) RADIX ( 19 ) @ ( 20 ) >= ( 21 ) OR ( 22 ) 0= ( 23 ) (?branch) 36 ( 24 ) SWAP ( 26 ) RADIX ( 27 ) @ ( 28 ) U* ( 29 ) + ( 30 ) SWAP ( 31 ) 1+ ( 32 ) SWAP ( 33 ) (branch) 2 ( 34 ) DROP ( 36 ) NIP ( 37 ) EXIT ( 38 ): UITOA ( $0B46 ) SCRATCH ( 0 ) (lit) $14 ( 1 ) + ( 3 ) (lit) $00 ( 4 ) OVER ( 6 ) C! ( 7 ) 1- ( 8 ) SWAP ( 9 ) (lit) $00 ( 10 ) RADIX ( 12 ) @ ( 13 ) UM/MOD ( 14 ) -ROT ( 15 ) (lit) $30 ( 16 ) + ( 18 ) DUP ( 19 ) (lit) $39 ( 20 ) > ( 22 ) (?branch) 28 ( 23 ) (lit) $07 ( 25 ) + ( 27 ) OVER ( 28 ) C! ( 29 ) OVER ( 30 ) 0= ( 31 ) (?branch) 8 ( 32 ) NIP ( 34 ) EXIT ( 35 ): UM* ( $07BD NATIVE ) PLA TSX CLC MUL $00,X PLX PHA PHD NXT : UM/MOD ( $0832 NATIVE ) PLX PLD PLA PHX TSX CLC DIV $00,X PLX PHD PHA NXT : UNLOOP ( $0614 NATIVE ) RLA RLA NXT : UNTIL ( $142F IMMEDIATE ) DROP ( 0 ) (lit) '(?branch) ( 1 ) , ( 3 ) , ( 4 ) EXIT ( 5 ): UPDATE ( $1C4C ) (lit) $01 ( 0 ) (blkup) ( 2 ) ! ( 3 ) EXIT ( 4 ): VARIABLE ( $128C ) CREATE ( 0 ) (lit) $00 ( 1 ) , ( 3 ) EXIT ( 4 ): VOCAB ( $10C2 ) DOVAR 'COLD ( 0 ): WHILE ( $1446 IMMEDIATE ) (lit) '(?branch) ( 0 ) , ( 2 ) HERE ( 3 ) (lit) $00 ( 4 ) , ( 6 ) (lit) $00 ( 7 ) EXIT ( 9 ): WIPE ( $1CBA ) UPDATE ( 0 ) (blkbuf) ( 1 ) @ ( 2 ) (lit) $0400 ( 3 ) (lit) $20 ( 5 ) FILL ( 7 ) EXIT ( 8 ): WORD ( $0B98 ) DUP ( 0 ) C@ ( 1 ) DUP ( 2 ) (lit) $20 ( 3 ) = ( 5 ) OVER ( 6 ) (lit) $09 ( 7 ) = ( 9 ) OR ( 10 ) OVER ( 11 ) (lit) $0A ( 12 ) = ( 14 ) OR ( 15 ) OVER ( 16 ) (lit) $0D ( 17 ) = ( 19 ) OR ( 20 ) NIP ( 21 ) (?branch) 27 ( 22 ) 1+ ( 24 ) (branch) 0 ( 25 ) DUP ( 27 ) C@ ( 28 ) 0= ( 29 ) (?branch) 34 ( 30 ) DUP ( 32 ) EXIT ( 33 ) DUP ( 34 ) DUP ( 35 ) C@ ( 36 ) DUP ( 37 ) (lit) $20 ( 38 ) <> ( 40 ) OVER ( 41 ) 0<> ( 42 ) AND ( 43 ) OVER ( 44 ) (lit) $09 ( 45 ) <> ( 47 ) AND ( 48 ) OVER ( 49 ) (lit) $0A ( 50 ) <> ( 52 ) AND ( 53 ) OVER ( 54 ) (lit) $0D ( 55 ) <> ( 57 ) AND ( 58 ) NIP ( 59 ) (?branch) 65 ( 60 ) 1+ ( 62 ) (branch) 35 ( 63 ) DUP ( 65 ) C@ ( 66 ) (?branch) 74 ( 67 ) (lit) $00 ( 69 ) OVER ( 71 ) C! ( 72 ) 1+ ( 73 ) SWAP ( 74 ) EXIT ( 75 ): WORDS ( $188B ) VOCAB ( 0 ) @ ( 1 ) DUP ( 2 ) (?branch) 14 ( 3 ) DUP ( 5 ) >NAME ( 6 ) TYPE ( 7 ) SPACE ( 8 ) CELL ( 9 ) - ( 10 ) @ ( 11 ) (branch) 2 ( 12 ) DROP ( 14 ) EXIT ( 15 ): XOR ( $08A1 NATIVE ) PLA EOR 0,S STA 0,S NXT : [ ( $129D ) (lit) $01 ( 0 ) STATE ( 2 ) ! ( 3 ) EXIT ( 4 ): \ ( $1536 IMMEDIATE ) (lit) $0D ( 0 ) TIBSPLIT ( 2 ) DROP ( 3 ) EXIT ( 4 ): ] ( $12AE IMMEDIATE ) (lit) $00 ( 0 ) STATE ( 2 ) ! ( 3 ) EXIT ( 4 )