RR

* START NACH RESET

*

* Beispiel fuer Maschinenprogramne

EEE

*

BOOT Eau 9 }2:Cass-Boot D.K.

CASINI EQU $02 ;Vektor Init. nach RESET
SDLSTL EBU $230 ;Zeiger auf D-List
VEOUNT EQU $D40B ;Rasterzeile

COLBK EQU $DO1A ;Hintergrund
*

DRG $0600

*
LDA #2 Cass-Boot
STA BOOT vortaeuschen

LDA #START:L Start-Adresse
STA CASINI eintragen
LDA #START:H
STA CASINI+

*

* Einsprung nach RESET
*

START LDA #DLIST:L Display-List
STA SDLSTL aktivieren
LDA #DLIST:H jetzt MSB
STA SDLSTL+1

ENDLOS LDA VCOUNT und ein wenig
STA COLBK Farbe
JMP ENDLOS

*

* einfache Displaylist

+

DLIST DFB $70,$70,$70,$70,$70,$70
DFB $70,%70,$70,$70,$70,$46
DFB SCR:L,SCR:H,$41
DFW DLIST

SCR ASC % PROGRAMM LAEUFT... %107 REM RR

11 REM * NEUSTART BEI RESET

12 REM *

13 REM * P. FINZEL 1986

14 REM GrRs

20 IF PEEK(1536)=32 THEN 30

21 FOR A=1536 TO 1591:READ D

22 POKE A,D:NEXT A

23 DATA 32,255,255,162,0,142,47,2
24 DATA 169,11,157,66,3,169,50,157
25 DATA 68,3,169,6,157,69,3,169,6
26 DATA 157,72,3,169,0,157,73,3,32
27 DATA 86,228,169,0,133,84,133,85
28 DATA 133,86,169,13,141,74,3,96
29 DATA 125,29,29,82,85,78

30 IF PEEK(1538)<>255 THEN 40

31 POKE 1537,PEEK(12)

32 POKE 1538,PEEK(13)

33 POKE 12,0:POKE 13,6

40 POKE 842,12

100 GRAPHICS 2+16: POSITION 0,5
110 ? #6; "PROGRAMM LAEUFT „..."
120 FOR I=0 TO 255:POKE 708,1:NEXT I
130 60T0 120SE EEE ee ae en nee 20 n 2
*

* BASIC-RUN BEI RESET

*

* PETER FINZEL 1986
SE TS SEE Eee 2272222 n

* 10CB-Konstante

c1oV EQU $E456

ICCoM EQU $342

ICBAL EQU $344

ICBAH EQU $345

ICBLL EQU $348

ICBLH EQU $349

ICAXI EQU $34A

CPBIN Eau 11

*

* Sonstige Register

*

ROWCRS EAU $54 Cursor-leile
COLCRS EQU $55 Cursor-Spalte
SDMCTL EQU 559 DMA-Register (5)
*

* Programm in PAGE 6
*

 

ORG $600

JSR $FFFF Platz #. DOS-Init.
LDX #0 "RUN’ am oberen
STX SDMCTL Bild aus

LDA #CPBIN Rand des Bild-
STA ICCOM,X schirmes aus-

LDA #RUN:L

STA ICBAL,X

LDA #RUN:H Strings in IOCB

STA ICBAH,X
LDA #RUNEND-RUN Laenge
STA ICBLL,X

LDA #0
STA ICBLH,X
JSR CIOV CIO aufrufen
LDA #0 Cursor nach
5STA ROWERS links oben
STA COLCRS stellen
STA COLCRS+1
LDA #$0D Forced-Read
STA ICAX1 Eingabe-Modus
RTS

*

RUN DFB $7D,$1D,$1D 'Clear Screen’
ASC "RUN" Cursor 2x unten

RUNEND EQU *100 REM * MEMLO-VERSCHIEBUNG

110 REM * ERZEUGT AUTORUN.SYS

120 REM

130 REM * P. FINZEL

140 ? "Untere Speichergrenze bei:";:IN
PUT MEMLO

150 MH=INT(MEMLO/256)

160 ML=MEMLO-MH#+256

170 DIM D$(B0):OPEN #1,8,0,"D:AUTORUN.
Sys”

180 ? "AUTORUN.SYS wird generiert...":
? :FLAG=O

190 READ D$:READ P: IF D$="*" THEN 290
200 8=0:7. "#"5

210 FOR I=1 TO LEN(D$) STEP 2

220 H=ASC(DS(I,I))-48:L=ASC(DE(IHL, Ir
))-48

230 D=(H-(HI9)#7)HI6+L-(LI9)*7:8=5+D
240 IF FLAG=1 THEN 270

250 IF I=13 THEN D=ML

260 IF I=15 THEN D=MH:FLAG=I

270 PUT #1,D:NEXT I:IF 8=P THEN 190
280 ? :? ı? "DATENFEHLER IN ZEILE ";PE
EK(183) +PEEK (184) #256: CL0SE #1:5T0P
290 REM * FILE SCHLIESSEN

300 CLOSE #1

310 ? »? »? "AUTORUN.SYS ordnungsgenae
ss erzeugt!"

320 END

1100 DATA FFFF00062706004020FFFFADOO0&
8DE702AD01068D,2041

1110 DATA E80260A50C8D0305A50D8D0405A9
02850CA906850D,1623

1120 DATA 4C050600FFFFE202E3021206,107
8

1130 DATA *,0EIS SEITE ET Eee ee een
* Speicherplatz-Reservierung m. MEMLO
*

* Aufzeichnen: als AUTORUN.SYS
* von $600 bis $627
* und $2E2 bis $2E3 (mit Append!)
* Assembler: ATMAS-II
LESS SEE ET EEE ET E ETETE TE ETeeE Teen
*
DOSINI EBU $0C ;DOS-Init nach RESET
MEMLO EQU $2E7 ;untere Speichergrenze
*
DRG $600
*
LOWRAM DFW $4000 neues MEMLD (nird ersetzt)
*
* Einsprung nach RESET
* wird in die DOS-Initialsisierung
* eingebunden
*
NEUINI JSR $FFFF Platz fuer DOSINI
KALT LDA LOWRAM neue MEMLO-Adresse
STA MEMLO eintragen (waehrend
LDA LOWRAM+i RESET!)
STA MEMLO+I
RTS das war's!

*

* Einbindung der Routine in den
* RESET-Ablauf
*
s

TART LDA DOSINI DOS-Init in leeren
5TA NEUINI+1 JSR eintragen
LDA DOSINI+i jetzt MSB
5TA NEUINI+2
LDA #NEUINI:L neues DOSINI
STA DOSINI eintragen
LDA #NEUINI:H
STA DOSINI+1
JMP KALT MEMLO vorbesetzen
*
* File-Init Adresse fuer AUTDRUN.SYS
*
ORG $2E2
DFW START