VolksForth/6502/C64/disks/vforth4_3.d64
Carsten Strotmann 0fa7b342cc ANS-Shim update
2020-06-26 14:09:21 +02:00

1 line
171 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\\ 腎RECTORY ULTRA葡以<E891A1> 3OF4 26OCT87RE . &0 .. &0 ROM-RAM-SYS &2 訰ANSIENT-罶SEMBLER &4 罶SEMBLER-6502 &5 2WORDS &14 UNLINK &15 SCR<>CBM &16 (SEARCH &17 臘ITOR &19 .BLK &46 訰ACER/設OLS &47 蚒LTI-訟SKER &57 臥SON邑80 &63 置1526 &75 眯-80 &78 \\ 肙NTENT VOLKS芆RTH 3.81.02 CAS16AUG06 ROM RAM SYS 2 - 3 訰ANSIENT 罶SEMBLER 4 罶SEMBLER-6502 5 - 12 13 FREE 2WORDS 14 UNLINK 15 SCR<>CBM 16 (SEARCH 17 臘ITOR 19 .BLK 46 訰ACER 設OLS 47 蚒LTI-訟SKER 57 蠷INTER: 臥SON邑80 63 蠷INTER: 置1526 75 蠷INTER: 眯-80 78 親ADOWS 85 ... \ ROM RAM SYS CAS16AUG06 \ 親ADOW WITH 肨RL+<2B>---> \ NEEDED FOR JUMPS \ IN THE 蚁<> 罵EA 罶SEMBLER ALSO DEFINITIONS (16 \ 覹ITCH 翧NK 8000-破破 : ROM HERE 9 + $8000 U> ABORT" NOT HERE" $FF3E STA ; : RAM $FF3F STA ; : SYS ROM JSR RAM ; \ IF SUFFERING FROM ABORT" NOT HERE" \ SEE NEXT SCREEN 覥REEN --> <20>) (64 \ 覹ITCH 翧NK <20>000-缕破 : ROM HERE 9 + $<24>000 U> ABORT" NOT HERE" $37 # LDA 1 STA ; : RAM $36 # LDA 1 STA ; <20>) \ SYS虯CRO 蘋NG CAS16AUG06 (64 .( NOT FOR <20>64 !) \\ <20>) \ FOR ADVANCED USERS, USE MACROS HERE $8000 $20 - U> ?EXIT \ NOT POSSIBLE ' 0 <20> 罫IAS ??? 藺BEL LONG 蚁<> 藺BEL LONG1 ??? JSR 伊<> RTS END-CODE <20> : SYS虯CRO ( ADR -- ) $100 U/MOD PHA # LDA LONG1 2+ STA # LDA LONG1 1+ STA PLA LONG JSR ; : SYS ( ADR -- ) \ FOR 蔛R TO 蚁<> HERE 9 + $8000 U> 善 SYS虯CRO 盘优 SYS 匀盼 ; \ TRANSIENT 罶SEMBLER CLV10OCT87 \ 翧SIS: 芆RTH 腎MENSIONS 窒<><> 蜲. 5) \ INTERNAL LOADING 04MAY85滦/RE) HERE $800 HALLOT HEAP DP ! 1 +LOAD DP ! 螻LYFORTH \ 芆RTH-6502 罶SEMBLER CLV10OCT87 \ 翧SIS: 芆RTH 腎MENSIONS 窒<><> 蜲. 5) 螻LYFORTH 罶SEMBLER ALSO DEFINITIONS 1 7 +THRU -3 +LOAD \ 虯KROS: ROM RAM SYS 螻LYFORTH \ 芆RTH-83 6502-罶SEMBLER 20OCT87RE : END-CODE CONTEXT 2- @ CONTEXT ! ; 肦EATE INDEX $0909 , $1505 , $0115 , $8011 , $8009 , $1<>0<EFBFBD> , $8019 , $8080 , $0080 , $1404 , $8014 , $8080 , $8080 , $1<>0<EFBFBD> , $801<30> , $2<>80 , <20> 諥RIABLE MODE : 蚈DE: ( N -) 肦EATE C, 腛ES> ( -) C@ MODE ! ; 0 蚈DE: .<2E> 1 蚈DE: # 2 <20> 蚈DE: MEM 3 蚈DE: ,<2C> 4 蚈DE: ,<2C> 5 蚈DE: <20>) 6 蚈DE: )<29> $<24> 蚈DE: ) \ UPMODE CPU 20OCT87RE <20> : UPMODE ( ADDR0 F0 - ADDR1 F1) 善 MODE @ 8 OR MODE ! 匀盼 1 MODE @ $<24> AND ?DUP 善 0 南 DUP + 滔闲 匀盼 OVER 1+ @ AND 0= ; : CPU ( 8B -) 肦EATE C, 腛ES> ( -) C@ C, MEM ; 00 CPU BRK $18 CPU CLC $<24>8 CPU CLD $58 CPU CLI $<24>8 CPU CLV $昧 CPU DEX $88 CPU DEY $<24>8 CPU INX $<24>8 CPU INY $帕 CPU NOP $48 CPU PHA $08 CPU PHP $68 CPU PLA $28 CPU PLP $40 CPU RTI $60 CPU RTS $38 CPU SEC $<24>8 CPU SED $78 CPU SEI $亮 CPU TAX $<24>8 CPU TAY $铝 CPU TSX $8<> CPU TXA $9<> CPU TXS $98 CPU TYA \ M/CPU 20OCT87RE : M/CPU ( MODE OPCODE -) 肦EATE C, , 腛ES> DUP 1+ @ $80 AND 善 $10 MODE +! 匀盼 OVER $破00 AND UPMODE UPMODE 善 MEM TRUE 罛ORT" INVALID" 匀盼 C@ MODE @ INDEX + C@ + C, MODE @ 7 AND 善 MODE @ $<24> AND 7 < 善 C, 盘优 , 匀盼 匀盼 MEM ; $1<>6<EFBFBD> $60 M/CPU ADC $1<>6<EFBFBD> $20 M/CPU AND $1<>6<EFBFBD> $<24>0 M/CPU CMP $1<>6<EFBFBD> $40 M/CPU EOR $1<>6<EFBFBD> $<24>0 M/CPU LDA $1<>6<EFBFBD> $00 M/CPU ORA $1<>6<EFBFBD> $<24>0 M/CPU SBC $1<>6<EFBFBD> $80 M/CPU STA $0<>0<EFBFBD> $01 M/CPU ASL $0<>0<EFBFBD> $<24>1 M/CPU DEC $0<>0<EFBFBD> $<24>1 M/CPU INC $0<>0<EFBFBD> $41 M/CPU LSR $0<>0<EFBFBD> $21 M/CPU ROL $0<>0<EFBFBD> $61 M/CPU ROR $0414 $81 M/CPU STX $0486 $<24>0 M/CPU CPX $0486 $<24>0 M/CPU CPY $1496 $<24>2 M/CPU LDX $0<>8<EFBFBD> $<24>0 M/CPU LDY $048<34> $80 M/CPU STY $0480 $14 M/CPU JSR $8480 $40 M/CPU JMP $0484 $20 M/CPU BIT \ 罶SEMBLER CONDITIONALS 20OCT87RE <20> : RANGE? ( BRANCH -- BRANCH ) DUP ABS $7<> U> 罛ORT" OUT OF RANGE " ; : [[ ( 屡巧<E5B1A1>) HERE ; : ?] ( 瘴陨<E798B4>) C, HERE 1+ - RANGE? C, ; : ?[ ( 善) C, HERE 0 C, ; : ?[[ ( 兹商<E585B9>) ?[ SWAP ; : ]? ( 匀盼) HERE OVER C@ 善 SWAP ! 盘优 OVER 1+ - RANGE? SWAP C! 匀盼 ; : ][ ( 盘优) HERE 1+ 1 JMP SWAP HERE OVER 1+ - RANGE? SWAP C! ; : ]] ( 燎辽<E7878E>) JMP ; : ]]? ( 遗信猎) JMP ]? ; \ 罶SEMBLER CONDITIONALS 20OCT87RE $90 肙NSTANT 糜 $<24>0 肙NSTANT 妹 $<24>0 肙NSTANT 0= $<24>0 肙NSTANT 0<> $10 肙NSTANT 0< $30 肙NSTANT 0>= $50 肙NSTANT 钟 $70 肙NSTANT 置 : NOT $20 [ 芆RTH ] XOR ; : BEQ 0<> ?] ; : BMI 0>= ?] ; : BNE 0= ?] ; : BPL 0< ?] ; : BCC 糜 ?] ; : BVC 钟 ?] ; : BCS 妹 ?] ; : BVS 置 ?] ; \ 2INC/2DEC WINC/WDEC 20OCT87RE : 2INC ( ADR -- ) DUP LDA CLC 2 # ADC DUP STA 糜 ?[ SWAP 1+ INC ]? ; : 2DEC ( ADR -- ) DUP LDA SEC 2 # SBC DUP STA 妹 ?[ SWAP 1+ DEC ]? ; : WINC ( ADR -- ) DUP INC 0= ?[ SWAP 1+ INC ]? ; : WDEC ( ADR -- ) DUP LDA 0= ?[ OVER 1+ DEC ]? DEC ; : ;C: RECOVER JSR END-CODE ] 0 LAST ! 0 ; \ ;CODE 肙DE CODE> BP/RE03FEB85 螻LYFORTH : 罶SEMBLER 罶SEMBLER [ 罶SEMBLER ] MEM ; : ;肙DE [COMPILE] 腛ES> -3 ALLOT [COMPILE] ; -2 ALLOT 罶SEMBLER ; IMMEDIATE : 肙DE 肦EATE HERE DUP 2- ! 罶SEMBLER ; : >LABEL ( ADR -) HERE <20> 肦EATE IMMEDIATE SWAP , 4 HALLOT HEAP 1 AND HALLOT ( 6502-ALIG) HERE 4 - HEAP 4 CMOVE HEAP LAST @ COUNT $1<> AND + ! DP ! 腛ES> ( - ADR) @ STATE @ 善 [COMPILE] 蘄TERAL 匀盼 ; : 藺BEL [ 罶SEMBLER ] HERE >LABEL 罶SEMBLER ; \ FREE CAS16AUG06 \ 2! 2@ 2VARIABLE 2CONSTANT CLV20AUG87RE 肙DE 2! ( D ADR --) TYA SETUP JSR 3 # LDY [[ 有 )<29> LDA <20> )<29> STA DEY 0< ?] 1 # LDY 蠴PTWO JMP END-CODE 肙DE 2@ ( ADR -- D) 有 <20>) LDA <20> STA 有 )<29> LDA <20> 1+ STA 有 2DEC 3 # LDY [[ <20> )<29> LDA 有 )<29> STA DEY 0< ?] XY蜤XT JMP END-CODE : 2諥RIABLE ( --) 肦EATE 4 ALLOT ; ( -- ADR) : 2肙NSTANT ( D --) 肦EATE , , 腛ES> ( -- D) 2@ ; \ 2DUP EXISTS \ 2SWAP EXISTS \ 2DROP EXISTS \ UNLINK CLV20AUG87RE $破<>0 >LABEL PLOT (64 肙DE UNLINK ( -- ) $288 LDA $80 # ORA TAY TXA [[ $<24>9 ,<2C> STY CLC $28 # ADC 糜 ?[ INY ]? INX $1<> # CPX 0= ?] $<24>3 LDA $28 # CMP 糜 ?[ $28 # SBC $<24>3 STA ]? $<24>3 LDY $<24>6 LDX CLC PLOT JSR <20>) (16 : UNLINK 0 0 $7排 2! ; <20>) 藺BEL SETPTRS 0 # LDX 1 # LDY 蜤XT JMP END-CODE \ CHANGING CODES CAS16AUG06 ( MAPPING COMMODORE SCREEN CODES ) 藺BEL (SCR>CBM <20> 6 + STA $3<> # AND <20> 6 + ASL <20> 6 + BIT 0< ?[ $80 # ORA ]? 置 ?[ $40 # ORA ]? RTS 藺BEL (CBM>SCR <20> 6 + STA $7<> # AND $20 # CMP 糜 ?[ $40 # CMP 糜 ?[ $1<> # AND <20> 6 + BIT 0< ?[ $40 # ORA ]? ]? RTS ]? 罶CII . # LDA RTS 肙DE CBM>SCR ( 8B1 -- 8B2) 有 <20>) LDA (CBM>SCR JSR 有 <20>) STA 蜤XT JMP END-CODE 肙DE SCR>CBM ( 8B1 -- 8B2) 有 <20>) LDA (SCR>CBM JSR 有 <20>) STA 蜤XT JMP END-CODE \ FAST SEARCH CAS16AUG06 \NEEDS 肙DE -$<24> +LOAD \ 訰ANS 罶SEMBLER 螻LYFORTH ' 0< @ 4 + >LABEL PUTTRUE PUTTRUE 3 + >LABEL PUTFALSE 肙DE (SEARCH ( TEXT TLEN BUFFER BLEN -- ADR TF / FF) 7 # LDY [[ 有 )<29> LDA <20> ,<2C> STA DEY 0< ?] [[ <20> 4 + LDA <20> 5 + ORA 0<> ?[ [[ <20> LDA <20> 1+ ORA 0<> ?[ <20> 2+ <20>) LDA <20> 6 + <20>) CMP SWAP 0<> ?[[ <20> WDEC <20> 2+ WINC ]]? --> \ 臘IOR FAST SEARCH CAS16AUG06 7 # LDY [[ <20> ,<2C> LDA 有 )<29> STA DEY 0< ?] [[ <20> 2+ WINC <20> 6 + WINC <20> WDEC <20> 4 + WDEC <20> 4 + LDA <20> 5 + ORA 0= ?[ 有 LDA CLC 4 # ADC 有 STA 糜 ?[ 有 1+ INC ]? 3 # LDY <20> 3 + LDA 有 )<29> STA <20> 2+ LDA DEY 有 )<29> STA DEY PUTTRUE JMP ]? <20> LDA <20> 1+ ORA 0= ?[ 3 ROLL 3 ROLL ]? ]? 有 LDA CLC 6 # ADC 有 STA 糜 ?[ 有 1+ INC ]? 1 # LDY PUTFALSE JMP ]? <20> 2+ <20>) LDA <20> 6 + <20>) CMP 0= NOT ?] 7 # LDY [[ 有 )<29> LDA <20> ,<2C> STA DEY 0< ?] <20> WDEC <20> 2+ WINC ( NEXT CHAR AS FIRST ) ]] END-CODE \ 臘ITOR LOADSCREEN CLV13JUL87 \ 蒁EA AND FIRST IMPLEMENTATION: 着/RE 螻LYFORTH \NEEDS .BLK $1<> +LOAD \ .BLK \NEEDS 肙DE -$<24> +LOAD \ 罶SEMBL \NEEDS (SEARCH -2 +LOAD \ (SEARCH 螻LYFORTH (64 <20> : AT AT CUROFF ; <20>) \ SORRY \NEEDS 2VARIABLE -5 +LOAD \NEEDS UNLINK -4 +LOAD \ UNLINK \NEEDS SCR>CBM -3 +LOAD \ CBM><SCR 諳CABULARY 臘ITOR 臘ITOR ALSO DEFINITIONS 1 $17 +THRU \ 臘ITOR $18 $19 +THRU \ EDIT-VIEW $1<> +LOAD \ 臘IBOARD 螻LYFORTH 1 SCR ! 0 R# ! SAVE \ 臘I 肙NSTANTS 諥RIABLES CLV15JUL87 $28 <20> 肙NSTANT #COL $19 <20> 肙NSTANT #ROW #COL #ROW * <20> 肙NSTANT B/SCR 諥RIABLE SHADOW $55 SHADOW ! <20> 諥RIABLE ASCR 1 ASCR ! <20> 諥RIABLE IMODE IMODE OFF <20> 諥RIABLE CHAR #CR CHAR ! <20> 諥RIABLE SCROLL SCROLL ON <20> 諥RIABLE SEND 1 SEND ! <20> 2VARIABLE CHARS <20> 2VARIABLE LINES <20> 2VARIABLE FBUF <20> 2VARIABLE RBUF (64 $288 <20>) (16 $53E <20>) >藺BEL SCRADR (64 $D800 <20>) (16 $800 <20>) >藺BEL COLADR $D1 (16 DROP $C8 <20>) <20> 肙NSTANT LINPTR $D3 (16 DROP $CA <20>) <20> 肙NSTANT CUROFS (64 $<24>020 <20>) (16 $FF19 <20>) <20> 肙NSTANT BORDER (64 $286 <20>) (16 $53B <20>) <20> 肙NSTANT PEN (64 $D021 <20>) (16 $FF15 <20>) <20> 肙NSTANT BKGRND \ 臘I SPECIAL CMOVES CAS16AUG06 ( THANKS TO COMMODORE.... ) 藺BEL INCPOINTER <20> LDA CLC #COL 1+ # ADC <20> STA 糜 ?[ <20> 1+ INC ]? <20> 2+ LDA CLC #COL # ADC <20> 2+ STA 糜 ?[ <20> 3 + INC ]? RTS <20> 肙DE B>SC ( BLKADR --) TYA SETUP JSR <20> 2+ STX SCRADR LDA <20> 3 + STA #ROW # LDX [[ #COL 1- # LDY [[ <20> )<29> LDA (CBM>SCR JSR <20> 2+ )<29> STA DEY 0< ?] INCPOINTER JSR DEX 0= ?] PEN LDA [[ COLADR ,<2C> STA COLADR $100 + ,<2C> STA COLADR $200 + ,<2C> STA COLADR $300 + ,<2C> STA INX 0= ?] SETPTRS JMP END-CODE \ 臘I SPECIAL CMOVES CONT. CAS16AUG06 ( ... FOR SCREEN FORMAT ) <20> 肙DE SC>B ( BLKADR --) TYA SETUP JSR <20> 2+ STX SCRADR LDA <20> 3 + STA #ROW # LDX [[ 0 # LDY [[ <20> 2+ )<29> LDA (SCR>CBM JSR <20> )<29> STA INY #COL # CPY 糜 ?] DEX 0<> ?[[ BL # LDA <20> )<29> STA INCPOINTER JSR ]]? SETPTRS JMP END-CODE <20> 肙DE >SCRMOVE ( FROM TO 8BQUAN --) 3 # LDA SETUP JSR DEY [[ <20> CPY 0= ?[ SETPTRS JMP ]? <20> 4 + )<29> LDA (CBM>SCR JSR <20> 2+ )<29> STA INY 0= ?] END-CODE \ 臘I CHANGED? CAS16AUG06 <20> 肙DE CHANGED? ( BLKADR -- F) TYA SETUP JSR <20> 2+ STX SCRADR LDA <20> 3 + STA #ROW # LDX [[ #COL 1- # LDY [[ <20> )<29> LDA (CBM>SCR JSR <20> 2+ )<29> CMP 0<> ?[ $破 # LDA 蠻SH<53> JMP ]? DEY 0< ?] INCPOINTER JSR DEX 0= ?] TXA 蠻SH<53> JMP END-CODE <20> : MEMTOP SP@ #COL 2* - ; \ 臘I C64-SPECIALS CLV2:JULL87 <20> 肙DE SCRSTART ( -- ADR) TXA PHA SCRADR LDA 蠻SH JMP END-CODE <20> 肙DE ROWADR ( -- ADR) CUROFS LDA #COL # CMP TXA 糜 ?[ #COL 1- # LDA ]? LINPTR ADC PHA LINPTR 1 + LDA 0 # ADC 蠻SH JMP END-CODE <20> 肙DE CURADR ( -- ADR) CLC CUROFS LDA LINPTR ADC PHA LINPTR 1 + LDA 0 # ADC 蠻SH JMP END-CODE (64 <20> 肙DE UNLINKED? \ -- F $<24>5 LDA #COL # CMP 妹 ?[ DEX ]? TXA 蠻SH<53> JMP END-CODE <20>) \ 臘I SCROLL? PUT/INSERT/DO CLV2:JULL87 <20> : BLANK.END? ( -- F) SCRSTART [ B/SCR #COL - ] 蘄TERAL + #COL -TRAILING NIP 0= SCROLL @ OR ; <20> : ATLAST? ( -- F) CURADR SCRSTART B/SCR + 1- = SCROLL @ 0= AND ; <20> : PUTCHAR ( -- F) CHAR C@ CON! FALSE ; <20> : INSERT ( -- F) ATLAST? ?DUP ?EXIT (64 UNLINKED? <20>) (16 TRUE <20>) ROWADR #COL + 1- C@ BL = NOT AND BLANK.END? NOT AND DUP ?EXIT $94 CON! ; <20> : DOCHAR ( -- F) ATLAST? ?DUP ?EXIT IMODE @ 善 INSERT ?DUP ?EXIT 匀盼 PUTCHAR ; \ 臘I CURSOR CONTROL CAS16AUG06 <20> : CURDOWN ( -- F) SCROLL @ 0= ROW #ROW 2- U> AND DUP ?EXIT $11 CON! ; <20> : CURRITE ( -- F) ATLAST? DUP ?EXIT $1<> CON! ; ' PUTCHAR <20> 罫IAS CURUP ' PUTCHAR <20> 罫IAS CURLEFT ' PUTCHAR <20> 罫IAS HOME ' PUTCHAR <20> 罫IAS DELETE <20> : >""END ( -- FF) SCRSTART B/SCR -TRAILING NIP B/SCR 1- MIN #COL /MOD SWAP AT FALSE ; <20> : +TAB ( -- F) 0 $A 0 南 DROP CURRITE DUP 善 膛林<E8869B> 匀盼 滔闲 ; <20> : -TAB ( -- F) 5 0 南 $9<> CON! 滔闲 FALSE ; \ 臘I CR, CLEAR/NEWLINE CAS16AUG06 <20> : <CR> ( -- F) ROW 0 AT UNLINK IMODE OFF CURDOWN ; <20> : CLRLINE ( -- FF) ROWADR #COL BL FILL FALSE ; <20> : CLRRIGHT ( -- FF) CURADR #COL COL - BL FILL FALSE ; <20> : KILLINE ( -- F) ROWADR DUP #COL + SWAP SCRSTART $3<>0 + DUP >R OVER - CMOVE R> #COL BL FILL FALSE ; <20> : NEWLINE ( -- F) BLANK.END? NOT ?DUP ?EXIT ROWADR DUP #COL + SCRSTART B/SCR + OVER - CMOVE> CLRLINE ; \ 臘I CHARACTER HANDLING CAS16AUG06 <20> : DCHAR ( -- F) CURRITE DUP ?EXIT $14 CON! ; <20> : @CHAR ( -- F) CHARS 2@ + 1+ LINES @ MEMTOP MIN U> DUP ?EXIT CURADR C@ CHARS 2@ + C! 1 CHARS 2+ +! ; <20> : COPYCHAR ( -- F) @CHAR ?DUP ?EXIT CURRITE ; <20> : CHAR>BUF ( -- F) @CHAR ?DUP ?EXIT DCHAR ; <20> : BUF>CHAR ( -- F) CHARS 2+ @ 0= ?DUP ?EXIT INSERT DUP ?EXIT -1 CHARS 2+ +! CHARS 2@ + C@ CURADR C! ; \ 臘I LINE HANDLING, IMODE CAS16AUG06 <20> : @LINE ( -- F) LINES 2@ + MEMTOP U> DUP ?EXIT ROWADR LINES 2@ + #COL CMOVE #COL LINES 2+ +! ; <20> : COPYLINE ( -- F) @LINE ?DUP ?EXIT CURDOWN ; <20> : LINE>BUF ( -- F) @LINE ?DUP ?EXIT KILLINE ; <20> : !LINE ( --) #COL NEGATE LINES 2+ +! LINES 2@ + ROWADR #COL CMOVE ; <20> : BUF>LINE ( -- F) LINES 2+ @ 0= ?DUP ?EXIT NEWLINE DUP ?EXIT !LINE ; <20> : SETIMD ( -- F) IMODE ON FALSE ; <20> : CLRIMD ( -- F) IMODE OFF FALSE ; \ 臘I THE STAMP CAS16AUG06 芆RTH DEFINITIONS : RVSON $12 CON! ; : RVSOFF $92 CON! ; 肙DE ***VOLKS葡以<E891A1>83*** 蜤XT HERE 2- ! END-CODE : 芆RTH-荅SELLSCHAFT [COMPILE] \\ ; IMMEDIATE 臘ITOR DEFINITIONS 肦EATE STAMP$ $12 ALLOT STAMP$ $12 ERASE <20> : .STAMP ( -- FF) STAMP$ 1+ COUNT SCRSTART #COL + OVER - SWAP >SCRMOVE FALSE ; : GETSTAMP ( --) INPUT PUSH KEYBOARD STAMP$ ON CR ." YOUR STAMP: " RVSON $10 SPACES ROW $<24> AT STAMP$ 2+ $10 EXPECT RVSOFF SPAN @ STAMP$ 1+ C! ; <20> : STAMP? ( --) STAMP$ C@ ?EXIT GETSTAMP ; \ 臘I THE SCREEN# CAS16AUG06 <20> : SAVETOP ( --) SCRSTART PAD #COL 2* CMOVE SCRSTART #COL 2* $<24>0 FILL ; <20> : RESTTOP ( --) PAD SCRSTART #COL 2* CMOVE ; <20> : UPDATED? ( SCR# -- N) BLOCK 2- @ ; <20> : SPECIAL ( --) CURON 屡巧<E5B1A1> PAUSE KEY? 瘴陨<E798B4> CUROFF ; <20> : DRV覥R ( --DRV SCR') SCR @ OFFSET @ + BLK/DRV U/MOD SWAP ; <20> : .SCR# ( -- FF) AT? SAVETOP RVSON 0 0 AT DRV覥R ." 覥R # " . ." 腞V " . SCR @ UPDATED? 0= 善 ." NOT " 匀盼 ." UPDATED" 1 1 AT [ ' ***VOLKS葡以<E891A1>83*** >NAME ] 蘄TERAL COUNT TYPE 2 SPACES [ ' 芆RTH-荅SELLSCHAFT >NAME ] 蘄TERAL COUNT $1<> AND TYPE RVSOFF AT SPECIAL RESTTOP FALSE ; \ 臘I EXITS CAS16AUG06 <20> : AT?>R# ( --) AT? SWAP #COL 1+ * + R# ! ; <20> : R#>AT ( --) R# @ DUP #COL 1+ MOD #COL = - B/BLK 1- MIN #COL 1+ /MOD SWAP AT ; <20> : CANCEL ( -- N) UNLINK %0001 AT?>R# ; <20> : EUPDATE ( -- N) CANCEL SCR @ BLOCK CHANGED? 善 .STAMP DROP SCR @ BLOCK SC>B UPDATE %0010 OR 匀盼 ; <20> : ESAVE ( -- N) EUPDATE %0100 OR ; <20> : ELOAD ( -- N) ESAVE %1000 OR ; \ LEAF THRU 臘I CLV01AUG87 <20> : ELIST ( -- FF) SCR @ BLOCK B>SC IMODE OFF UNLINK R#>AT FALSE ; <20> : NEXT ( -- FF) EUPDATE DROP 1 SCR +! ELIST ; <20> : BACK ( -- FF) EUPDATE DROP -1 SCR +! ELIST ; <20> : >SHADOW ( -- FF) EUPDATE DROP SHADOW @ DUP DRV覥R NIP U> NOT 善 NEGATE 匀盼 SCR +! ELIST ; <20> : ALTER ( -- FF) EUPDATE DROP ASCR @ SCR @ ASCR ! SCR ! ELIST ; \ 臘I DIGITS 2OCT87RE 芆RTH DEFINITIONS : DIGDECODE ( ADR CNT1 KEY -- ADR CNT2) #BS CASE? 善 DUP 善 DEL 1- 匀盼 EXIT 匀盼 #CR CASE? 善 DUP SPAN ! EXIT 匀盼 CAPITAL DUP DIGIT? 善 DROP >R 2DUP + R@ SWAP C! R> EMIT 1+ EXIT 匀盼 DROP ; 蒒PUT: DIGITS C64KEY C64KEY? DIGDECODE C64EXPECT ; 臘ITOR DEFINITIONS <20> : REPLACE ( -- F) FBUF @ 0 南 #BS CON! 滔闲 FALSE RBUF @ 0 南 INSERT OR 滔闲 DUP ?EXIT RBUF 2@ CURADR SWAP >SCRMOVE EUPDATE DROP ; \ 臘I >BUFS CAS16AUG06 <20> : .BUF ( ADR COUNT --) TYPE 罶CII < EMIT #COL 1- COL - SPACES ; <20> : >BUFS ( --) INPUT PUSH UNLINK SAVETOP AT? RVSON 1 0 AT ." REPLACE WITH: " AT? RBUF 2@ .BUF 0 0 AT ." > SEARCH: " AT? FBUF 2@ .BUF 0 2 2DUP AT SEND @ 3 U.R 2DUP AT HERE 1+ 3 DIGITS EXPECT SPAN @ ?DUP 善 HERE UNDER C! NUMBER DROP SEND ! 匀盼 AT SEND @ 3 U.R KEYBOARD 2DUP AT FBUF 2+ @ #COL 2- COL - EXPECT SPAN @ ?DUP 善 FBUF ! 匀盼 AT FBUF 2@ .BUF 2DUP AT RBUF 2+ @ #COL 2- COL - EXPECT SPAN @ ?DUP 善 RBUF ! 匀盼 AT RBUF 2@ .BUF RVSOFF RESTTOP AT ; \ 臘I ESEARCH CLV06AUG87 <20> : (F ELIST DROP FBUF 2@ R# @ SCR @ BLOCK + B/BLK R# @ - (SEARCH 0= 善 0 盘优 SCR @ BLOCK - 匀盼 R# ! R#>AT ; <20> : ESEARCH ( -- F) EUPDATE DROP >BUFS 屡巧<E5B1A1> 屡巧<E5B1A1> (F R# @ 兹商<E585B9> KEY DUP 罶CII R = 善 REPLACE ?DUP 善 NIP EXIT 匀盼 匀盼 3 = ?DUP ?EXIT 遗信猎 DRV覥R NIP SEND @ - STOP? 0= AND ?DUP 兹商<E585B9> 0< 善 NEXT DROP 盘优 BACK DROP 匀盼 遗信猎 TRUE ; \ 臘I KEYTABLE CAS16AUG06 <20> : 肨RL ( -- 8B) [COMPILE] 罶CII $40 - ; IMMEDIATE <20> 肦EATE KEYTABLE 肨RL N C, 肨RL B C, 肨RL W C, 肨RL A C, $1<> C, (64 肨RL ^ <20>) (16 $92 <20>) C, $0<> C, $8<> C, 肨RL C C, 肨RL X C, 肨RL F C, 肨RL L C, $85 C, $89 C, $86 C, $8<> C, $9<> C, $1<> C, (64 00 <20>) (16 $1E <20>) C, $8<> C, $87 C, $88 C, $8<> C, $1<> C, $11 C, $9<> C, $91 C, $13 C, $93 C, $94 C, $14 C, 肨RL D C, 肨RL E C, 肨RL R C, 肨RL I C, 肨RL O C, $FF C, \ 臘I ACTIONTABLE CAS16AUG06 <20> 肦EATE ACTIONTABLE ] NEXT BACK >SHADOW ALTER ESEARCH COPYLINE <CR> <CR> CANCEL EUPDATE ESAVE ELOAD NEWLINE KILLINE BUF>LINE LINE>BUF .STAMP .SCR# COPYCHAR CHAR>BUF BUF>CHAR +TAB -TAB CURRITE CURDOWN CURLEFT CURUP HOME >""END INSERT DELETE DCHAR CLRLINE CLRRIGHT SETIMD CLRIMD DOCHAR [ <20> 肙DE FINDKEY ( KEY N -- ADR) 2 # LDA SETUP JSR <20> LDY DEY [[ INY KEYTABLE ,<2C> LDA $破 # CMP 0<> ?[ <20> 2+ CMP ]? 0= ?] TYA .<2E> ASL TAY ACTIONTABLE ,<2C> LDA PHA ACTIONTABLE 1+ ,<2C> LDA 蠻SH JMP END-CODE \ 臘I SHOW ERRORS CAS16AUG06 ' 0 <20> 罫IAS DARK ' 1 <20> 罫IAS LIGHT <20> : HALF ( N --) BORDER C! PAUSE $80 0 南 滔闲 ; <20> : BLINK ( --) BORDER PUSH DARK HALF LIGHT HALF DARK HALF LIGHT HALF ; <20> : ?BLINK ( F1 -- F2) DUP TRUE = 善 BLINK 0= 匀盼 ; \ 臘I INIT CAS16AUG06 ' 蘄TERAL <20> 罫IAS 蘄 IMMEDIATE 諥RIABLE (PAD 0 (PAD ! <20> : CLEARBUFFER ( --) PAD DUP (PAD ! #COL 2* + DUP FBUF 2+ ! #COL + DUP RBUF 2+ ! #COL + DUP CHARS ! #COL 2* + LINES ! CHARS 2+ OFF LINES 2+ OFF [ ' ***VOLKS葡以<E891A1>83*** >NAME ] 蘄 COUNT >R FBUF 2+ @ R@ CMOVE R> FBUF ! [ ' 芆RTH-荅SELLSCHAFT >NAME ] 蘄 COUNT $1<> AND >R RBUF 2+ @ R@ CMOVE R> RBUF ! ; <20> : INITPTR ( --) PAD (PAD @ = ?EXIT CLEARBUFFER ; \ 臘I SHOW CAS16AUG06 ' NAME >BODY 6 + <20> 肙NSTANT 'NAME (16 \ C16 IS USING STANDARD <20>) (64 <20> 肙DE CURON $<24>3 LDY $<24>1 )<29> LDA $门 STA $80 # EOR $<24>1 )<29> STA XY蜤XT JMP END-CODE <20> 肙DE CUROFF $门 LDA $<24>3 LDY $<24>1 )<29> STA XY蜤XT JMP END-CODE <20>) \ 臘I SHOW CAS16AUG06 <20> : SHOWOFF ['] EXIT 'NAME ! RVSOFF CUROFF ; <20> : SHOW ( --) BLK @ ?DUP 0= 善 SHOWOFF EXIT 匀盼 >IN @ 1- R# ! RVSOFF CUROFF RVSON SCR @ OVER - 善 SCR ! ELIST 1 0 AT .STATUS 匀盼 R#>AT CURON DROP ; 芆RTH DEFINITIONS : (LOAD ( BLK POS --) >IN PUSH >IN ! ?DUP 0= ?EXIT BLK PUSH BLK ! .STATUS INTERPRET ; : SHOWLOAD ( BLK POS -) SCR PUSH SCR OFF R# PUSH ['] SHOW 'NAME ! (LOAD SHOWOFF ; 臘ITOR DEFINITIONS \ 臘I EDIT CLV01AUG87 <20> : SETCOL ( 0 / 4 / 8 --) INK-POT + DUP C@ BORDER C! DUP 1+ C@ BKGRND C! 2+ C@ PEN C! ; <20> : (EDIT ( -- N) 4 SETCOL $93 CON! ELIST DROP SCROLL OFF 屡巧<E5B1A1> KEY DUP CHAR C! 0 FINDKEY EXECUTE ?BLINK ?DUP 瘴陨<E798B4> 0 0 AT KILLINE DROP SCROLL ON 0 SETCOL (16 0 $7EA C! <20>) \ 罰PEND-蚈DE ; 芆RTH DEFINITIONS : EDIT ( SCR# -) (16 C64FKEYS <20>) SCR ! STAMP? INITPTR (EDIT $18 0 AT DRV覥R ." 覥R " . ." 腞V " . DUP 2 AND 0= 善 ." NOT " 匀盼 ." CHANGED" DUP 4 AND 善 SAVE-BUFFERS 匀盼 DUP 6 AND 6 = 善 ." , SAVED" 匀盼 8 AND 善 ." , LOADING" CR SCR @ R# @ SHOWLOAD 匀盼 ; \ 臘ITOR 芆RTH83 CLV2:JULL87 : L ( SCR -) R# OFF EDIT ; : R ( -) SCR @ EDIT ; : +L ( N -) SCR @ + L ; : V ( -) ( TEXT) ' >NAME ?DUP 善 4 - @ 匀盼 ; : VIEW ( -) ( TEXT) V ?DUP 善 L 盘优 ." FROM KEYBOARD" 匀盼 ; 臘ITOR DEFINITIONS (16 <20> : CURADDR \ --罝DR LINPTR @ CUROFS C@ + ; <20>) : CURLIN ( --CUR罝DR LIN蘀N) \ & 畔蘊 (64 LINPTR @ $<24>5 C@ -TRAILING DUP $D3 C! <20>) (16 $1B CON! ASCII J CON! CURADDR $1B CON! ASCII K CON! $1D CON! CURADDR OVER - <20>) ; \ 臘IDECODE CCAS16AUG06 : EDIDECODE ( ADR CNT1 KEY -- ADR CNT2) $8<> CASE? 善 IMODE OFF CR EXIT 匀盼 #CR CASE? 善 IMODE OFF CURLIN DUP SPAN @ U> 善 DROP SPAN @ 匀盼 BOUNDS ?南 2DUP + <20> C@ SCR>CBM SWAP C! 1+ 滔闲 DUP SPAN ! EXIT 匀盼 DUP CHAR C! $12 FINDKEY EXECUTE ?BLINK DROP ; : EDIEXPECT ( ADDR LEN1 -- ) INITPTR SPAN ! 0 屡巧<E5B1A1> DUP SPAN @ U< 兹商<E585B9> KEY DECODE 遗信猎 2DROP SPACE ; 蒒PUT: EDIBOARD C64KEY C64KEY? EDIDECODE EDIEXPECT ; EDIBOARD \ .STATUS CAS16AUG06 ' NOOP 蒘 .STATUS : .BLK ( -) BLK @ ?DUP 善 ." 翷K " U. ?CR 匀盼 ; ' .BLK 蒘 .STATUS \ TRACER: LOADSCREEN CAS16AUG06 螻LYFORTH \NEEDS 肙DE -$2<> +LOAD \ 訰ANS 罶SEMBLER \NEEDS 設OLS 諳CABULARY 設OLS 設OLS ALSO DEFINITIONS 1 6 +THRU \ 訰ACER 7 8 +THRU \ 設OLS FOR DECOMPILING 螻LYFORTH \\ 訦IS NICE 芆RTH 訰ACER HAS BEEN DEVELOPED BY <20>. 蠩NNEMANN AND CO FOR 罷ARI 釉. 锰 諳GT HAS PORTED IT BACK TO THE VOLKS芆RTH 6502 <20>-16 AND <20>-64 \ TRACER: WCMP VARIABLES CLV04AUG87 罶SEMBLER ALSO DEFINITIONS : WCMP ( ADR1 ADR2--) \ 罶SEMBLER-虯CRO OVER LDA DUP CMP SWAP \ COMPARES WORD 1+ LDA 1+ SBC ; 螻LY 芆RTH ALSO 設OLS ALSO DEFINITIONS <20> 諥RIABLE (<28> <20> 諥RIABLE <IP <20> 諥RIABLE IP> <20> 諥RIABLE NEST? <20> 諥RIABLE TRAP? <20> 諥RIABLE LAST' <20> 諥RIABLE #SPACES \ TRACER:CPUSH ONELINE CAS16AUG06 <20> 肦EATE CPULL 0 ] RP@ COUNT 2DUP + RP! R> SWAP CMOVE ; : CPUSH ( ADDR LEN -) R> -ROT OVER >R RP@ OVER 1+ - DUP RP! PLACE CPULL >R >R ; <20> : ONELINE &82 ALLOT KEYBOARD DISPLAY .STATUS SPACE QUERY INTERPRET -&82 ALLOT RDROP ( DELETE QUIT FROM TNEXT ) ; : RANGE ( ADR--) \ GETS <IP IP> IP> OFF DUP <IP ! 屡巧<E5B1A1> 1+ DUP @ [ 芆RTH ] ['] UNNEST = 瘴陨<E798B4> 3+ IP> ! ; \ TRACER:STEP TNEXT CLV04AUG87 <20> 肙DE STEP $FF # LDA TRAP? STA TRAP? 1+ STA 倚 <20>) LDA 尚 STA 倚 )<29> LDA 尚 1+ STA 倚 2INC (<28> LDA <20> STA (<28> 1+ LDA <20> 1+ STA 藺BEL <20>1- <20> 1- JMP END-CODE <20> 肦EATE: NEXTSTEP STEP ; 藺BEL TNEXT 尚 2INC TRAP? LDA <20>1- BEQ NEST? LDA 0= \ LOW(!)耏TE TEST ?[ 尚 <IP WCMP <20>1- BCC 尚 IP> WCMP <20>1- BCS ][ NEST? STX \ LOW(!)耏TE CLEAR ]? TRAP? DUP STX 1+ STX \ DISABLE TRACER <20> LDA (<28> STA <20> 1+ LDA (<28> 1+ STA \ TRACER:..TNEXT CLV12OCT87 ;C: NEST? @ 善 NEST? OFF R> IP> PUSH <IP PUSH DUP 2- RANGE #SPACES PUSH 1 #SPACES +! >R 匀盼 R@ NEXTSTEP >R INPUT PUSH OUTPUT PUSH 2- DUP LAST' ! CR #SPACES @ SPACES DUP 4 U.R @ DUP 5 U.R SPACE >NAME .NAME $10 COL - 0 MAX SPACES .S STATE PUSH BLK PUSH >IN PUSH [ ' 'QUIT >BODY ] 蘄TERAL PUSH [ ' >INTERPRET >BODY ] 蘄TERAL PUSH #TIB PUSH TIB #TIB @ CPUSH R0 PUSH RP@ R0 ! ['] ONELINE 蒘 'QUIT QUIT ; \ TRACER:DO-TRACE TRACEABLE CAS16AUG06 <20> 肙DE DO-TRACE \ INSTALLS 晕咆<E69995> TNEXT 0 $100 M/MOD # LDA 蜤XT $C + STA # LDA 蜤XT $B + STA $4<> # LDA 蜤XT $A + STA 蜤XT JMP END-CODE <20> : TRACEABLE ( CFA--<尚 ) RECURSIVE DUP @ ['] : @ CASE? 善 >BODY EXIT 匀盼 ['] KEY @ CASE? 善 >BODY C@ 蒒PUT @ + @ TRACEABLE EXIT 匀盼 ['] TYPE @ CASE? 善 >BODY C@ 蟄TPUT @ + @ TRACEABLE EXIT 匀盼 ['] R/W @ CASE? 善 >BODY @ TRACEABLE EXIT 匀盼 @ [ ' 芆RTH @ @ ] 蘄TERAL = 善 @ 3 + EXIT 匀盼 \ FOR DEFINING WORDS WITH 南庞> >NAME .NAME ." CAN'T BE 呐抡荊ED" QUIT ; \ TRACER:誗ER-譕RDS CAS16AUG06 : NEST \ TRACE INTO CURRENT WORD LAST' @ @ TRACEABLE DROP NEST? ON ; : UNNEST \ PROCEEDS AT CALLING WORD <IP ON IP> OFF ; \ CLEARS TRAP RANGE : ENDLOOP LAST' @ 4 + <IP ! ; \ NO TRACE OF NEXT WORD TO SKIP 滔闲.. ' END-TRACE 罫IAS UNBUG \ CONT. EXECUT. : (DEBUG ( CFA-- ) TRACEABLE RANGE NEST? OFF TRAP? ON #SPACES OFF 設OLS DO-TRACE ; 芆RTH DEFINITIONS : DEBUG ' (DEBUG ; \ WORD FOLLOWS : TRACE' \ WORD FOLLOWS ' DUP (DEBUG EXECUTE END-TRACE ; \ TOOLS FOR DECOMPILING, CLV12OCT87 ( INTERACTIVE USE ) 螻LYFORTH 設OLS ALSO DEFINITIONS <20> : ?: ?CR DUP 4 U.R ." :" ; <20> : @? DUP @ 6 U.R ; <20> : C? DUP C@ 3 .R ; <20> : BL $24 COL - 0 MAX SPACES ; : S ( ADR - ADR+) ( PRINT LITERAL STRING) ?: SPACE C? 4 SPACES DUP COUNT TYPE DUP C@ + 1+ BL ; ( COUNT + RE) : N ( ADR - ADR+2) ( PRINT NAME OF NEXT WORD BY ITS CFA) ?: @? 2 SPACES DUP @ >NAME .NAME 2+ BL ; : K ( ADR - ADR+2) ( PRINT LITERAL VALUE) ?: @? 2+ BL ; ( TOOLS FOR DECOMPILING, INTERACTIVE ) : D ( ADR N - ADR+N) ( DUMP N BYTES) 2DUP SWAP ?: 3 SPACES SWAP 0 南 C? 1+ 滔闲 4 SPACES -ROT TYPE BL ; : C ( ADR - ADR+1) ( PRINT BYTE AS UNSIGNED VALUE) 1 D ; : B ( ADR - ADR+2) ( PRINT BRANCH TARGET LOCATION ) ?: @? DUP @ OVER + 6 U.R 2+ BL ; ( USED FOR : ) ( 蜛ME 覶RING 蘄TERAL 腢MP 肔IT 翿ANCH ) ( - - - - - - ) ( DEBUGGING UTILITIES BP 19 02 85 ) : UNRAVEL \ UNRAVEL PERFORM (ABORT" RDROP RDROP RDROP CR ." TRACE DUMP IS " CR 屡巧<E5B1A1> RP@ R0 @ - 兹商<E585B9> R> DUP 8 U.R SPACE 2- @ >NAME .NAME CR 遗信猎 (ERROR ; ' UNRAVEL ERRORHANDLER ! \ 蚒LTITASKER 滦 13.9.84 ) 螻LYFORTH \NEEDS MULTITASK 1 +LOAD SAVE 2 4 +THRU \ 訟SKER \ 5 +LOAD \ 腅MOTASK \ 蚒LTITASKER 滦 13.9.84 ) \NEEDS 肙DE -$36 +LOAD \ TRANSIENT 罶S 肙DE STOP 有 2DEC 尚 LDA 有 <20>) STA 尚 1+ LDA 有 )<29> STA 有 2DEC 倚 LDA 有 <20>) STA 倚 1+ LDA 有 )<29> STA 6 # LDY 有 LDA 招 )<29> STA INY 有 1+ LDA 招 )<29> STA 1 # LDY TYA CLC 招 ADC <20> STA TXA 招 1+ ADC <20> 1+ STA <20> 1- JMP END-CODE <20> 肦EATE TASKPAUSE 罶SEMBLER $2<> # LDA 招 <20>) STA ' STOP @ JMP END-CODE : SINGLETASK [ ' PAUSE @ ] 蘄TERAL ['] PAUSE ! ; : MULTITASK TASKPAUSE ['] PAUSE ! ; \ PASS ACTIVATE KS 8 MAY 84 ) : PASS ( N0 .. NR-1 訟DR R -- ) 屡巧<E5B1A1> [ ROT ( 訰ICK ! ) ] SWAP $2<> OVER C! \ AWAKE 訟SK R> -ROT \ 尚 R ADDR 8 + >R \ S0 OF 訟SK R@ 2+ @ SWAP \ 尚 R0 R 2+ 2* \ BYTES ON 訟SKSTACK \ INCL. R0 & 尚 R@ @ OVER - \ NEW 有 DUP R> 2- ! \ INTO SSAVE SWAP BOUNDS ?南 <20> ! 2 +滔闲 ; RESTRICT : ACTIVATE ( 訟DR --) 0 [ -ROT ( 訰ICK ! ) ] 遗信猎 ; -2 ALLOT RESTRICT : SLEEP ( 訟DR --) $4<> SWAP C! ; \ 释<>-螾CODE : WAKE ( 訟DR --) $2<> SWAP C! ; \ 律<>-螾CODE \ BUILDING A 訟SK 滦 13.9.84 ) <20> : TASKERROR ( STRING -) STANDARDI/O SINGLETASK ." 訟SK ERROR : " COUNT TYPE MULTITASK STOP ; : 訟SK ( RLEN SLEN -- ) ALLOT \ 覶ACK HERE $破 AND $婆 = 善 1 ALLOT 匀盼 \ 6502-ALIGN UP@ HERE $100 CMOVE \ INIT USER AREA HERE $4<> C, \ 释<> OPCODE \ TO SLEEP 訟SK UP@ 1+ @ , DUP UP@ 1+ ! \ LINK 訟SK 3 ALLOT \ ALLOT 视<> WAKE DUP 6 - DUP , , \ SSAVE AND S0 2DUP + , \ HERE + RLEN = R0 UNDER + HERE - 2+ ALLOT ['] TASKERROR OVER [ ' ERRORHANDLER >BODY C@ ] 蘄TERAL + ! 肙NSTANT ; \ MORE 訟SKS KS/BP 26APR85RE) : RENDEZVOUS ( SEMAPHORADR -) DUP UNLOCK PAUSE LOCK ; <20> : STATESMART STATE @ 善 [COMPILE] 蘄TERAL 匀盼 ; : 'S ( 訟DR - ADR.OF.TASKUSERVAR) ' >BODY C@ + STATESMART ; IMMEDIATE \ 覻NTAX: 2 腅MOTASK 'S BASE ! \ MAKES 腅MOTASK WORKING BINARY : TASKS ( -) ." 土晌 " CR UP@ DUP 1+ @ 屡巧<E5B1A1> 2DUP - 兹商<E585B9> DUP [ ' R0 >BODY C@ ] 蘄TERAL + @ 6 + NAME> >NAME .NAME DUP C@ $4<> = 善 ." SLEEPING" 匀盼 CR 1+ @ 遗信猎 2DROP ; \ 訟SKDEMO CLV12AUG87 : TASKMARK ; \NEEDS CBM>SCR : CBM>SCR ; : SCRSTART ( -- ADR) (64 $288 <20>) (16 $53E <20>) C@ $100 * ; 諥RIABLE COUNTER COUNTER OFF $100 $100 訟SK 翧CKGROUND : >COUNT ( N -) 翧CKGROUND 1 PASS COUNTER ! 屡巧<E5B1A1> COUNTER @ -1 COUNTER +! ?DUP 兹商<E585B9> PAUSE 0 <# #S #> 0 南 PAUSE DUP <20> + C@ CBM>SCR SCRSTART <20> + C! 滔闲 DROP 遗信猎 屡巧<E5B1A1> STOP 遗信猎 ; \ STOP'S FOREVER : WAIT 翧CKGROUND SLEEP ; : GO 翧CKGROUND WAKE ; MULTITASK $100 >COUNT PAGE \ PRINTER LOADSCREEN 27JUL85RE) 螻LYFORTH HEX 諳CABULARY 蠷INT 蠷INT DEFINITIONS ALSO 肦EATE 蠷TER 2 ALLOT ( 覧MAPHOR) 蠷TER OFF : ) ; IMMEDIATE : (U ; IMMEDIATE \ FOR USER-PORT : (S [COMPILE] ( ; IMMEDIATE \ : (S ; IMMEDIATE \ FOR SERIAL BUS \ : (U [COMPILE] ( ; IMMEDIATE (S 1 +LOAD ) 2 $<24> +THRU 螻LYFORTH CLEAR \ 耈FFER FOR THE UGLY 覧R耈S 28JUL85RE) $100 <20> 肙NSTANT BUFLEN <20> 諥RIABLE 蠷BUF BUFLEN ALLOT 蠷BUF OFF <20> : >BUF ( CHAR --) 蠷BUF COUNT + C! 1 蠷BUF +! ; <20> : FULL? ( -- F) 蠷BUF C@ BUFLEN = ; <20> : .BUF ( --) 蠷BUF COUNT -TRAILING 4 0 BUSOUT BUSTYPE BUSOFF 蠷BUF OFF ; : P! ( CHAR --) PAUSE >R R@ $<24> ( 芆RMFEED ) = 善 R> >BUF .BUF EXIT 匀盼 R@ $<24> ( 蘄NEFEED ) = R@ $<24> ( 肁R褽TURN ) = OR FULL? OR 善 .BUF 匀盼 R> >BUF ; \ P! CTRL: 庞<> ESC: 28JUL85RE) (U : P! \ CHAR -- $哪01 C! $哪00 DUP C@ 2DUP 4 OR SWAP C! $坡 AND SWAP C! 屡巧<E5B1A1> PAUSE $哪0<E593AA> C@ $10 AND 瘴陨<E798B4> ; ) <20> : CTRL: ( 8B --) 肦EATE C, DOES> ( --) C@ P! ; 7 CTRL: 屡<> <20> $7<> CTRL: 呐<> <20> $D CTRL: 靡旁 <20> $1<> CTRL: 庞<> $A CTRL: 唐 $0<> CTRL: 破 <20> : ESC: ( 8B --) 肦EATE C, DOES> ( --) 庞<> C@ P! ; $30 ESC: 1/8" $31 ESC: 1/10" $32 ESC: 1/6" $54 ESC: SUOFF $4<> ESC: +JUMP $4<> ESC: -JUMP \ PRINTER CONTROLS 28JUL85RE) <20> : 庞<>2 庞<> P! P! ; : GORLITZ ( 8B --) 绿 庞<>2 ; <20> : 庞<>"!" ( 8B --) $21 庞<>2 ; <20> 諥RIABLE 蚈DUS 蚈DUS OFF <20> : ON: ( 8B --) 肦EATE C, DOES> ( --) C@ 蚈DUS C@ OR DUP 蚈DUS C! 庞<>"!" ; <20> : OFF: ( 8B --) 肦EATE $破 XOR C, DOES> ( --) C@ 蚈DUS C@ AND DUP 蚈DUS C! 庞<>"!" ; $10 ON: +DARK $10 OFF: -DARK $20 ON: +WIDE $20 OFF: -WIDE $40 ON: +CURSIV $40 OFF: -CURSIV $80 ON: +UNDER $80 OFF: -UNDER <20> 1 ON: (12CPI <20> 4 ON: (17CPI 5 OFF: 10CPI \ PRINTER CONTROLS 28JUL85RE) : 12CPI 10CPI (12CPI ; : 17CPI 10CPI (17CPI ; : SUPER 0 $53 庞<>2 ; : SUB 1 $53 庞<>2 ; : LINES ( #LINES --) $43 庞<>2 ; : "LONG ( INCHES --) 0 LINES P! ; : AMERICAN 0 $52 庞<>2 ; : GERMAN 2 $52 庞<>2 ; : PRINIT (S 罶CII X GORLITZ 罶CII B GORLITZ 罶CII E GORLITZ 罶CII T GORLITZ 罶CII Z GORLITZ 罶CII L GORLITZ ) (U $破 $哪03 C! $哪02 DUP C@ 4 OR SWAP C! ) ; <20> 諥RIABLE >ASCII >ASCII ON : NORMAL >ASCII ON 蚈DUS OFF 10CPI AMERICAN SUOFF 1/6" $C "LONG 靡旁 ; \ 臥SON PRINTER INTERFACE 08SEP85RE) <20> : C>A ( 8B0 -- 8B1) >ASCII @ 善 DUP $41 $5<> UWITHIN 善 $20 OR EXIT 匀盼 DUP $<24>1 $穆 UWITHIN 善 $7<> AND EXIT 匀盼 DUP $拿 $<24>0 UWITHIN 善 $<24>0 XOR 匀盼 匀盼 ; <20> 諥RIABLE PCOL PCOL OFF <20> 諥RIABLE PROW PROW OFF <20> : PEMIT C>A P! 1 PCOL +! ; <20> : PCR 靡旁 唐 1 PROW +! 0 PCOL ! ; <20> : PDEL 呐<> -1 PCOL +! ; <20> : PPAGE 破 0 PROW ! 0 PCOL ! ; <20> : PAT ( ZEILE SPALTE -- ) OVER PROW @ < 善 PPAGE 匀盼 SWAP PROW @ - 0 ?南 PCR 滔闲 DUP PCOL < 善 靡旁 PCOL OFF 匀盼 PCOL @ - SPACES ; <20> : PAT? PROW @ PCOL @ ; <20> : PTYPE ( ADR COUNT --) DUP PCOL +! BOUNDS ?南 <20> C@ C>A P! 滔闲 ; \ PRINT PL 02OCT87RE <20> 蟄TPUT: >PRINTER PEMIT PCR PTYPE PDEL PPAGE PAT PAT? ; : BEMIT DUP C64EMIT PEMIT ; : BCR C64CR PCR ; : BTYPE 2DUP C64TYPE PTYPE ; : BDEL C64DEL PDEL ; : BPAGE C64PAGE PPAGE ; : BAT 2DUP C64AT PAT ; <20> 蟄TPUT: >BOTH BEMIT BCR BTYPE BDEL BPAGE BAT PAT? ; 芆RTH DEFINITIONS : 蠷INTER NORMAL (U PRINIT ) >PRINTER ; : 翺TH NORMAL >BOTH ; \ 2SCR'S NSCR'S THRU KS 28JUL85RE) 芆RTH DEFINITIONS <20> : 2SCR'S ( BLK1 BLK2 --) CR 唐 17CPI +WIDE +DARK $15 SPACES OVER 3 .R $13 SPACES DUP 3 .R -DARK -WIDE CR B/BLK 0 南 CR <20> C/L / $15 .R 4 SPACES OVER BLOCK <20> + <20>/<2F> 1- TYPE 5 SPACES DUP BLOCK <20> + <20>/<2F> 1- -TRAILING TYPE <20>/<2F> +滔闲 2DROP CR ; <20> : NSCR'S ( BLK1 N -- BLK2) 2DUP BOUNDS 南 <20> OVER <20> + 2SCR'S 滔闲 + ; : PTHRU ( FROM TO --) 蠷TER LOCK 蟄TPUT PUSH 蠷INTER 1/8" 1+ OVER - 1+ -2 AND 6 /MOD ?DUP 善 SWAP >R 0 南 3 NSCR'S 2+ 1+ PAGE 滔闲 R> 匀盼 ?DUP 善 1+ 2/ NSCR'S PAGE 匀盼 DROP 蠷TER UNLOCK ; \ 蠷INTING WITH SHADOWS 28JUL85RE) 芆RTH DEFINITIONS <20> : 2SCR'S ( BLK1 BLK2 --) CR 唐 17CPI +WIDE +DARK $15 SPACES DUP 3 .R -DARK -WIDE CR B/BLK 0 南 CR <20> C/L / $15 .R 4 SPACES DUP BLOCK <20> + <20>/<2F> 1- TYPE 5 SPACES OVER BLOCK <20> + <20>/<2F> 1- -TRAILING TYPE <20>/<2F> +滔闲 2DROP CR ; <20> : NSCR'S ( BLK1 N -- BLK2) 0 南 DUP [ 臘ITOR ] SHADOW @ 2DUP U> 善 NEGATE 匀盼 + OVER 2SCR'S 1+ 滔闲 ; : DOKUMENT ( FROM TO --) 蠷TER LOCK 蟄TPUT PUSH 蠷INTER 1/8" 1+ OVER - 3 /MOD ?DUP 善 SWAP >R 0 南 3 NSCR'S PAGE 滔闲 R> 匀盼 ?DUP 善 NSCR'S PAGE 匀盼 DROP 蠷TER UNLOCK ; \ 2SCR'S NSCR'S THRU KS 28JUL85RE) 芆RTH DEFINITIONS $40 <20> 肙NSTANT <20>/<2F> <20> : 2SCR'S ( BLK1 BLK2 --) PCR 唐 唐 10CPI +DARK $12 SPACES OVER 3 .R $20 SPACES DUP 3 .R CR 17CPI -DARK $10 <20>/<2F> * 0 南 CR OVER BLOCK <20> + <20>/<2F> 6 SPACES TYPE 2 SPACES DUP BLOCK <20> + <20>/<2F> -TRAILING TYPE <20>/<2F> +滔闲 2DROP CR ; <20> : NSCR'S ( BLK1 N -- BLK2) UNDER 0 南 2DUP DUP ROT + 2SCR'S 1+ 滔闲 NIP ; : 64PTHRU ( FROM TO --) 蠷TER LOCK >ASCII PUSH >ASCII OFF 蟄TPUT PUSH 蠷INTER 1/6" 1+ OVER - 1+ -2 AND 6 /MOD ?DUP 善 SWAP >R 0 南 3 NSCR'S 2+ 1+ PAGE 滔闲 R> 匀盼 ?DUP 善 1+ 2/ NSCR'S PAGE 匀盼 DROP 蠷TER UNLOCK ; \ PFINDEX 02OCT87RE 螻LYFORTH 蠷INT ALSO : PFINDEX ( FROM TO --) 蠷TER LOCK 蠷INTER &12 "LONG +JUMP FINDEX CR PAGE -JUMP 蠷TER UNLOCK DISPLAY ; \ 蠷INTSPOOL 02OCT87RE \NEEDS TASKS .( 訟SKER?!) \\ $100 $100 訟SK 蠷INTSPOOL : SPOOL ( FROM TO --) 蠷INTSPOOL 2 PASS PTHRU STOP ; : ENDSPOOL ( --) 蠷INTSPOOL ACTIVATE STOP ; \ 蠷INTER 襉UTINE <20>1526 CAS16AUG06 ( NOT USEABLE FOR 蠷INTSPOOL!! RE) 螻LYFORTH 諳CABULARY 蠷INT 蠷INT ALSO 腅FINITIONS : PRINIT 4 7 BUSOUT ; \NEEDS 破 : 破 NOOP ; : 靡旁 $D BUS! ; : PSPACES ( N -) 0 ?南 绿 BUS! 滔闲 ; 1 2 +THRU 螻LY 芆RTH ALSO 腅FINITIONS ( SAVE ) \ 蠷INTER INTERFACE 1526 02OCT87RE 諥RIABLE 蠧OL 諥RIABLE 蠷OW <20> : PEMIT BUS! 1 蠧OL +! ; <20> : PCR 靡旁 1 蠷OW +! 0 蠧OL ! ; <20> : PDEL ; <20> : PPAGE 破 0 蠷OW ! 0 蠧OL ! ; <20> : PAT ( ZEILE SPALTE -- ) OVER 蠷OW @ < 善 PPAGE 匀盼 0 ROT 蠷OW @ - BOUNDS ?南 PCR 滔闲 DUP 蠧OL @ - PSPACES 蠧OL ! ; <20> : PAT? 蠷OW @ 蠧OL @ ; <20> : PTYPE ( ADR COUNT -) DUP 蠧OL +! BOUNDS ?南 <20> C@ BUS! 滔闲 ; <20> 蟄TPUT: >PRINTER PEMIT PCR PTYPE PDEL PPAGE PAT PAT? ; 芆RTH DEFINITIONS : PRINTER PRINIT >PRINTER ; : DISPLAY CR BUSOFF DISPLAY ; \ PRINTER ROUTINEN 20OCT87RE 螻LY 芆RTH ALSO DEFINITIONS 4 肙NSTANT <20>/SCR : .LINE ( LINE# SCR# --) BLOCK SWAP C/L * + C/L 1- TYPE ; : .=== C/L 1- 0 南 罶CII = EMIT 滔闲 ; : PRLIST ( SCR# --) DUP BLOCK DROP PRINTER $<24> EMIT ." 覥REEN 蜶. " DUP . $14 EMIT CR .=== L/S 0 南 <20> OVER .LINE CR 滔闲 DROP .=== CR CR CR DISPLAY ; \ 眯-80 蠷INTER LOADSCREEN CLV14OCT87 螻LYFORTH HEX 諳CABULARY 蠷INT 蠷INT DEFINITIONS ALSO 肦EATE 蠷TER 2 ALLOT ( 覧MAPHOR) 0 蠷TER ! \ 蠷TER UNLOCK /CLV 1 6 +THRU 螻LY 芆RTH ALSO DEFINITIONS ( CLEAR ) \ P! CTRL: 庞<> ESC: 07MAY85MAWE) 蠷INT DEFINITIONS : P! ( 8B -) 屡巧<E5B1A1> PAUSE $哪0<E593AA> C@ $10 AND 瘴陨<E798B4> $哪01 C! ; <20> : CTRL: ( <20> -) 肦EATE C, DOES> ( -) C@ P! ; 07 CTRL: 屡<> <20> $7<> CTRL: 呐<> <20> $0<> CTRL: 靡旁 <20> $1<> CTRL: 庞<> $0<> CTRL: 唐 $0<> CTRL: 破 <20> : ESC: ( <20> -) 肦EATE C, DOES> ( -) 庞<> C@ P! ; $30 ESC: 1/8" $31 ESC: 1/10" $32 ESC: 1/6" $20 ESC: GORLITZ <20> : 庞<>2 庞<> P! P! ; ( PRINTER CONTROLS 07MAY85MAWE) $0E ESC: +WIDE $14 ESC: -WIDE $45 ESC: +DARK $46 ESC: -DARK $47 ESC: +DUB $48 ESC: -DUB $0F ESC: +COMP $12 ESC: -COMP : +UNDER 1 $2<> ESC2 ; : -UNDER 0 $2<> ESC2 ; ( PRINTER CONTROLS 07MAY85MAWE) $54 ESC: SUOFF : SUPER 0 $53 庞<>2 ; : SUB 1 $53 庞<>2 ; : LINES ( LINES -) $43 庞<>2 ; : "LONG ( INCHES -) 0 LINES P! ; : AMERICAN 0 $52 庞<>2 ; : GERMAN 2 $52 庞<>2 ; : PSPACES ( N -) 0 SWAP BOUNDS ?南 绿 P! 滔闲 ; <20> : INITPORT 0 $哪01 C! $破 $哪03 C! ; : PRINIT INITPORT AMERICAN SUOFF 1/6" &12 "LONG 靡旁 ; ( 眯80 PRINTER INTERFACE 26MAR85RE) <20> 諥RIABLE UNCHANGED? UNCHANGED? OFF <20> : C>A ( 8B0 - 8B1) UNCHANGED? @ ?EXIT DUP $41 $5<> UWITHIN 善 $20 OR EXIT 匀盼 DUP $<24>1 $穆 UWITHIN 善 $7<> AND EXIT 匀盼 DUP $拿 $<24>0 UWITHIN 善 $<24>0 XOR 匀盼 ; ( PRINT PL 06MAY85WE) 諥RIABLE 蠧OL 諥RIABLE 蠷OW <20> : PEMIT C>A P! 1 蠧OL +! ; <20> : PCR 靡旁 1 蠷OW +! 0 蠧OL ! ; <20> : PDEL 呐<> -1 蠧OL +! ; <20> : PPAGE 破 0 蠷OW ! 0 蠧OL ! ; <20> : PAT ( ZEILE SPALTE -- ) OVER 蠷OW @ < 善 PPAGE 匀盼 0 ROT 蠷OW @ - BOUNDS ?南 PCR 滔闲 DUP 蠧OL @ - PSPACES 蠧OL ! ; <20> : PAT? 蠷OW @ 蠧OL @ ; <20> : PTYPE ( ADR COUNT -) DUP 蠧OL +! BOUNDS ?南 <20> C@ C>A P! 滔闲 ; <20> 蟄TPUT: >PRINTER PEMIT PCR PTYPE PDEL PPAGE PAT PAT? ; 芆RTH DEFINITIONS : 蠷INTER PRINIT >PRINTER ; ( 3SCR'S NSCR'S THRU KS07MAY85MAWE) 芆RTH DEFINITIONS <20> : 3SCR'S ( BLK -) CR -COMP +DARK $<24> SPACES DUP 3 .R $19 SPACES DUP 1+ 3 .R $19 SPACES DUP 2+ 3 .R CR +COMP -DARK <20>/<2F> <20>/<2F> * 0 南 CR 5 SPACES DUP BLOCK <20> + <20>/<2F> 1- TYPE 8 SPACES DUP 1+ BLOCK <20> + <20>/<2F> 1- TYPE 8 SPACES DUP 2+ BLOCK <20> + <20>/<2F> 1- TYPE <20>/<2F> +滔闲 DROP CR 唐 ; <20> : NSCR'S ( BLK1 N - BLK2) UNDER 0 南 DUP 3SCR'S OVER + 滔闲 NIP ; : PTHRU ( FROM TO -) 蟄TPUT @ -ROT 蠷INTER 蠷TER LOCK 1/8" 1+ OVER - 1+ 9 /MOD ?DUP 善 SWAP >R 0 南 3 NSCR'S PAGE 滔闲 R> 匀盼 ?DUP 善 1- 3 / 1+ 0 南 DUP 3SCR'S 3 + 滔闲 匀盼 DROP 蠷TER UNLOCK 蟄TPUT ! ; \\ 蘋NG蔛R FOR <20>16 CAS16AUG06 虴MORY MODEL $0000 - $8000 : 蘋W伊<57> $8000 - $FFFF : 菼GH伊<48> & 蚁<> SWITCH TO 伊<> 覹ITCH TO 蚁<> SYS CAN BE USED LIKE JSR 蚁<>-肁LL LIKE '0FFD2 SYS' ROM JSR RAM == $FF3E STA JSR $FF3F STA NOT POSSIBLE IF 扰遗 > $8000 荱ESS WHY? --- 螻 THE <20>64 铝由<E9939D> AND 嫌 CAN BE BANKED SEPERATLY. 訦IS MACROS ARE ONLY NEEDED FOR THE BASIC 蚁<> \\ 蘋NG蔛R FOR <20>16 CAS16AUG06 琢椅晌<E6A485>! 覻STEMCRASH IF USED INCORRECT THIS MAKRO MUST BE UNDER $8000 A CALL LIKE ' $FFD2 SYS虯CRO' WILL GENERATE PHA $FF # LDA 滔吻1 2+ STA $D2 # LDA 滔吻1 1+ STA PLA 滔吻 JSR CALL IN 蚁<> WILL BE DONE WITH A DETOUR SYS DECIDED IF DIRECT OR INDIRECT CALL 琢椅晌<E6A485>! 贓RO-芁AG WILL BE DESTROYED! ( TRANSIENT 芆RTH-6502 罶SEMCLCAS16AUG06 ( 翧SIS: 芆RTH 腎MENSIONS 窒<><> 蜲. 5) 訦E 罶SEMBLER WILL BE LOADED COMPLETELY INTO THE 扰列 AND IS ONLY USABLE TILL THE NEXT 'CLEAR' OR 'SAVE', AFTER THAT HE IS COMPAVOLKSFORTH 3.8-3牋U3<55>2A牋牋<00>LETE REMOVED FROM THE MEMORY. 貽U CANNOT USE IT, BUT IT ALSO DON'T EATS UP VALUABLE MEMORY. \ FREE CAS16AUG06 \\ FOR TRACER:LOADSCREEN CAS16AUG06 設腛 ***芆R THE NEXT VOLKS4TH VERSION **** 覻NC <尚 尚>-HANDLING WITH 罷ARI AND 眯<> HERE SOME EXAMPLES TO TEST <20> : AA DUP DROP ; <20> : BB AA ; \\ DEBUG BB TRACE' AA TRACE' 芆RTH 尚 2INC IS DONE ON 寐<>-罷ARI BEFORE OR AFTER \\ FOR TRACER:WCMP VARIABLES CAS16AUG06 USED LIKE THIS ADR1 ADR2 WCMP COMPARES WHOLE WORD, RESULT IS 肁RRY=1 : (ADR1) >= (ADR2) 肁RRY=0 : (ADR1) < (ADR2) ALL OTHER FLAGS ARE NOT DEFINED 訣MPORARY STORAGE FOR <20> AREA TO BE TRACED 芁AG: TRACE WORD 芁AG: TRACE YES?NO UNKNOWN LEVEL OF NESTING \ FOR TRACER:CPUSH ONELINE CAS16AUG06 SAVES 膛<> BYTES FROM 聊囊 ON THE RETURN STACK. THE NEXT 瘴闻釉 OR 咆稍 WILL PLACE THEM BACK 虯IN LOOP COMMAND CAN BE ENTERED GETS AREA TO TRACE \ FOR TRACER:STEP TNEXT CAS16AUG06 WILL BE USED AT THE END OF 晕咆<E69995>, TO ENABLE 砸列? AGAIN AND TO FIX THE BROKEN 闻卦-襉UTINE 訦IS 襉UTINE WILL BE PATCHED ON 闻卦 AND IS THE KEY PART OF THE TRACER IF NO TRACED: TRACE CURRENT 紫夷? NO: IS 尚 INSIDE THE DEBUG AREA? NO: THEN GO YES: DELETE HALF! PART DISABLE TRAP? ( THE TRACER SHOULDN'T TRACE ITSELF ) \ TRACER:..TNEXT CAS16AUG06 芆RTH-蠥RT OF 晕咆<E69995> TRACE INTO CURRENT 紫夷? YES: PUSH 呐抡<E59190> AREA, INCREMENT NEW NESTINGLEVEL 釉判 SHOULD BE EXECUTED LATER 姓尤ED ALL IMPORTANT DATA PRINT INFORMATION LINE 姓尤ED MORE DATA 姓尤ED THE 褽TURN-覶ACK-蠴INTER !! AND PRETENDS AN EMPTY 褽TURN-覶ACK CONNECTS 衔盘晌<E79B98> INTO THE 土晌-孟屯廖<E5B1AF>-滔闲 AND CALLS IT \ TRACER:DO-TRACE TRACEABLE CAS16AUG06 INSTALLS (PATCHED) 晕咆<E69995> INTO 闻卦 (闻卦 IS THE INNERST 襉UTINE, THAT ENDS EVERY WORD DEFINITION) CHECKS, WETHR A WORD CAN BE TRACED AND LOOKS UP ITS ADDRESS : -DEF. <尚=CFA+2 晌姓<E6998C>: -DEF. <尚 FROM INPUT-諩KTOR 险孕赵:-DEF. <尚 FROM OUTPUT-諩KTOR 呐婆<E59190> -DEF. <尚 FROM [CFA+2] 南庞> -DEF. <尚=[CFA]+3 ALL OTHER DEFINITIONS WON'T WORK \ TRACER:USER WORDS CAS16AUG06 闻釉 ENTERS A WORD FOR TRACING 瘴闻釉 CONTINUES PROGRAM EXECUTION TO THE END OF TRACED WORD 盼奶舷<E5A5B6> START TRACING AFTER NEXT WORD (USABLE INSIDE LOOPS) 瘴抡<E798B4> DISABLES TRACING 呐抡<E59190> <WORD> MARKS THE WORD TO BE TRACED. 蒄 <WORD> IS CALLED, THE TRACER KICKS IN 砸撩<E7A0B8>' WILL CALL <WORD> AND START TRACE. \\ TOOLS FOR DECOMPIL CAS16AUG06 \ IF THE WORD : TEST 5 0 南 ." DO YOU LIKE ME?" KEY 罶CII Y = 善 ." YOUR FAULT " LEAVE 盘优 ." YES SURE! " 匀盼 滔闲 ." !" ; \\ SHOULD BE INSPECTED, PLEASE TURN PAGE..> \ TOOLS FOR DECOMPIL CAS16AUG06 CR TOOLS TRACE' TEST \ CAS16AUG06 SET ORDER TO 葡以<E891A1> 葡以<E891A1> 衔藤 葡以<E891A1> FOR MULTITASKING 肊NTRONICS-蒒TERFACE ON 誗ER-蠴RT (S 訣XT TILL ) WILL BE SKIPPED SERIAL 蒒TERFACE (COMMENTED OUT) (U 訣XT TILL ) WILL BE SKIPPED LOAD NEXT SCREEN ONLY FOR SERIAL BUS REMOVE UNNEDED WORD HEADERS \ 譎EN USING THE SERIAL CAS16AUG06 BUS, SENDIND CHARS ONE BY ONE IS TOO SLOW 耈FFER FOR CHRS TO SEND TO PRINTER ADD CHAR TO BUFFER 耈FFER FULL? PRINT BUFFER AND CLEAN 虯INROUTINE TO SEND TO SERIAL BUS STORE CHAR IS 芆RMFEED? YES, PRINT BUFFER INCL. 芆RMFEED IS 蘄NEFEED? OR 靡, OR IS THE BUFFER FILLED? YES, PRINT BUFFER AND 靡/唐 MARKED \ CAS16AUG06 虯INROUTINE FOR CENTRONICS INTRFACE SEND CHAR TO PORT , EMIT 覶ROBE-臘GE WAIT FOR 耈SY-覫GNAL TO DISAPPEAR SEND CONTROLCODES TO PRINTR 肙NTROLCODES FOR 蠷INTER IN 菶X REPRESENTATION 罝JUST IF NEEDED! SEND 庞<>-覧QUENCE TO PRINTER 蘄NEFEED IN 蒒CH DISABLE 覷PERSCRIPT AND 覷BSCRIPT SKIP PERFORATION ON/OFF \ CAS16AUG06 臩CAPE + 2 肏ARS ONLY FOR 荗ERLITZ-蒒TERFACE SPECIAL 臥SON-肙NTROLMODE 肙PY OF 蠷INTER-肙NTROL-褽GISTER SWITCH 翴T IN CONTROL REGISTER ON SWITCH 翴T IN CONTROL REGISTER OFF 訦ESE 肙NTROLCODES NEED TO BE ADJUSTED FOR OTHER PRINTERS WITH CTRL: 庞<>2 AND PRN 蘄NEWIDTH IN CHARACTERS PER INCH REPLACE WITH 臠ITE, 蠭CA OR 肙MPRESS IF NEEDED \ CAS16AUG06 ADJUST THESE IF NEEDED 肁LL AS 66 LINES 肁LL AS 11 "LONG 芆NTS, CAN BE EXTENDED 蒒ITIALIZING ... . FOR 荗ERLITZ-蒒TERFACE . FOR 肊NTRONICS: 蠴RT <20> ON SEND 辛2 ON SEND FOR 覶ROBE 芁AG FOR CHAR-CONVERT ENABLE PRINTER WITH STANDARDVALUES CAS16AUG06 CONVERT 肙MMODORE'S 覲ECIAL-罶CII IN STANDARD 劣蒙<E58AA3> 襉UTINES FOR PRINTING COMMAND SEND CHR TO PRINTER EMIT 靡 AND 唐 TO PRINTER CR DELETE CHAR (?!) DEL EMIT FORMFEED PAGE POSITION PROTERHEAD ON COLUMN AT AND ROW, NEW PAGE IF NECESSARY GET PRINTHEAD POSITION AT? EMIT STRING TYPE CAS16AUG06 CREATE OUTPUTTABLE >PRINTER 襉UTINES FOR PRINTER AND SCREEN (BOTH) 蟄TPUT FIRST ON 覥REEN ( 襉UTINES FROM 纳有塘<E69C89> ) AND ON PRINTER ( 襉UTINES FROM >幸晌耘<E6998C> ) CREATE OUTPUTTABLE >BOTH WORDS ARE AVALABLE FROM 芆RTH SWITCH OUTPUT TO PRINTER SWITCH OUTPUT TO SCREEN AND PRINTER CAS16AUG06 PRINT TWO SCREEN SIDE BY SIDE SCREENNUMBER IN BOLD AND 17CPI FORMATTED OUTPUT OF BOTH 覥REENS WILL PRINT SCREEN THIS: 1 3 WAY 2 4 PRINTS SCRREN FROM TO STORE 蟄TPUTDEVICE AND ENABLE PRINTER CALCULATE PRINTPOSITION FOR EACH 覥REEN AND PRINT ACCORDING TO LAYOUT CAS16AUG06 LIKE 2SCR'S (WITH 親ADOW) LIKE NSCR'S (WITH 親ADOW) SCREEN 親ADOW SCR+1 親+1 LIKE PTHRU (WITH 親ADOW) CAS16AUG06 SAME AGAIN FOR STANDARD FORTH SCREENS WITH 16 LINES AND 64 CHARS SEE ABOVE LIKE PTHRU, BUT FOR STANDARD SCREENS CAS16AUG06 PRINT FAST INDEX ON PRINTER 12" 蠥PIERSIZE SKIP PERFORATION 翧CKGROUND PRINT CAS16AUG06 蚒LTITASKER IS NEEDED 肦EATE WORKAREA FOR TASK ENABLE BACKGROUD PRINTING FROM TO WILL BE PASSED TO TASK ON NEXT 辛沼<E8BE9B> THE TASK WILL EXECUTE PTHRU AND WILL GO TO SLEEP ABORT BACKGROUND TASK TASK WILL BE ACTIVATED TO GO TO SLEEP AGAIN IMMEDITALY \\ 蠷INTER INTERFACE 1526 CAS16AUG06 訦IS DRIVER ALSO WORKS WITH: <20>16 & 蒙陨谂<E999A8>-100耐 \ SEE 華NDBOOK 破 : 芆RMFEED IS MISSING HERE CLV14OCT87