100 ;********************************* 110 ;*** *** 120 ;*** (null)URS *** 130 ;*** (null)AUBEREIEN MIT CHR$RAFIK UND *** 140 ;*** ATNSSEMBLER *** 150 ;*** *** 160 ;********************************* 170 ;*** *** 180 ;*** PEEKASIC-VALRWEITERUNG *** 190 ;*** (null)PLIT-(null)CREEN *** 200 ;*** *** 210 ;********************************* 220 ;*** *** 230 ;*** (LEN) 1988 BY (null)HOMAS (null)IPP *** 240 ;*** 8000 (null)UENCHEN 82 *** 250 ;*** *** 260 ;********************************* 270 ; 280 +$C000 290 USR$C000 300 ; 310 ;********************************* 320 ;*** PEEKASIC-VALRWEITERUNG *** 330 ;********************************* 340 ; 350 ;*** (null)ABELS *** 360 ; 370 TAB(CHRGET=$0073; CHRGET-(null)OUTINE 380 TAB(CHRGOT=$0079; CHRGOT-(null)OUTINE 390 TAB(TXTPTR=$007A; CHRGET-(null)EIGER 400 ; 410 TAB(IGONE=$0308; (null)EKTOR ZUM (null)OUTINENAUFRUF 420 TAB(GONE1=$A7E4; ALTER RIGHT$NHALT VON RIGHT$GONE 430 TAB(INTEND=$A7E7; VALNDE DER RIGHT$NTERPRETERSCHLEIFE 440 ; 450 ;*** VALRWEITERUNG EINSCHALTEN *** 460 ; 470 MID$#$FF; (null)PEICHERGRENZE AUF $7FFF HERABSETZEN 480 (null)$37; LSB (null)PEICHERENDE 490 MID$#$7F 500 (null)$38; MSB (null)PEICHERENDE 510 ; 520 MID$#<(START); LSB DER EIGENEN (null)OUTINE 530 (null)IGONE; IN (null)EKTOR SCHREIBEN 540 MID$#>(START); MSB DER EIGENEN (null)OUTINE 550 (null)IGONE+1; IN (null)EKTOR SCHREIBEN 560 ; 570 (null); (null)UECKSPRUNG INS PEEKASIC 580 ; 590 ;*** VALRWEITERUNG AUSSCHALTEN *** 600 ; 610 AUS MID$#<(GONE1); (null)EKTOR AUF (null)ORMALWERT ZURUECKSTELLEN 620 (null)IGONE; LSB 630 MID$#>(GONE1) 640 (null)IGONE+1;MSB 650 ; 660 (null); (null)OUTINENENDE 670 ; 680 ;*** ERWEITERTE RIGHT$NTERPRETERSCHLEIFE *** 690 ; 700 START (null)CHRGET; (null)EICHEN HOLEN 710 ; 720 STR$#$60; PEEKUCHSTABE ? 730 (null)ENDE; => PEEKASIC-LENODE 740 STR$#$41; PEEKUCHSTABE ATN ? 750 (null)ENDE; => (null)ONDERZEICHEN 760 ; 770 (null)AKKU; ATNKKU SICHERN 780 ; 790 PEEK#$00 800 (null)BEFNR; PEEKEFEHLSNUMMER AUF 0 SETZEN 810 ; 820 ERW1 LEN#$00; PEEKASICTEXTINDEX AUF 0 SETZEN 830 RIGHT$BEFNR; PEEKEFEHLSNUMMER +1 840 MID$BEFTAB,X; (null)EICHEN AUS PEEKEFEHLSTABELLE HOLEN 850 (null)ERW2; KEIN (null)RENNZEICHEN 860 MID$AKKU; ATNKKU HOLEN 870 ENDE (null)CHRGOT; CHRGOT AUFRUFEN 880 (null)INTEND; ZURUECK INS NORMALE PEEKASIC 890 ; 900 ;*** ATNDRESSE SUCHEN *** 910 ; 920 ERW2 STR$(TXTPTR),Y; (null)ERGLEICH MIT PEEKASICTEXT 930 (null)OVRD; UNGLEICH -> (null)EST UEBERLESEN 940 (null); PEEKASICTEXTINDEX + 1 950 (null); PEEKEFEHLSTAB.-RIGHT$NDEX + 1 960 MID$BEFTAB,X; NAECHSTES (null)EICHEN HOLEN 970 (null)ERW2; => PRUEFEN 980 ; 990 ; 1000 (null) 1010 (null); PEEKEFEHLSINDEX UM PEEKEFEHLSLAENGE ERHOEHEN 1020 VALTXTPTR 1030 (null)TXTPTR 1040 (null)ERW3; (null)EBERTRAG ? 1050 RIGHT$TXTPTR+1; MSB ERHOEHEN 1060 ; 1070 ERW3 MID$BEFNR; PEEKEFEHLSNUMMER VERDOPPELN 1080 (null) 1090 (null); ALS RIGHT$NDEX IN (null)PRUNGTABELLE 1100 MID$SPRTAB1,X; LSB LESEN 1110 (null)SPRUNG+1; LSB SCHREIBEN 1120 MID$SPRTAB2,X; MSB LESEN 1130 (null)SPRUNG+2; MSB SCHREIBEN 1140 ; 1150 SPRUNG (null)$FFFF; STR$UMMY 1160 ; 1170 (null)ENDE; ZURUECK INS PEEKASIC 1180 ; 1190 ;*** RESTL. PEEKEFEHLSTEXT UEBERLESEN *** 1200 ; 1210 OVRD (null); PEEKEFEHLSTAB.-RIGHT$NDEX + 1 1220 MID$BEFTAB,X; NAECHSTES (null)EICHEN HOLEN 1230 (null)OVRD; => KEIN (null)RENNZEICHEN 1240 (null); PEEKEFEHLSTAB.-RIGHT$NDEX+1 1250 (null)ERW1; NAECHSTER PEEKEFEHL 1260 ; 1270 ;*** (null)ABELLEN FUER VALRWEITERUNG *** 1280 ; 1290 ;*** (null)PRUNGTABELLE *** 1300 ; 1310 SPRTAB1 FN$E7 1320 SPRTAB2 FN$A7 1330 SPC(AUS 1340 SPC(IR 1350 SPC(IA 1360 SPC(GL 1370 SPC(SP 1380 SPC(EP 1390 SPC(LN 1400 SPC(CP 1410 SPC(HC 1420 SPC(SA 1430 SPC(LO 1440 FN$00,$00 1450 ; 1460 ;*** PEEKEFEHLSTABELLE *** 1470 ; 1480 BEFTAB NOT"OFF 1490 [165]$00 1500 [168]"IRQ 1510 FN$00 1520 NOT"TEXT 1530 [165]$00 1540 [168]"GCL 1550 FN$00 1560 NOT"SET 1570 [165]$00 1580 [168]"ERASE 1590 FN$00 1600 NOT"LINE 1610 [165]$00 1620 [168]"CHAR 1630 FN$00 1640 NOT"HC 1650 [165]$00 1660 [168]"SA 1670 FN$00 1680 NOT"LO 1690 [165]$00,$00 1700 ; 1710 ;*** [200]ILFSZELLEN *** 1720 ; 1730 AKKU [165]$00 1740 BEFNR [165]$00 1750 ; 2000 ;********************************* 2010 ;*** [210]ASTERZEILENINTERRUPT *** 2020 ;********************************* 2030 ; 2040 ;*** [204]ABELS: [199]RAFIK *** 2050 ; 2060 [163]V1=$D011; [193]DR. [199]RAFIKMODUS 2070 [163]V2=$D018; [193]DR. [214]IDEORAM 2080 [163]CIA=$DD00; 16[203]-[211]ELECTION 2090 [163]CLRSCR=$E544; [212]EXTBILDSCHIRM LOESCHEN 2100 [163]CURSOR=$E510; [195]URSOR SETZEN 2110 [163]XCUR=$00D3; X-[203]OORDINATE DES [195]URSOR 2120 [163]YCUR=$00D6; Y-[203]OORDINATE DES [195]URSOR 2130 [163]HELP1=$00FA; [218]EROPAGESPEICHERSTELLE 2140 [163]HELP2=$00FB; [218]EROPAGESPEICHERSTELLE 2150 [163]BITMAP=$8000; [194]ITMAPADRESSE 2160 [163]VIDEORAM=$A000; [214]IDEORAMADRESSE 2170 ; 2180 ;*** [205]AKROS: [199]RAFIK EIN/AUS, [214]IDEORAM LOESCHEN, [195]URSOR SETZEN *** 2190 ; 2200 [161]GRA; [199]RAFIK EINSCHALTEN 2210 [202]#$3B; [194]ITMAPMODUS EINSCHALTEN 2220 [210]V1 2230 [202]#$80; [214]IDEORAM SELECTIEREN 2240 [210]V2 2250 [202]#$01; 16[203]-[194]EREICH SELECTIEREN 2260 [210]CIA 2270 [162] 2280 ; 2290 [161]TXT; [199]RAFIK AUSSCHALTEN 2300 [202]#$1B; [194]ITMAPMODUS AUSSCHALTEN 2310 [210]V1 2320 [202]#$15; [214]IDEORAM ZURUECKSETZEN 2330 [210]V2 2340 [202]#$03; 16[203]-[194]EREICH SELECTIEREN 2350 [210]CIA 2360 [162] 2370 ; 2380 [161]VRAM; [214]IDEORAM LOESCHEN 2390 [202]#208; [214]IDEORAMWERT 2400 ; 2410 [195]#>(VIDEORAM); [211]TARTADRESSE DES [214]IDEORAMS IN [218][208] SCHREIBEN 2420 [212]HELP2; MSB 2430 [195]#<(VIDEORAM) 2440 [212]HELP1; LSB 2450 [194]#$04; [201]NDEX FUER AEUSSERE [211]CHLEIFE 2460 VL1 [210](HELP1),Y; [194]YTE IM [214]IDEORAM MIT 208 UEBERSCHREIBEN 2470 [237]; [217] + 1 ; INNERE [211]CHLEIFE 256 MAL 2480 [246]VL1; => [217]<>0 2490 [201]HELP2; MSB DER [214]IDEORAMPOSITION + 1 2500 [238]; AEUSSERER [211]CHLEIFENZAEHLER - 1 2510 [246]VL1; => [216]<>0 2520 [162] 2530 ; 2540 [161]CUR 2550 [202]#12; 12. [218]EILE 2560 [210]YCUR; IN [218][208] SCHREIBEN 2570 [202]#$00; 0. [211]PALTE 2580 [210]XCUR; IN [218][208] SCHREIBEN 2590 [213]CURSOR; [195]URSOR SETZEN UND [210]OUTINENENDE 2600 [162] 2610 ; 2620 ;*** [204]ABEL: [210]ASTERZEILENINTERRUPT *** 2630 ; 2640 [163]IRQ=$0314; [201][210][209]-[214]EKTOR 2650 [163]RASTER=$D012; [210]ASTERZEILEN [210]EGISTER; MSB (7.[194]IT) = RASTER-1 2660 [163]RIRQEN=$D01A; [214][201][195]-[201][210][209] [197]NABLE [210]EGISTER 2670 [163]REQIRQ=$D019; [214][201][195]-[201][210][209] [210]EQUEST [210]EGISTER 2680 [163]CIAIRQ=$DC0D; [195][201][193]1 [201][210][209] [203]ONTROLL [210]EGISTER 2690 [163]CNTIRQ=$EA31; [195][201][193] [201][210][209] [210]OUTINE 2700 [163]ENDIRQ=$EA81; [197]NDE DER NORMALEN [201][210][209] [210]OUTINE 2710 ; 2720 ;*** [201]NIT: [214]EKTOREN VERBIEGEN, [201][210][209] ZULASSEN *** 2730 ; 2740 IR [232]; [201]NTERRUPT SPERREN 2750 ; 2760 [202]#<(MAINIRQ); [201][210][209]-[214]EKTOR AUF EIGENE [201][210][209] [210]OUTINE VERBIEGEN 2770 [210]IRQ; LSB 2780 [202]#>(MAINIRQ) 2790 [210]IRQ+1; MSB 2800 ; 2810 [202]#$00; [210]ASTERZEILE 0 (OBERHALB DES [194]ILDSCHIRMFENSTERS) 2820 [210]RASTER; IN [210]EGISTER SCHREIBEN 2830 [202]RASTER-1; MSB (7.[194]IT) LOESCHEN 2840 [198]#$7F 2850 [210]RASTER-1 2860 ; 2870 [202]#%10000001; [210]ASTER [201][210][209] ZULASSEN 2880 [210]RIRQEN 2890 ; 2900 [202]#128; TIMER-IRQ AUS 2910 [210]$DC0E 2920 ; 2940 [231]; [201]NTERRUPT WIEDER ZULASSEN 2950 ; 2960 ;*** [194]ILDSCHIRM UND [214]IDEORAM LOESCHEN, [195]URSOR SETZEN *** 2970 ; 2980 [214]CLRSCR; [212]EXTBILDSCHIRM LOESCHEN 2990 VRAM; [214]IDEORAM LOESCHEN 3000 CUR; [195]URSOR SETZEN 3010 ; 3020 ;*** VERAENDERTE [201][210][209]-[210]OUTINE *** 3030 ; 3040 MAINIRQ [232]; [201]NTERRUPT SPERREN 3050 [202]REQIRQ; [201][210][209] VON [210]ASTERSTRAHL ? 3060 [210]REQIRQ; [210]EGISTER ZURUECKSCHREIBEN UND LOESCHEN 3070 [241]RASTERIRQ; ZUR [210]ASTER [201][210][209] [210]OUTINE 3080 [202]CIAIRQ; LOESCHEN DES [195][201][193]1 [203]ONTROLL [210]EGISTER 3090 [231]; [201]NTERRUPT WIEDER ZULASSEN 3100 [213]ENDIRQ; ZUM [197]NDE DER NORMALEN [201][210][209] [210]OUTINE 3110 ; 3120 ;*** [210]ASTER [201][210][209] [210]OUTINE *** 3130 ; 3140 RASTERIRQ [232]; [201]NTERRUPT SPERREN 3150 [202]RASTER; [210]ASTERZEILEN-[210]EGISTER AUSLESEN 3170 [246]TEXTFE; => RASTER = $91 3180 ; 3190 GRA; [199]RAFIK EINSCHALTEN 3200 ; 3210 [202]#$91; 145. [210]ASTERZEILE, [213]MSCHALTUNG AUF [212]EXT 3220 [210]RASTER; IN [210]EGISTER SCHREIBEN 3230 [202]RASTER-1; MSB (7.[194]IT)[160]LOESCHEN 3240 [198]#$7F 3250 [210]RASTER-1 3260 ; 3270 [231]; [201]NTERRUPT WIEDER ZULASSEN 3280 [213]CNTIRQ; ZUR [195][201][193] [201][210][209] [210]OUTINE 3290 ; 3300 TEXTFE [194]#$07; [215]ARTESCHLEIFE, BIS DER [210]ASTERSTRAHL IM [210]AND IST 3310 IRQWAIT [228] 3320 [238] 3330 [246]IRQWAIT 3340 ; 3350 TXT; [199]RAFIK AUSSCHALTEN, [212]EXTBILDSCHIRM EINSCHALTEN 3360 ; 3370 [202]#$00; 0. [218]EILE, [213]MSCHALTUNG AUF [199]RAFIK 3380 [210]RASTER; IN [210]EGISTER SCHREIBEN 3390 [202]RASTER-1; MSB (7.[194]IT) LOESCHEN 3400 [198]#$7F 3410 [210]RASTER-1 3420 ; 3430 [231]; [201]NTERRUPT WIEDER ZULASSEN 3440 [213]ENDIRQ; ZUM [197]NDE DER [201][210][209]-[210]OUTINE 3450 ; 3460 ;*** [210]ASTERZEILENINTERRUPT WIEDER AUSSCHALTEN *** 3470 ; 3480 IA [232]; [201]NTERRUPT SPERREN 3485 ; 3490 [202]#$00; [210]ASTER [201][210][209] AUSSCHALTEN 3500 [210]RIRQEN; IN [210]EGISTER SCHREIBEN 3510 ; 3520 [202]#<(CNTIRQ); [201][210][209]-[214]EKTOR WIEDER HERSTELLEN 3530 [210]IRQ; LSB 3540 [202]#>(CNTIRQ) 3550 [210]IRQ+1; MSB 3560 ; 3570 [202]#1; TIMER-IRQ EIN 3580 [210]$DC0E 3590 ; 3600 TXT; [199]RAFIK AUSSCHALTEN, [212]EXTBILDSCHIRM EINSCHALETEN 3610 ; 3620 [231]; [201]NTERRUPT WIEDER ZULASSEN 3630 [227]; [210]OUTINENENDE 3640 ; 4000 ;********************************* 4010 ;*** [199]RAFIK LOESCHEN *** 4020 ;********************************* 4030 ; 4040 GL [202]#>(BITMAP); [194]ITMAPADRESSE IN [218][208] SCHREIBEN 4050 [210]HELP2; MSB 4060 [202]#<(BITMAP) 4070 [210]HELP1; LSB 4080 ; 4090 [194]#$20; AEUSSERER [211]CHLEIFENINDEX, 32 MAL 4100 GL2 [218]; INNERER [211]CHLEIFENINDEX [217] AUF 0 SETZEN 4110 GL1 [210](HELP1),Y; [206]ULLBYTE IN [194]ITMAP SCHREIBEN 4120 [237]; [217] + 1, INNERE [211]CHLEIFE 4130 [246]GL1; => [217]<>0 4140 [201]HELP2; MSB DER [194]ITMAPPOSITION ERHOEHEN 4150 [238]; [216] - 1, AEUSSERE [211]CHLEIFE 4160 [246]GL2; => [216]<>0 4170 ; 4180 [227]; => [216]=0, 32*256 [211]CHLEIFENDURCHLAEUFE, 4190 ; ) [210]OUTINENENDE 4200 ; 5000 ;********************************* 5010 ;*** [211]ET [208]OINT, [197]RASE [208]OINT *** 5020 ;********************************* 5030 ; 5040 ;*** [204]ABELS *** 5050 ; 5060 [163]BAL=$F9; [194]YTE-[193]DRESSE LOW 5070 [163]BAH=$FA; [194]YTE-[193]DRESSE HIGH 5080 [163]YWERT=$FB; Y-[203]OORDINATE 5090 [163]XWERTL=$14; X-[203]OORDINATE LOW 5100 [163]XWERTH=$15; X-[203]OORDINATE HIGH 5110 [163]CHKCOM=$AEFD; AUF [203]OMMA IM [194]ASICTEXT PRUEFEN 5120 [163]GETPAR=$B7EB; HOLT 16-[194]IT INTEGER [215]ERT IN $14/$15 5130 ; UND 8-[194]IT INTEGER [215]ERT IN [216]-[210]EGISTER 5140 ; 5150 ;*** [205]AKRO: [194]ERECHNUNG *** 5160 ; 5170 [161]CALC; [194]ERECHNUNGSTEIL FUER [211]ET [208]OINT UND [197]RASE [208]OINT 5180 [202]#$00; BAL LOESCHEN 5190 [210]BAL 5200 ; 5210 [202]YWERT; Y IN [193]KKU 5220 [205]; [Y/8] 5230 [205] 5240 [205] 5250 ; 5260 [210]BAH; [193]KKU([Y/8])*5 = [193]KKU*4 + [193]KKU 5270 [203] 5280 [203] 5290 [197]BAH 5300 ; 5310 [205]; [193]KKU(5*[Y/8])*64 = [193]KKU*256/4 5320 [208]BAL; => MSB -> LSB UND 16-[194]IT [196]IVISION MIT 4 5330 [205] 5340 [208]BAL 5350 ; 5360 [197]#>(BITMAP); [194]ITMAP HINZUADDIEREN 5370 [210]BAH; [193]KKU(320*[Y/8]+$8000) SPEICHERN 5380 ; 5390 [202]XWERTL; LSB(X) 5400 [198]#$F8; [X/8]*8 5410 ; 5420 [197]BAL; 16-[194]IT [193]DDITION: 5430 [210]BAL; [193]KKU([X/8]*8) + BAL/BAH 5440 [202]XWERTH; MSB(X) 5450 [197]BAH; WIRD UNVERAENDERT HINZUADDIERT 5460 [210]BAH 5470 ; 5480 [202]YWERT; Y-[Y/8]*8, [210]EST DER [196]IVISION Y/8 5490 [198]#$07 5500 ; 5510 [218]; ALS [201]NDEX IN [217] VERWENDEN 5520 ; 5530 [202]XWERTL; LSB(X) 5540 [198]#$07; X-[X/8]*8, ERGIBT [194]IT-[206]UMMER 5550 ; 5560 [216]; ALS [201]NDEX IN [216] VERWENDEN 5570 [162] 5580 ; 5590 ;*** [211]ET [208]OINT *** 5600 ; 5610 SP [214]CHKCOM; AUF [203]OMMA PRUEFEN 5620 [214]GETPAR; X UND Y HOLEN 5630 [211]YWERT; [216](X) IN [218][208] SCHREIBEN 5640 ; 5650 SET CALC; [194]YTE UND [194]IT ERRECHNEN 5660 ; 5670 [202]POT1,X; [194]YTE AUS [212]ABELLE LESEN 5680 [206](BAL),Y; [194]YTE MIT [199]RAFIKBYTE VERKNUEPFEN 5690 [210](BAL),Y; VERKNUEPFTES [194]YTE ZURUECKSCHREIBEN 5700 ; 5710 [227]; [210]OUTINENENDE 5720 ; 5730 ;*** [212]ABELLE DER 2ER [208]OTENZEN *** 5740 ; 5750 POT1 [165]$80,$40,$20,$10 5760 [165]$08,$04,$02,$01 5770 ; 5780 ; 5790 ;*** [197]RASE [208]OINT *** 5800 ; 5810 EP [214]CHKCOM; AUF [203]OMMA PRUEFEN 5820 [214]GETPAR; X UND Y HOLEN 5830 [211]YWERT; [216](X) IN [218][208] SCHREIBEN 5840 ; 5850 CALC; [194]YTE UND [194]IT ERRECHNEN 5860 ; 5870 [202]POT2,X; [194]YTE AUS [212]ABELLE LESEN 5880 [198](BAL),Y; [194]YTE MIT [199]RAFIKBYTE VERKNUEPFEN 5890 [210](BAL),Y; VERKNUEPFTES [194]YTE ZURUECKSCHREIBEN 5900 ; 5910 [227]; [210]OUTINENENDE 5920 ; 5930 ;*** [212]ABELLE MIT DEN INVERTIERTEN 2ER [208]OTENZEN *** 5940 ; 5950 POT2 [165]$7F,$BF,$DF,$EF 5960 [165]$F7,$FB,$FD,$FE 5970 ; 7000 ;********************************* 7010 ;*** [204]INE-[210]OUTINE *** 7020 ;********************************* 7030 ; 7040 ;*** [208]ARAMETER HOLEN *** 7050 ; 7060 LN [214]CHKCOM; AUF [203]OMMA PRUEFEN 7070 [214]GETPAR; X1 UND Y1 HOLEN 7080 ; 7090 [211]YWERT; Y1 IN [218][208] ABLEGEN 7100 [202]$14; LSB(X1) 7110 [210]X1L; ZWISCHENSPEICHERN 7120 [202]$15; MSB(X1) 7130 [210]X1H; ZWISCHENSPEICHERN 7140 ; 7150 [214]CHKCOM; AUF [203]OMMA PRUEFEN 7160 [214]GETPAR; X2 UND Y2 HOLEN 7170 ; 7180 [211]Y2; Y2 SPEICHERN 7190 [202]$14; LSB(X2) 7200 [210]X2L; SPEICHERN 7210 [202]$15; MSB(X2) 7220 [210]X2H; SPEICHERN 7230 ; 7240 [202]X1L; ZWISCHENGESPEICHERTER X1-[215]ERT IN [218][208] ABLEGEN 7250 [210]XWERTL; LSB 7260 [202]X1H 7270 [210]XWERTH; MSB 7280 ; 7290 [234]; [196]EZIMALMODUS LOESCHEN 7300 ; 7310 ;*** [194]EGINN DER [211]TRUKTURIERUNG *** 7320 ; 7330 ;--------------------------------- 7340 ; 7350 [230]; DX = X2 - X1 7360 [202]X2L; LSB(X2) 7370 [209]XWERTL; MINUS LSB(X1) 7380 [210]DX; [197]RGEBNIS IN DX 7390 [202]X2H; MSB(X2) 7400 [209]XWERTH; MINUS MSB(X1) 7410 [210]DX+1; [197]RGEBNIS IN DX+1 ([200]IGH-[194]YTE) 7420 ; 7430 ;--------------------------------- 7440 ; 7450 [240]LINE1; => DX > 0, 7. [194]IT DES MSB IST ENTSCHEIDEND 7460 ; 7470 ;--------------------------------- 7480 ; 7490 [200]#$FF; DX = -DX = NOT(DX) + 1 7500 [210]DX+1; NOT(MSB(DX)), SPEICHERN 7510 [202]DX 7520 [200]#$FF; NOT(LSB(DX)) 7530 [229]; 1 ADDIEREN 7540 [197]#$01; LSB(DX) = LSB(DX) + 1 7550 [210]DX 7560 [244]NOTINC1; => KEIN [213]EBERTRAG 7570 [201]DX+1; BEI [213]EBERTRAG: MSB(DX) = MSB(DX) +1 7580 ; 7590 NOTINC1 [202]#$FF; XADD = -1 = $FFFF 7600 [210]XADD; LSB 7610 [210]XADD+1; MSB 7620 [213]LINE2; ZUM NAECHSTEN [194]LOCK 7630 ; 7640 ;--------------------------------- 7650 ; 7660 LINE1 [202]#$01; XADD = +1 = $0001 7670 [210]XADD; LSB 7680 [202]#$00 7690 [210]XADD+1; MSB 7700 ; 7710 ;--------------------------------- 7720 ; 7730 LINE2 [202]DX+1; IST DX = 0 ? 7740 [246]LINE3; => DX <> 0 7750 [202]DX 7760 [246]LINE3; => DX <> 0 7770 ; 7780 ;--------------------------------- 7790 ; 7800 [202]#$00; REST = 0 = $00 7810 [210]REST; LSB 7820 [210]REST+1; MSB 7830 [213]LINE4; ZUM NAECHSTEN [194]LOCK 7840 ; 7850 ;--------------------------------- 7860 ; 7870 LINE3 [202]#$FF; REST = -1 = $FFFF 7880 [210]REST; LSB 7890 [210]REST+1; MSB 7900 ; 7910 ;--------------------------------- 7920 ; 7930 LINE4 [230]; DY = Y2 - Y1 7940 [202]Y2; LSB(Y2) 7950 [209]YWERT; MINUS YWERT 7960 [210]DY; SPEICHERN 7970 [202]#$00; MSB(Y2) = 0 7980 [209]#$00; MINUS 0 7990 [210]DY+1; SPEICHERN 8000 ; 8010 ;--------------------------------- 8020 ; 8030 [240]LINE5; => DY > 0 ; 7.[194]IT DES MSB IST ENTSCHEIDENT 8040 ; 8050 ;--------------------------------- 8060 ; 8070 [200]#$FF; DY = -DY = NOT(DY) + 1 8080 [210]DY+1; NOT(MSB(DY)), SPEICHERN 8090 [202]DY 8100 [200]#$FF; NOT(LSB(DY)) 8110 [229]; 1 ADDIEREN 8120 [197]#$01; 8130 [210]DY; SPEICHERN 8140 [244]NOTINC2; => KEIN [213]EBERTRAG 8150 [201]DY+1; [213]EBERTRAG => MSB(DY) = MSB(DY) + 1 8160 ; 8170 NOTINC2 [202]#$FF; YADD = -1 = $FF 8180 [210]YADD; SPEICHERN 8190 [213]LINE6; ZUM NAECHSTEN [194]LOCK 8200 ; 8210 ;--------------------------------- 8220 ; 8230 LINE5 [202]#$01; YADD = +1 8240 [210]YADD;ASPEICHERN 8250 ; 8260 ;--------------------------------- 8270 ; 8280 LINE6 [202]DY+1; IST DX > DY ? 8290 [196]DX+1; MSB [214]ERGLEICH 8300 [244]LINE7; => DX > DY 8310 [202]DY 8320 [196]DX; LSB [214]ERGLEICH 8330 [244]LINE7; => DX > DY 8340 ; 8350 ;--------------------------------- 8360 ; 8370 [202]#$FF; LIN = -1 = $FF 8380 [210]LIN; SPEICHERN 8390 [213]LINE8; ZUM NAECHSTEN [194]LOCK 8400 ; 8410 ;--------------------------------- 8420 ; 8430 LINE7 [202]#$01; LIN = +1 = $01 8440 [210]LIN; SPEICHERN 8450 ; 8460 ;--------------------------------- 8470 ; 8480 LINE8 [214]SET; [208]UNKT SETZEN 8490 ; 8500 ;--------------------------------- 8510 ; 8520 LINE9 [202]YWERT; IST Y1 = Y2 ? 8530 [196]Y2; VERGLEICHEN 8540 [246]LINE10; => Y1 <> Y2 8550 [202]XWERTL; IST X1 = X2 ? 8560 [196]X2L; LSB(X1) MIT LSB(X2) VERGLEICHEN 8570 [246]LINE10; => X1 <> X2 8580 [202]XWERTH 8590 [196]X2H; MSB(X1) MIT MSB(X2) VERGLEICHEN 8600 [246]LINE10; => X1 <> X2 8610 ; 8620 ;--------------------------------- 8630 ; 8640 [227]; Y1 = Y2 UND X1 = X2 => [197]NDE 8650 ; 8660 ;--------------------------------- 8670 ; 8680 LINE10 [202]REST+1; MSB(REST) , IST REST < 0 ? 8690 [241]ZWEIG1; => 7.[194]IT DES MSB GESETZT => REST < 0 8700 ; 8710 ;--------------------------------- 8720 ; 8730 ZWEIG2 [230]; REST >= 0 =>[160]REST = REST - DX 8740 [202]REST; LSB(REST) 8750 [209]DX; MINUS LSB(DX) 8760 [210]REST; SPEICHERN 8770 [202]REST+1; MSB(REST) 8780 [209]DX+1; MINUS MSB(DX) 8790 [210]REST+1; SPEICHERN 8800 ; 8810 [229]; Y1 = Y1 + YADD 8820 [202]YWERT; Y1 8830 [197]YADD; YADD ADDIEREN 8840 [210]YWERT; SPEICHERN 8850 ; 8860 ;--------------------------------- 8870 ; 8880 [202]LIN; IST LIN > 0 ? 8890 [241]LINE8; => LIN < 0 => [208]UNKT SETZEN 8900 [213]LINE9; => LINE => 0 8910 ; 8920 ;--------------------------------- 8930 ; 8940 ZWEIG1 [229]; REST = REST + DY 8950 [202]REST; LSB(REST) 8960 [197]DY; LSB(DY) ADDIEREN 8970 [210]REST; SPEICHERN 8980 [202]REST+1; MSB(REST) 8990 [197]DY+1; MSB(DY) ADDIEREN 9000 [210]REST+1; SPEICHERN 9010 ; 9020 [229]; X1 = X1 + XADD 9030 [202]XWERTL; LSB(X1) 9040 [197]XADD; LSB(XADD) ADDIEREN 9050 [210]XWERTL; SPEICHERN 9060 [202]XWERTH; MSB(X1) 9070 [197]XADD+1; MSB(XADD) ADDIEREN 9080 [210]XWERTH; SPEICHERN 9090 ; 9100 ;--------------------------------- 9110 ; 9120 [202]LIN; IST LIN < 0 ? 9130 [241]LINE9; => LIN < 0 9140 [213]LINE8; => LIN >= 0 => SET POINT 9150 ; 9160 ;--------------------------------- 9170 ; 9180 ;*** [211]PEICHERADRESSEN *** 9190 ; 9200 X1L [165]$00; LSB(X1) [218]WISCHENSPEICHER 9210 X1H [165]$00; MSB(X1) [218]WISCHENSPEICHER 9220 Y1 [165]$00; Y1 [218]WISCHENSPEICHER 9230 X2L [165]$00; LSB(X2) 9240 X2H [165]$00; MSB(X2) 9250 Y2 [165]$00; Y2 9260 REST [165]$00,$00; [210]EST 9270 LIN [165]$00,$00; [218]EIGER LIN 9280 DX [165]$00,$00; DX = X2 - X1 9290 DY [165]$00,$00; DY = Y2 - Y1 9300 XADD [165]$00,$00; X STEP: +1/-1 9310 YADD [165]$00,$00; Y STEP: +1/-1 9320 ; 10000 ;********************************* 10010 ;*** [195]HAR *** 10020 ;********************************* 10030 ; 10040 ;*** [204]ABELS *** 10050 ; 10060 [163]ERROR=$A437; [198]EHLERMELDUNG AUSGEBEN 10070 [163]FRMEVL=$AD9E; [194]ASICAUSDRUCK HOLEN 10080 [163]ERESTR=$B6A3; [211]TRINGVERWALTUNG 10090 [163]GETBYT=$B79E; LIEST 8-[194]IT INTEGER [215]ERT VON [194]ASICTEXT EIN 10100 [163]CHARHI=$D8; HIGH-[194]YTE DES [218]EICHENSATZSPEICHER 10110 ; 10120 ;*** [198]EHLERMELDUNG AUSGEBEN *** 10130 ; 10140 ILLERR [194]#14; [198]EHLERNUMMER IN [216] 10150 [213]ERROR; [198]EHLERMELDUNG AUSGEBEN: [201]LLEGAL [209]UANTITY [197]RROR 10160 ; 10170 ;*** [208]ARAMETER HOLEN *** 10180 ; 10190 ;*** [218]EILE AUS [194]ASICTEXT HOLEN *** 10200 ; 10210 CP [214]CHKCOM; AUF [203]OMMA PRUEFEN 10220 [214]GETBYT; [218]EILE NACH [216] HOLEN 10230 [192]#13; AUF [218]ULASSIGKEIT PRUEFEN 10240 [245]ILLERR; => [218]EILE >= 13 => [197]RROR 10250 [211]ZEILE; SPEICHERN 10260 ; 10270 ;*** [211]PALTE AUS [194]ASICTEXT HOLEN *** 10280 ; 10290 [214]CHKCOM; AUF [203]OMMA PRUEFEN 10300 [214]GETBYT; [211]PALTE NACH [216] HOLEN 10310 [192]#40; AUF [218]ULAESSIGKEIT PRUEFEN 10320 [245]ILLERR; => [211]PALTE >= 40 => [197]RROR 10330 [211]SPALTE; SPEICHERN 10340 ; 10350 ;*** [211]TRING AUF [194]ASICTEXT HOLEN *** 10360 ; 10370 [214]CHKCOM; AUF [203]OMMA PRUEFEN 10380 [214]FRMEVL; [211]TRING AUS [194]ASICTEXT HOLEN 10390 [214]ERESTR; [211]TRINGVERWALTUNG 10395 [247]ILLERR; [211]TRINGLAENGE = 0 ? => [197]RROR 10400 [210]STRLEN; [211]TRINGLAENGE SPEICHERN 10410 [202]$22; LSB DER [211]TRINGADRESSE 10420 [210]CHAR3+1; SPEICHERN 10430 [202]$23; MSB DER [211]TRINGADRESSE 10440 [210]CHAR3+2; SPEICHERN 10450 ; 10460 ;*** [210]ICHTUNG AUS [194]ASICTEXT HOLEN *** 10470 ; 10480 [214]CHKCOM; AUF [203]OMMA PRUEFEN 10490 [214]GETBYT; [210]ICHUNG IN [216] HOLEN 10500 ; 10510 ;*** [210]ICHTUNG AUSWERTEN *** 10520 ; 10530 ; CPX #$00 ; IST [210]ICHTUNG = 0 ? 10540 [247]WAAGRECHT; => [210]ICHTUNG = 0 10550 ; 10560 [202]#$40; [210]ICHTUNG SENKRECHT: [201]NKREMENT IST $0140 = 320 10570 [210]INCREM; LSB SPEICHERN 10580 [202]#$01 10590 [210]INCREM+1; MSB SPEICHERN 10600 [213]CHAR1; WEITER ZUR [194]ERECHNUNG 10610 ; 10620 WAAGRECHT [211]INCREM+1; [210]ICHTUNG WAAGRECHT: [201]NKREMENT = $0008 = 8; MSB 10630 [202]#$08; LSB 10640 [210]INCREM; SPEICHERN 10650 ; 10660 ;*** [208]OSITION IN DER [194]ITMAP BERECHNEN *** 10670 ; 10680 ;*** [218]EILE * 320 *** 10690 ; 10700 CHAR1 [202]#$00; LSB(HPOINT) = 0 10710 [210]HPOINT+1; SPEICHERN 10720 ; 10730 [202]ZEILE; [218]EILE IN [193]KKU; [193]KKU(ZEILE)*5=[193]KKU*4+[218]EILE 10740 [203]; * 2 10750 [203]; * 2 10760 [197]ZEILE; + [218]EILE 10770 ; 10780 [205]; [193]KKU(5*[218]EILE)*64 = [193]KKU*256/4 10790 [208]HPOINT+1; => LSB -> MSB UND 16-[194]IT [196]IVISION MIT 4 10800 [205] 10810 [208]HPOINT+1 10820 [197]#>(BITMAP); [193]KKU(320*[218]EILE)+[194]ITMAP 10830 [210]HPOINT+2 10840 ; 10850 ;*** [211]PALTE * 8 + [200]POINT *** 10860 ; 10870 [202]SPALTE; [211]PALTE IN [193]KKU HOLEN 10880 [203]; * 2 10890 [203]; * 2 10900 [203]; * 2 10910 [244]ADDSPALTE; [213]EBERTRAG ? 10920 [201]HPOINT+2; MSB(HPOINT) + 1 10925 [229]; [213]EBERTRAG LOESCHEN 10930 ADDSPALTE [197]HPOINT+1; LSB(HPOINT) = LSB(HPOINT) + [211]PALTE * 8 10940 [210]HPOINT+1; SPEICHERN 10950 [244]CHANGESTR; [213]EBERTRAG ? 10960 [201]HPOINT+2; MSB(HPOINT) + 1 10970 ; 10980 ;*** [211]TRING AUSLESEN UND WANDELN *** 10990 ; 11000 CHANGESTR [195]#$00; [201]NDEX = 0 11010 STRLOOP [212]INDEX; SPEICHERN 11020 ; 11030 CHAR3 [202]$FFFF,Y; Y-TES [218]EICHEN VON [211]TRING AUSLESEN 11040 ; 11050 ;*** [211]TRING WANDELN *** 11060 ; 11070 [241]CHAR5; [218]EICHEN > 128 11080 [196]#32; < 32 ? ODER = <[211]PACE> ? 11090 [247]CHAR6; <[211]PACE> -> BLEIBT UNVERAENDERT 11110 [244]NEXTY; [211]TEUERZEICHEN UEBERSPRINGEN 11120 CHAR11 [196]#64; < 64 ; [211]ONDERZEICHEN ? 11130 [244]CHAR6; [211]ONDERZEICHEN BLEIBEN UNVERAENDERT 11140 [196]#96; < 96 ; [203]LEINBUCHSTABE ? 11150 [245]CHAR4; 96 =< [218]EICHEN < 128 => 5. [194]IT LOESCHEN 11160 [198]#%10111111; 6. [194]IT LOESCHEN, DA [203]LEINBUCHSTABE 11170 [213]CHAR6; WEITERMACHEN 11180 CHAR4 [198]#%11011111; 5. [194]IT LOESCHEN, DA [199]ROSSBUCHSTABE 11190 [213]CHAR6; WEITERMACHEN 11200 CHAR5 [196]#160; < 160 ? [211]TEUERZEICHEN ? 11210 [244]NEXTY; [211]TEUERZEICHEN UEBERSPRINGEN 11220 [247]CHAR6; <2. [211]PACE> -> BLEIBT UNVERAENDERT 11230 [196]#192; < 192 ? [199]RAFIKZEICHEN ? 11240 [245]CHAR7; [196]OPPELBELEGUNG 11250 [200]#%11000000; 6. UND 7. [194]IT UMKEHREN 11260 [213]CHAR6; WEITERMACHEN 11270 CHAR7 [196]#224; =< 224 ? [199]ROSSBUCHSTABEN ([196]OPPELBELEGUNG) 11280 [247]CHAR9; <3. [211]PACE> 11300 [198]#%01111111; 7. [194]IT LOESCHEN 11320 [196]#127; [195]ODE = 255 (=127 DA 7. [194]IT GELOESCHT) 11330 [246]CHAR6; WEITER 11340 [202]#94; 255 -> 94 11350 [213]CHAR6; [199]RAFIKZEICHEN, WEITERMACHEN 11360 CHAR9 [202]#32; <3. [211]PACE> 11385 ; 11390 ;*** [195]HAR POINTER IM [218][211][193] BERECHENEN *** 11400 ; 11410 CHAR6 [194]#$00; MSB(MVCHAR) = 0 11420 [211]MVCHAR+2; SPEICHERN 11430 ; 11440 [203]; MVCHAR * 8 11450 [207]MVCHAR+2 11460 [203] 11470 [207]MVCHAR+2 11480 [203] 11490 [207]MVCHAR+2; GLEICHZEITIG [195]ARRY-[198]LAG LOESCHEN 11500 [210]MVCHAR+1; LSB SPEICHERN 11510 [202]#CHARHI; MSB VON [195]HARACTER-[210][207][205] 11520 [197]MVCHAR+2; ADDIEREN 11530 [210]MVCHAR+2; MSB SPEICHERN 11540 ; 11550 ;*** [218]EICHEN AUS [218][211][193] IN [194]ITMAP SCHREIBEN *** 11560 ; 11570 [232]; [201]NTERRUPT SPERREN 11580 [202]$01; [208]ROZESSORPORT AUSLESEN 11590 [210]PROCESSOR; [201]NHALT SICHERN 11600 [198]#%11111011; [218][211][193]-[210][207][205] ZUM [204]ESEN FREIGEBEN 11610 [210]$01; ZURUECKSCHREIBEN 11620 ; 11630 [195]#$07; [201]NDEX FUER 8 [211]CHLEIFENDURCHLAEUFE 11640 MVCHAR [202]$FFFF,Y; [194]YTE AUS [218][211][193]-[210][207][205][160]AUSLESEN 11650 HPOINT [210]$FFFF,Y; [194]YTE IN [194]ITMAP SCHREIBEN 11660 [236]; [201]NDEX ERNIEDRIEGEN 11670 [240]MVCHAR; SCHON FERTIG ? => [206]EIN, [211]PRUNG NACH MVCHAR 11680 ; 11690 [202]PROCESSOR; ALTEN [208]ROZESSORPORTZUSTAND WIEDER HOLEN 11700 [210]$01; SPEICHERN 11710 [231]; [201]NTERRUPT WIEDER FREIGEBEN 11720 ; 11730 ;*** [194]ITMAP UM [201]NKREMENT ERHOEHEN *** 11740 ; 11750 [229]; HPOINT + INCREMENT 11760 [202]HPOINT+1; LSB 11770 [197]INCREM; ADDIEREN 11780 [210]HPOINT+1; SPEICHERN 11790 [202]HPOINT+2; MSB 11800 [197]INCREM+1; ADDIEREN 11810 [210]HPOINT+2; SPEICHERN 11820 ; 11830 NEXTY [195]INDEX; [201]NDEX IN [217] 11840 [237]; + 1 11850 [193]STRLEN; IST [201]NDEX SCHON [211]TRINGLAENGE ? 11860 [247]CHAREND; [201]NDEX = [211]TRINGLAENGE => [210]OUTINENENDE 11870 [213]STRLOOP; => [201]NDEX < [211]TRINGLAENGE 11880 ; 11890 CHAREND [227]; [201]NDEX = [211]TRINGLAENGE => [210]OUTINENENDE 11900 ; 11910 ;*** [200]ILFSZELLEN *** 11920 ; 11930 ZEILE [165]$00; [218]EILE 11940 SPALTE [165]$00; [211]PALTE 11950 STRLEN [165]$00; [211]TRINGLAENGE 11960 INDEX [165]$00; [201]NDEX 11970 INCREM [165]$00,$00; [201]NCREMENT 11980 PROCESSOR [165]$00; [208]ROZESSORPORTZUSTAND 11990 ; 12000 ;****************** 12010 ;*** [200]ARDCOPY *** 12020 ;****************** 12030 ; 12040 ;*** [204]ABELS *** 12050 ; 12060 [163]SETFLS=$FFBA; [198]ILEPARAMETER SETZEN 12070 [163]OPEN=$FFC0; [198]ILE EROEFFNEN 12080 [163]CLOSE=$FFC3; [198]ILE SCHLIESSEN 12090 [163]CHKOUT=$FFC9; [195][205][196]-[205]ODUS EIN 12100 [163]CLRCH=$FFCC; [195][205][196]-[205]ODUS AUS 12110 [163]PRINT=$FFD2; [218]EICHEN AUSGEBEN 12120 ; 12130 ;*** [205]AKROS *** 12140 ; 12150 [161]ESC; [197][211][195]-[211]EQUENZ UEBERMITTELN 12160 [202]#$1B; [197][211][195]-[211]EQUENZ 12170 [214]PRINT; [218]EICHEN ZUM [196]RUCKER SENDEN 12180 [162] 12190 ; 12200 [161]CR; [195][210]-[211]EQUENZ UEBERMITTELN 12210 [202]#$0D; [195][210]-[211]EQUENZ 12220 [214]PRINT; [218]EICHEN ZUM [196]RUCKER SENDEN 12230 [162] 12240 ; 12250 [161]INIT; [196]RUCKER INITIALISIEREN 12260 ESC; [197][211][195] @ ; 27 64 ; $1B $40 12270 [202]#$40; @ 12280 [214]PRINT; [218]EICHEN ZUM [196]RUCKER SENDEN 12290 CR 12300 [162] 12310 ; 12320 ;*** [207][208][197][206] 4,4,1 : [195][205][196] 4 *** 12330 ; 12340 HC [202]#$04; LOGISCHE [198]ILENUMMER 12350 [194]#$04; [199]ERAETEADRESSE 4 FUER [196]RUCKER 12360 [195]#$01; [211]EKUNDAERADRESSE 1 FUER [204]INEARKANAL 12370 [214]SETFLS; [198]ILEPARAMETER SETZEN 12380 [214]OPEN; [198]ILE EROEFFNEN 12390 [194]#$04; LOGISCHE [198]ILENUMMER 12400 [214]CHKOUT; [195]OMMUNICATIONN DIRECT EIN 12410 ; 12420 ;*** [197][211][195] @, [197][211][195] 3 N, [197][211][195] L N *** 12430 ; 12440 INIT; [197][211][195] @, [196]RUCKER INITIALISIEREN 12450 ; 12460 ESC; [197][211][195] 3 N (N = 24), [218]EILENVORSCHUB AUF 24/216 [218]OLL 12470 [202]#$33; '3' 12480 [214]PRINT; [218]EICHEN '3' ZUM [196]RUCKER SENDEN 12490 [202]#$18; N = $18 = 24 12500 [214]PRINT; [195][200][210]$(24) ZUM [196]RUCKER SENDEN 12510 CR 12520 ; 12530 ESC; [197][211][195] L N (N = 12), LINKER [210]AND BEI 12 SETZEN 12540 [202]#$6C; 'L' 12550 [214]PRINT; [218]EICHEN 'L' ZUM [196]RUCKER SENDEN 12560 [202]#$0C; N = $0C = 12 12570 [214]PRINT; [195][200][210]$(12) ZUM [196]RUCKER SENDEN 12580 CR 12590 ; 12600 ;*** [210]OUTINENVARIABLEN INITIALISIEREN *** 12610 ; 12620 [202]#<(BITMAP); [194]ITMAPADRESSE IM [196]UMMY SCHREIBEN 12630 [210]DUMMY+1; LSB 12640 [202]#>(BITMAP) 12650 [210]DUMMY+2; MSB 12660 ; 12670 [202]#$0C; 12 [218]EILEN 12680 [210]LINE; SPEICHERN 12690 ; 12700 ;*** [199]RAFIK EINSCHALTEN: [197][211][195] [204] N1 N2 *** 12710 ; 12720 LNLOOP ESC 12730 [202]#$4C; '[204]' 12740 [214]PRINT; [218]EICHEN '[204]' ZUM [196]RUCKER SENDEN 12750 [202]#$80; N1 = $80 = 128 = LSB 12760 [214]PRINT; [195][200][210]$(128) ZUM [196]RUCKER SENDEN 12770 [202]#$02; N2 = $02 = 2 = MSB 12780 [214]PRINT; [195][200][210]$(2)[160]ZUM [196]RUCKER SENDEN 12790 ; 12800 ;*** [194]LOCK INDEX *** 12810 ; 12820 [202]#40; 40 [194]LOECKE 12830 [210]BLOCK; SPEICHERN 12840 ; 12850 ;*** EIN 8-[194]YTE [194]LOCK SPEIGELN *** 12860 ; 12870 BKLOOP [195]#$00; [194]LOCKSCHLEIFE 12880 TURN1 [194]#$00 12890 DUMMY [202]$FFFF,Y; [194]ITMAPBYTE IN [193]KKU EINLESEN 12900 TURN2 [203]; [194]IT AUS [194]ITMAPBYTE AUSLESEN 12910 [207]CHR,X; [194]IT IN [196]RUCKERBYTE REINSCHIEBEN 12920 [239] 12930 [192]#$08; IST [216] SCHON 8 ? 12940 [246]TURN2; => [216] <> 8 => [194]ITMAPBYTES NOCH NICHT ABGEARBEITET 12950 [237] 12960 [193]#$08; IST [217] SCHON 8 ? 12970 [246]TURN1; => [217]<> 8 => [196]RUCKERBYTES NOCH NICHT FERTIG 12980 ; 12990 ;*** 8-[194]YTE [194]LOCK DRUCKEN *** 13000 ; 13010 [194]#$00; [201]NDEX AUF 0 SETZEN 13020 PRNT [202]CHR,X; X-TES [196]RUCKERBYTE IN [193]KKU 13030 [214]PRINT; [194]YTE DRUCKEN 13040 [214]PRINT; [194]YTE DRUCKEN 13050 [239]; [201]NDEX ERHOEHEN 13060 [192]#$08; IST [216] SCHON 8 ? 13070 [246]PRNT; => [216] <> 8 => NAECHSTES [194]YTE DRUCKEN 13080 ; 13090 ;*** [211]CHLEIFENFORTSCHALTUNG *** 13100 ; 13110 [229]; [194]ITMAPBYTE + 8 13120 [202]DUMMY+1; LSB 13130 [197]#$08; 8 ADDIEREN 13140 [210]DUMMY+1; SPEICHERN 13150 [244]NOTINC; KEIN [213]EBERTRAG 13160 [201]DUMMY+2; => [213]EBERTRAG, MSB(DUMMY) + 1 13170 ; 13180 NOTINC [199]BLOCK; BLOCK = BLOCK - 1 13190 [246]BKLOOP; IST [194]LOCK SCHON 0 ? => [194]LOCK <> 0 13200 ; 13210 ;*** [195][210] SENDEN *** 13220 ; 13230 CR 13240 ; 13250 ;*** [211]CHLEIFENFORTSCHALTUNG *** 13260 ; 13270 [199]LINE; LINE = LINE - 1 13280 [246]LNLOOP; IST [204]INE SCHON 0 ? => [204]INE <> 0 13290 ; 13300 ;*** [206][207][212]([195][205][196] 4) : [195][204][207][211][197] 4 *** 13310 ; 13320 INIT; [196]RUCKER INITIALISIEREN 13330 [214]CLRCH; [195]OMMUNICATION DIRECT AUS 13340 [202]#$04; LOGISCHE [198]ILENUMMER 13350 [214]CLOSE; [198]ILE SCHLIESSEN 13360 ; 13370 [227]; [210]OUTINENENDE 13380 ; 13390 ;*** [200]ILFSZELLEN *** 13400 ; 13410 CHR [165]$00,$00,$00,$00; [196]RUCKERBYTES 13420 [165]$00,$00,$00,$00 13430 BLOCK [165]$00; [194]LOCKINDEX 13440 LINE [165]$00; [204]INEINDEX 13450 ; 14000 ;********************** 14010 ;*** [211]AVE-[210]OUTINE *** 14020 ;********************** 14030 ; 14040 ;*** [204]ABELS *** 14050 ; 14060 [163]LISTEN=$FFB1; [198]LOPPY ZUM [197]MPFANG SCHALTEN 14070 [163]SALIST=$FF93; [211]EKUNDAERADRESSE FUER [204][201][211][212][197][206] 14080 [163]CLSFILE=$F642; [198]ILE SCHLIESSEN 14090 [163]SENDNM=$F3D5; [198]ILENAME FUER [204][201][211][212][197][206] UND [212][193][204][203] 14100 [163]IECOUT=$FFA8; [194]YTE AUF SERIELLEM [194]US AUSGEBEN 14110 ; 14120 [163]ADRESS1=$FA; [218][208]-[211]PEICHER FUER LSB([194]ITMAPBYTE) 14130 [163]ADRESS2=$FB; [218][208]-[211]PEICHER FUER MSB([194]ITMAPBYTE) 14140 ;*** [205]AKRO *** 14150 ; 14160 [161]FILENAME; [198]ILENAME UEBERMITTELN 14170 [214]CHKCOM; AUF [203]OMMA PRUEFEN 14180 [214]FRMEVL; [211]TRING HOLEN 14190 [214]ERESTR; [211]RTINGVERWALTEN 14200 ; 14210 [210]$B7; [198]ILENAMENLAENGE SPEICHERN 14220 [202]$22; LSB DER [193]DRESSE AUF DEN [198]ILENAMEN 14230 [210]$BB; IN [218][208]-[218]EIGER AUF [198]ILENAME SPEICHERN 14240 [202]$23; MSB 14250 [210]$BC; IN [218][208]-[218]EIGER AUF [198]ILENAME SPEICHERN 14260 [162] 14270 ; 14280 ;*** [198]ILE EROEFFNEN *** 14290 ; 14300 SA FILENAME; [198]ILENAME UEBERMITTELN 14310 ; 14320 [202]#$08; [199]ERAETEADRESSE 14330 [210]$BA; [218][208]-[218]EIGER FUER AKTUELLES [199]ERAET 14340 [202]#$61; [211]EKUNDAERADRESSE 1 FUER [211]PEICHERN + $60 14350 [210]$B9; [218][208]-[218]EIGER FUER AKTUELLE [211]EKUNDAERADRESSE 14360 ; 14370 [214]SENDNM; [198]ILENAME SENDEN 14380 ; 14390 [202]$BA; [199]ERAETEADRESSE 14400 [214]LISTEN; [204]ISTEN SENDEN 14410 [202]$B9; [211]EKUNDAERADRESSE 14420 [214]SALIST; [211]EKUNDAERADRESSE SENDEN 14430 ; 14440 ;*** [208]ROGRAMMADRESSE $8000 *** 14450 ; 14460 [202]#<(BITMAP); LSB(BITMAP) 14465 [210]ADRESS1; IN [218][208] SCHREIBEN 14470 [214]IECOUT; AUF SERIELLEN [194]US AUSGEBEN 14480 [202]#>(BITMAP); MSB(BITMAP) 14485 [210]ADRESS2; IN [218][208] SCHREIBEN 14490 [214]IECOUT; AUF SERIELLEN [194]US AUSGEBEN 14500 ; 14510 ;*** [194]ITMAP SPEICHERN *** 14520 ; 14580 [194]#$0F; $0F00 [194]ITMAPBYTES SPEICHERN 14590 SAVE2 [195]#$00; INNERE [211]CHLEIFE 14600 SAVE1 [202](ADRESS1),Y; [194]ITMAPBYTE IN [193]KKU HOLEN 14610 [214]IECOUT; AUF SERIELLEN [194]US AUSGEBEN 14620 [237] 14630 [246]SAVE1; SCHON 256 [194]YTES AUSGEGEBEN ? 14640 [201]ADRESS2; ADRESS2 = ADRESS2 + 1 14650 [238]; AEUSSEREN [211]CHLEIFENINDEX UM 1 ERNIEDRIGEN 14660 [246]SAVE2; SCHON $0F00 [194]YTES ABGESPEICHERT? 14670 ; 14680 ;*** [198]ILE SCHLIESSEN *** 14690 ; 14700 [214]CLSFILE; [198]ILE SCHLIESSEN 14710 ; 14720 [227]; [210]OUTINENENDE 14730 ; 15000 ;********************** 15010 ;*** [204]OAD-[210]OUTINE *** 15020 ;********************** 15030 ; 15040 ;*** [204]ABELS *** 15050 ; 15060 [163]TALK=$FFB4; [212][193][204][203] SENDEN 15070 [163]SATALK=$FF96; [211]EKUNDAERADRESSE FUER [212][193][204][203][160]SENDEN 15080 [163]IECIN=$FFA5; [218]EICHEN VON SERIELLEN [194]US HOLEN 15090 [163]STATUS=$90; [211]TATUSBYTE [211][212] 15100 ; 15110 ;*** [198]ILE EROEFFNEN *** 15120 ; 15130 LO FILENAME; [198]ILNAME UEBERMITTELN 15140 ; 15150 [202]#$08; [199]ERAETEADRESSE 15160 [210]$BA; [218][208]-[218]EIGER FUER AKTUELLES [199]EREAET 15170 [202]#$60; [211]EKUNDAERADRESSE 0 + $60 15180 [210]$B9; [218][208]-[218]EIGER FUER AKTUELLE [211]EKUNDAERADRESSE 15190 ; 15200 [214]SENDNM; [198]ILENAMEN SENDEN 15210 ; 15220 [202]$BA; [199]ERAETEADRESSE 15230 [214]TALK; [212]ALK SENDEN 15240 [202]$B9; [211]EKUNDAERADRESSE 15250 [214]SATALK; [211]EKUNDAERADRESSE FUER [212]ALK SENDEN 15260 ; 15270 ;*** [208]ROGRAMMADRESSE UEBERLESEN *** 15280 ; 15290 [214]IECIN; [194]YTE VON SERIELLEN [194]US EINLESEN 15300 [214]IECIN; [194]YTE VON SERIELLEN [194]US EINLESEN 15310 ; 15320 ;*** [194]ITMAP EINLESEN *** 15330 ; 15340 [202]#<(BITMAP); [194]ITMAPADRESSE IN [218][208] SCHREIBEN 15350 [210]ADRESS1; LSB 15360 [202]#>(BITMAP) 15370 [210]ADRESS2; MSB 15380 ; 15390 [194]#$0F; AEUSSEREN [211]CHLEIFENZAEHLER AUF $0F SETZEN 15400 [195]#$00; INNEREN [211]CHLEIFENZAEHLER AUF $00 SETZEN 15410 LOAD1 [214]IECIN; [194]YTE VON SERIELLEN [194]US EINLESEN 15420 [210](ADRESS1),Y; [194]YTE IN [194]ITMAP SCHREIBEN 15430 [202]STATUS; [211]TATUSBYTE [211][212] EINLESEN 15440 [246]LOAD2; => [197][207][198] ([197]ND OF [198]ILE) 15450 [237] 15460 [246]LOAD1; IST INNERE [211]CHLEIFEN SCHON ABGEADREITET ? 15470 [201]ADRESS2; MSB(ADRESS) = MSB(ADRESS) + 1 15480 [238] 15490 [246]LOAD1; SCHON ALLE [194]YTES EINGELESEN ? (-> LOAD1, DA Y=0) 15500 ; 15510 ;*** [198]ILE SCHLIESSEN *** 15520 ; 15530 LOAD2 [214]CLSFILE; [198]ILE SCHLIESSEN 15540 ; 15550 [227]; [210]OUTINENENDE 15560 ; 15570 ;*** [197]NDE DES [211]OURCETEXTES *** 15580 ;