100 "; ******************* 110 "; * * 120 "; * AUTOSTART FUER * 130 "; * * 140 "; * * 150 "; * BASICPROGRAMME * 160 "; * * 170 "; * AUF C64, V1.0 * 180 "; * * 190 "; ******************* 200 "; 210 "; 220 "; 240 "; 250 "; 260 "; 270 "; 280 " .BA $C900 290 " ; 300 " ; 310 " ;RAMADRESSEN 320 " ;*********** 330 " ; 340 " ; 350 "BASBL =$0308 ;ENTHALTEN EINSPRUNGADRESSE FUER BASICBEFEHLE 360 "BASBH =$0309 370 " ; 380 "MBASBL =$C900 ;ZWISCHENSPEICHER FUER ALTEN BASICEINSPRUNG 390 "MBASBH =$C901 400 " ; 410 "NBASBL =$29 ;NEUE EINSPRUNGADRESSE FUER BASICBEFEHLE 420 "NBASBH =$C9 ;IST $C929 430 " ; 440 "FILENR =$02 ;LOGISCHE FILENUMMER 450 "SEKADR =$02 ;SEKUNDAERADRESSE 460 "GERNR =$08 ;ENTHAELT GERAETENUMMER 470 " ; 480 "BASZEIL =$7A ;ZEIGER AUF ZEICHEN IM BASICTEXT 490 "BASZEIH =$7B ;WIRD BEI CHRGET ERHOEHT, BLEIBT BEI CHRGOT KONST 500 " ; 510 "PRGENDL =$2D ;PROGRAMMENDEZEIGER 520 "PRGENDH =$2E ;WIRD NACH LOAD JEWEILS GESETZT 530 " ; 540 " ; 550 " ;BETRIEBSSYSTEMADRESSEN 560 " ;********************** 570 " ; 580 " ; 590 "CHRGET =$0073 ;HOLT ZEICHEN AUS TEXT 600 "CHRGOT =$0079 ;HOLT LETZTES ZEICHEN AUS TEXT 610 "GETNAME =$E257 ;HOLT FILENAMEN 620 "SYNTAX =$AF08 ;SYNTAX ERROR 630 "INTSCHL =$A7AE ;INTERPRETERSCHLEIFE 640 " ; 650 "LOAD =$FFD5 ;LOAD-ROUTINE 660 "RUN =$A659 ;RUN-ROUTINE 670 "SETFIL =$FFBA ;SETZT FILEPARAMETER 680 "ERRAUS =$E0F9 ;FEHLERAUSWERTUNG NACH LOAD-ROUTINE 690 " ; 700 " ; 710 " ;INIT 720 " ;**** 730 " ; 740 " ; 750 " .BY $E4 ;DEFAULTWERT BASICZEIGER $A7E4 760 " .BY $A7 770 " SEI 780 " LDA BASBL ;LOWZEIGER PRUEFEN 790 " CMP #NBASBL 800 " BNE INIT ;UNGLEICH, DANN INIT 810 " LDA BASBH ;HIGHZEIGER VERGLEICHEN 820 " CMP #NBASBH 830 " BEQ RUECK 840 "INIT LDA BASBL ;ALTEN ZEIGER MERKEN, LOWBYTE 850 " STA MBASBL ;IN $C900 SPEICHERN 860 " LDA BASBH ;HIGH-BYTE 870 " STA MBASBH ;IN $C901 SPEICERN 880 " LDA #NBASBL ;NEUEN BASICZEIGER SETZEN 890 " STA BASBL ;LOWBYTE $29 IN $0308 SPEICHERN 900 " LDA #NBASBH 910 " STA BASBH ;HIGHBYTE $C9 IN $0309 SPEICHERN 920 "RUECK CLI 930 " RTS 940 " ; 950 " ; 960 " ;NEUER EINSPRUNG 970 " ;*************** 980 " ; 990 " ; 1000 " JSR CHRGET 1010 " CMP #'! ;AUSRUFEZEICHEN ? 1020 " BEQ FOUND ;JA, DANN EIGENE ROUTINE 1030 " 1040 " LDX BASZEIL ;BASICZEIGER LOW 1050 " BNE LAB1 1060 " DEC BASZEIH ;BASICZEIGER HIGH DEKREMENTIEREN, WENN LOW=0 1070 "LAB1 DEC BASZEIL ;BASICZEIGER LOW DEKREMENTIEREN 1080 " JMP (MBASBL) ;INTERPRETERBEFEHL AUSFUEHREN 1090 "FOUND JSR CHRGET ;ZEIGER AUF ERSTES ZEICHEN SETZEN 1100 " JSR GETNAME ;HOLT FILENAMEN 1110 " LDY #SEKADR ;SEKUNDAERADRESSE 2 1120 " LDA #FILENR ;FILENUMMER 2 1130 " LDX #GERNR ;GERAETENUMMER 8 = FLOPPY 1140 " JSR SETFIL ;SETZT FILEPARAMETER 1150 " LDA #$00 ;ZEIGT LOAD AN; $01 FUER VERIFY 1160 " JSR LOAD ;LOADROUTINE 1170 " BCC OK ;FEHLERAUSGABE 1180 " JMP ERRAUS ;FEHLERMELDUNG AUSGEBEN 1190 "OK STX PRGENDL ;ENDEZEIGER SPEICHERN 1200 " STY PRGENDH 1210 " JSR RUN ;PROGRAMM STARTEN 1220 " JMP INTSCHL ;ZURUECK ZUR INTERPRETERSCHLEIFE 1230 " ; 1240 " ; 1250 " ;OLD 1260 " ;*** 1270 " ; 1280 " ; 1290 " LDA BASBL ;BASICZEIGER PRUEFEN; LOW 1300 " CMP #NBASBL ;GLEICH NEUEM ZEIGER 1310 " BNE BACK ;UNGLEICH, DANN RUECKSPRUNG 1320 " LDA BASBH ;HIGHBYTE VERGLEICHEN 1330 " CMP #NBASBH ;GLEICH NEUEM ZEIGER ? 1340 " BNE BACK 1350 " SEI 1360 " LDA MBASBL ;ALTER ZEIGER, LOW 1370 " STA BASBL 1380 " LDA MBASBH ;ZEIGER HIGH 1390 " STA BASBH ;ORIGINALZEIGER ZURUECKHOLEN 1400 " CLI 1410 "BACK RTS