home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
sh3x
/
sh33b.d64
/
uncover.src
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
3KB
|
153 lines
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