)²Â
 \ ASCII/VIEWDATA VDU 1.1 /  PRINT $12"********************************ASCII / VIEWDATA VDU (C) TH-SOFT********************************"''( 2 FOR N=0 TO 1< PASS NF P ASM-BEGINZ.OPTION:01010000d.CODE#A200 \**??**n\ ALTIJD OP HET BEGIN VANx\ EEN PAGINA ASSEMBLEREN!!‚\ (.CODE#XX00 !!!)Œ.RAM#9200 \**??**–.TABLE#8200,#9000 \**??** :SCRATCH=#2800 \**??**ª:KAR'TABEL=#AB00 \**??**´:CUR'H=#DE¾:CUR'L=#E1È:VDU'STS=#E0Ò:PNT=#E2Ü:SVE'X=#E4æ:SVE'Y=#E5ð:TMP1=#98ú:TMP2=#21C:TMP3=#21E:HOR=30:CTRL'H":BS, DEC CUR'L6 BPL SKIP1@ LDA@3;STA CUR'LJ:SKIP1T BEQ SKIP2;DEC CUR'H^:SKIP2h BPL RTS;LDA@HOR-1r STA CUR'H| DEC CUR'H+1;BMI RTS† LDA@32;BIT VDU'STS;BEQ HT LDA@#97;STA CUR'H+1š:RTS¤ RTS®:HT¸ INC CUR'LÂ LDA CUR'LÌ CMP@1;BEQ SKIP3Ö INC CUR'Hà:SKIP3ê CMP@4;BCC RTSô LDA@0;STA CUR'Lþ LDA CUR'H CMP@HOR;BCC RTS JSR LF;LDA@0 STA CUR'H;RTS&:VT0 DEC CUR'H+1: BMI RTS;LDA@32D BIT VDU'STS;BNE SKIP6N LDA@#80;BNE SKIP7X:SKIP6b LDA@#97l:SKIP7v STA CUR'H+1;RTS€:CLSŠ LDA@#97” STA CUR'H+1ž LDY@0;STY CUR'H¨:LOOP1² JSR CLEAR'PART¼ DEC CUR'H+1Æ BMI LOOP1Ð:RSÚ LDA@#F0;STA#B000ä LDA@#80;STA CUR'H+1î LDA VDU'STS;AND@#E0ø STA VDU'STS:CR LDA@0;STA CUR'H STA CUR'L;LDA VDU'STS  AND@#E3;STA VDU'STS;RTS*:LF4 LDA@1;BIT VDU'STS> BEQ SKIP11H LDA VDU'STS;AND@#FCR STA VDU'STS\:SKIP11f LDA@2;BIT VDU'STSp BEQ SKIP8z LDA VDU'STS;AND@#FC„ ORA@1;STA VDU'STSŽ:SKIP8˜ LDA VDU'STS;AND@#E3¢ STA VDU'STS¬ INC CUR'H+1¶ LDX@#98À CPX CUR'H+1Ê BEQ SKIP4;BCC RSÔ RTSÞ:SKIP4è LDA@32;BIT VDU'STSò BNE LAB1ü LDA CUR'H PHA;LDY@#81 STY CUR'H+1 DEY;STY PNT+1$ LDY@0;STY CUR'H. STY PNT8:LOOP2B LDA(CUR'H),YL STA(PNT),YV INY;BNE LOOP2` INC CUR'H+1j INC PNT+1t CPX CUR'H+1~ BNE LOOP2ˆ DEC CUR'H+1’ JSR CLEAR'PARTœ PLA;STA CUR'H;RTS¦:CON° LDA VDU'STS;ORA@#40º BNE SKIP12Ä:COFFÎ LDA VDU'STS;AND@#BFØ:SKIP12â STA VDU'STS;RTSì:ESCö LDA@32;BIT VDU'STS BEQ SKIP9
 LDA VDU'STS;ORA@16 STA VDU'STS;RTS:SKIP9( LDA VDU'STS;AND@#E02 STA VDU'STS;RTS<:LAB1F LDA@#80;STA CUR'H+1;RTSP:CLEAR'PARTZ BIT VDU'STS;BMI SKIP5d DEYn:SKIP5x TYA;LDY@0‚:LOOP3Œ STA(CUR'H),Y;INY– BNE LOOP3;RTS \\\\\\\\\\\\\\\\\\\\\\\\\\ª:WRCH'ENTRY´ PHP;PHA;STA TMP3¾ STX SVE'X;STY SVE'YÈ JSR PRINT'ENTRYÒ JMP#FE5FÜ:PRINT'ENTRYæ JSR INV'CUR;LDA@16ð BIT VDU'STS;BEQ NO'ESCAPEú JSR ESCAPE:NO'ESCAPE LDA TMP3;CMP@32 BCS NO'CTRL" LDX@10;BNE CTRL'ENTRY,:LOOP46 DEX@:CTRL'ENTRYJ CMP CTRL'CODE,XT BCC LOOP4^ BNE NOT'FOUNDh LDA CTRL'ADRES,Xr STA PNT| LDA@(CTRL'H)/256† STA PNT+1 JSR#FEC1š:NOT'FOUND¤ JMP INV'CUR®:NO'CTRL¸ LDA@8;BIT VDU'STSÂ BEQ NO'GRAPHICSÌ LDA TMP3Ö CMP@64;BCC GRAPHICSà CMP@96;BCC NO'GRAPHICSê SEC;SBC@32ô:GRAPHICSþ SEC;SBC@32 ORA@128 STA TMP3:NO'GRAPHICS& JSR PRINT;JSR HT0:INV'CUR: BIT VDU'STS;BVS CUR'OND:CUR'OFFN RTSX:CUR'ONb LDA@1;BIT VDU'STSl BNE CUR'OFFv LDA@4;BIT VDU'STS€ BEQ NORMAL'CUŠ JMP DOUBLE'CU”:NORMAL'CUž LDY@0;LDA CUR'L¨ BEQ CU0;CMP@1;BEQ CU1² CMP@2;BEQ CU2¼:CU3 LDA(CUR'H),YÆ EOR@#3F;STA(CUR'H),YÐ JSR INC;BCC CU3;RTSÚ:CU2 LDA(CUR'H),Yä EOR@#F;STA(CUR'H),Yî INY;LDA(CUR'H),Yø EOR@#C0;STA(CUR'H),Y DEY;JSR INC;BCC CU2;RTS:CU1 LDA(CUR'H),Y EOR@3;STA(CUR'H),Y  INY;LDA(CUR'H),Y* EOR@#F0;STA(CUR'H),Y4 DEY;JSR INC;BCC CU1;RTS>:CU0 LDA(CUR'H),YH EOR@#FC;STA(CUR'H),YR JSR INC;BCC CU0;RTS\:INC TYA;CLC;ADC@32;TAYf RTSp:PRINTz LDA@1;BIT VDU'STS„ BEQ PRINT'Ž RTS˜:PRINT'¢ LDA TMP3;AND@#1F¬ STA PNT¶ LDA TMP3;AND@#E0;CLCÀ ROLA;ROLA;ROLA;ROLAÊ ADC@(KAR'TABEL)/256-1Ô STA PNT+1Þ LDA@4;BIT VDU'STSè BEQ NORMALò JMP DOUBLEü:NORMAL	 LDY@0	 LDA CUR'L;BEQ PR0	 CMP@1;BEQ PR1;CMP@2	$ BNE PR3	.:PR2 LDA@#F;STA TMP2	8:PR12 LDA(PNT),Y	B LSRA;LSRA;LSRA;LSRA	L JSR PR';BCC PR12	V INC CUR'H;LDA@#C0	` STA TMP2	j:PR8 LDA(PNT),Y;ASLA	t ASLA;ASLA;ASLA;JSR PR'	~ BCC PR8;DEC CUR'H	ˆ RTS	’:PR3 LDA@#3F;STA TMP2	œ:PR11 LDA(PNT),Y	¦ LSRA;LSRA;JSR PR'	° BCC PR11;RTS	º:PR0 LDA@#FC;STA TMP2	Ä:PR10 LDA(PNT),Y	Î JSR PR';BCC PR10;RTS	Ø:PR1 LDA@3;STA TMP2	â:PR13 LDA(PNT),Y	ì LSRA;LSRA;LSRA;LSRA;LSRA	ö LSRA;;JSR PR';BCC PR13
 INC CUR'H;LDA@#F0

 STA TMP2
:PR9 LDA(PNT),Y;ASLA
 ASLA;JSR PR';BCC PR9
( DEC CUR'H;RTS
2:PR' JSR PR''
< LDA TMP2;EOR@#FF
F AND(CUR'H),Y
P ORA TMP2+1
Z STA(CUR'H),Y
d CLC;TYA;ADC@32;TAY;RTS
n:PR'' BIT VDU'STS
x BPL SKIP10;EOR@#FF
‚:SKIP10 AND TMP2
Œ STA TMP2+1;RTS
–:DOUBLE
  LDA PNT;STA TMP1
ª LDA PNT+1
´ STA TMP1+1
¾ LDA@(SCRATCH)/256
È STA PNT+1
Ò LDA@(SCRATCH)%256
Ü STA PNT
æ LDY@0;JSR MAKE'CHAR
ð JSR NORMAL
ú INC CUR'H+1 LDA CUR'H+1 CMP@#98;BEQ NO'BOTTOM LDY@128;JSR MAKE'CHAR" JSR NORMAL,:NO'BOTTOM6 DEC CUR'H+1@ RTSJ:MAKE'CHAR LDX@0T:LOOP5^ LDA(TMP1),Yh STA SCRATCH,Xr PHA;CLC;TXA;ADC@32;TAX| PLA;STA SCRATCH,X† CLC;TYA;ADC@32;TAY CLC;TXA;ADC@32;TAXš BNE LOOP5¤ RTS®:DOUBLE'CU¸ JSR NORMAL'CUÂ INC CUR'H+1Ì LDA CUR'H+1Ö CMP@#98à BEQ NO'BOTTOM'CUê JSR NORMAL'CUô:NO'BOTTOM'CUþ DEC CUR'H+1 RTS:ESCAPE LDA VDU'STS;AND@#EF& STA VDU'STS0 LDA TMP3: CMP@65;BCC INVALIDD CMP@72;BCS NOT'ALPHAN LDA VDU'STS;AND@#F7X STA VDU'STS;BNE INVALIDb:NOT'ALPHAl CMP@76;BNE NOT'NORMALv LDA VDU'STS;AND@#FB€ STA VDU'STS;BNE INVALIDŠ:NOT'NORMAL” CMP@77;BNE NOT'DOUBLEž LDA VDU'STS;ORA@6¨ STA VDU'STS;BNE INVALID²:NOT'DOUBLE¼ CMP@81;BCC INVALIDÆ CMP@88;BCS INVALIDÐ LDA VDU'STS;ORA@8Ú STA VDU'STSä:INVALIDî LDA@32;STA TMP3;RTSø:INIT'VDU LDA@(WRCH'ENTRY)/256 STA#209 LDA@(WRCH'ENTRY)%256  STA#208* LDA@12;JMP#FFF44:CTRL'CODE>.DB#0008;.DB#090AH.DB#0B0C;.DB#0D11R.DB#141B;.BY#1E\:CTRL'ADRESf.BY(RTS)%256p.BY(BS)%256z.BY(HT)%256„.BY(LF)%256Ž.BY(VT)%256˜.BY(CLS)%256¢.BY(CR)%256¬.BY(CON)%256¶.BY(COFF)%256À.BY(ESC)%256Ê.BY(RS)%256Ô Þ:VDU'ENDè ò.ENDü  NEXT *SAVE D:VDUSYM 8200 9000 *SAVE C:vVDU 9200 9B00$ ENDÿ  ENDÿAB.  If t\\\\\\\\\\\\\\\\\\\\\z:INT'T1„ LDA VIA'T1'LŽ BIT RX'STS˜ BPL DUMMY¢ LSR DATA'RX¬ LDA VIA'DRG¶ AND@128;ORA DATA'RXÀ STA DATA'RXÊ DEC RX'CNTÔ BEQ END'OF'BYTEÞ PLA;RTIè:END'OF'BYTEò TXA;PHAü LDX RECV'PNT