10 .OS 20 .BA$C200 30 BIND .DE$A533 40 NUMOUT .DE$BDCD 50 BSOUT .DE$E10C 60 TEXTANF .DE$002B 70 VARANF .DE$002D 80 FELDANF .DE$002F 90 FELDEND .DE$0031 100 L1 .DE$0050 110 H1 .DE$0051 120 L2 .DE$0052 130 H2 .DE$0053 140 L3 .DE$0054 150 H3 .DE$0055 160 VORSCH .DE$0056 170 MEM .DE$0334 180 ENDLDY # 0 190 S0 LDA L1,Y ;SPEICHERN DER 200 STA MEM,Y ;ZEROPAGE-ZEIGER 210 INY 220 CPY # 7 230 BNE S0 240 CLC 250 ;AUSLOTEN DES BASICPROGRAMMENDES 260 JSR BIND 270 LDY #0 280 LDA TEXTANF, Y ;UEBERTRAGEN 290 STA L1 ;DES BASICZEIGERS 300 INY ;ZUR FREIEN 310 LDA TEXTANF, Y ;BENUTZUNG 320 STA H1 330 DEY 340 LDA(L1),Y ;ZEIGT AUF DEN 350 ;1.LINKPOINTER,LOWBYTE 360 STA L3 ;MERKEN 370 INY 380 LDA(L1),Y ;1.LP,HIBYTE 390 STA H3 ;MERKEN 400 S1 LDA(L3),Y ;ZEIGT AUF NAECHSTEN 410 ;LINKPOINTER(HI-BYTE!) 420 ;IST DIESES NULL, SO IST TEXTEN- 430 ;DE AUSREICHEND NACHGEWIESEN 440 BEQ S6 ;DANN WEITER 450 PHA 460 DEY ;ZEIGER 470 LDA (L3),Y;AUF NEUE L.P. 480 STA L3 ;-ADRESSE 490 INY 500 PLA ;AKTUALISIEREN 510 STA H3 520 BNE S1 ;VON VORNE 530 ;** 540 ;** 550 ;PRUEFEN DER EINZELNEN 560 ;BASICZEILEN 570 S6 LDY #$01 580 LDA(L1),Y ;IST LETZTE ZEILE 590 BEQ SCHLUSS ;FERTIGPRINT 600 LDY # $04 ;BYTE DIREKT NACH 610 LDA(L1),Y ;ZEILENNUMMER 620 BEQ KORREKTUR 630 ;(FALLS NEXTULL) 640 LDY #$01 650 LDA(L1),Y ;ZEIGER ANHAND DES 660 PHA ;LINKPOINTERS 670 DEY ;AUF NAECHSTE 680 LDA(L1),Y ;ZEILE RICHTEN 690 STA L1 700 PLA 710 STA H1 720 BNE S6 730 ;** 740 ;** 750 KORREKTUR INY 760 TEST: INY 770 LDA(L1),Y 780 CMP #":" ;TEST AUF DOPPELPUNKT 790 CLC 800 BEQ TEST: 810 CMP # $0 ;NUR ":"PRINTPRINT 820 BNE =+1 830 DEY 840 STY VORSCH ;VORSCHUB BEIM 850 ;VERSCHIEBEN 860 CLC 870 LDA L1 880 STA L2 890 LDA H1 900 STA H2 910 S8 LDY VORSCH ;VERSCHIEBEROUTINE 920 LDA(L2),Y 930 LDY #$04 940 STA(L2),Y 950 INC L2 960 BNE S8 970 LDA H2 980 CMP H3 ;SCHON AM TEXTENDEPRINT 990 BEQ S9 1000 INC H2 1010 BNE S8 1020 S9 SEC 1030 TYA 1040 SBC VORSCH 1050 ADC L3 ;ZEIGER AUF TEXT- 1060 BCS = + 2 ;ENDE DEKREMENTIEREN 1070 DEC H3 1080 CLC 1090 STA L3 1100 ;** 1110 ;** 1120 ;ZEILENNUMMERNAUSGABE 1130 LDA #$20 1140 JSR BSOUT 1150 LDY #$02 1160 LDA (L1),Y ;LOW- 1170 TAX 1180 INY 1190 LDA (L1),Y ;&HI-BYTE DER Z.N. 1200 JSR NUMOUT ;IN A/X AUSGEBEN 1210 LDA $D3 ;CURSORSPALTE 1220 CMP #$21 ;CRSR ZU WEIT RECHTSPRINT 1230 CLC 1240 BMI = + 5 1250 LDA #$0D ;IN DIESEM FALL 1260 JSR BSOUT ;CARRIAGE RETURN 1270 JSR BIND 1280 CLV ;(RUECKSPRUNG SICHERN) 1290 BVC RET 1300 SCHLUSS ;VORBEREITUNG DES BASIC- 1310 LDA #$2 1320 ADC L1 ;ERHOEHUNG UM 2 1330 BCC = +2 ;ZEIGT DANN AUF BEGINN 1340 INC H1 ;DER VARIABLEN ETC. 1350 CLC 1360 STA VARANF ;KORREKTUR DER ZEIGER 1370 STA FELDANF 1380 STA FELDEND 1390 LDA H2 1400 STA VARANF+1 1410 STA FELDANF+1 1420 STA FELDEND+1 1430 LDY #$0 1440 T0 LDA MEM,Y ;URSPR.WERTE ZURUECK 1450 STA L1,Y ;IN ZERO-PAGE 1460 INY 1470 CPY # 7 1480 BNE T0 1490 CLC 1500 ;BACK TO BASIC 1510 RTS 1520 .EN