mirror of https://github.com/callapple/DOS335.git
88 lines
1.9 KiB
ArmAsm
88 lines
1.9 KiB
ArmAsm
*SYSTEM PROGRAM TO SWITCH INTO DOS 3.3 FROM PRODOS
|
|
*
|
|
**************************************************
|
|
*
|
|
* COPYRIGHT
|
|
* 1984
|
|
* BY
|
|
* R. SUTCLIFFE
|
|
*
|
|
***************************************************
|
|
*
|
|
A1L EQU $3C ;SOURCE
|
|
A1H EQU $3D
|
|
A2L EQU $3E ;END OF SOURCE
|
|
A2H EQU $3F
|
|
A4L EQU $42 ;DESTINATION
|
|
A4H EQU $43
|
|
DOSCOPY EQU $2100 ;START OF TRANSFERRED CODE
|
|
DOSSTRT EQU $9D00 ;DOS3.3 BEGINS HERE
|
|
DOSCOLD EQU $9D84
|
|
FNBLK EQU $A095 ;BLANKS FILENAME BUFFER
|
|
DOSCMD EQU $AA5F ;WHAT TO DO WHEN BOOTED
|
|
PFNBUF EQU $AA75 ;FILE NAME BUFFER
|
|
FMPLST EQU $B5BC ;FILE MANAGER PARAMETER LIST
|
|
FMPCMD EQU $B5BB
|
|
ENTRY EQU $BF00
|
|
ROMIN EQU $C082
|
|
RAMIN EQU $C083
|
|
BANK EQU $D000
|
|
MOVE EQU $FE2C ;MONITOR MOVE ROUTINE
|
|
*
|
|
ORG $2000 ;FOR ALL SYSTEM PROGRAMS
|
|
*
|
|
*PRESERVE GLOBAL PAGE TO GET BACK
|
|
*
|
|
BIT RAMIN ;WRITE ENABLE LC
|
|
BIT RAMIN
|
|
LDA #>BANK
|
|
STA A1H
|
|
LDA #>ENTRY
|
|
STA A4H
|
|
LDY #$00
|
|
STY A1L
|
|
STY A4L
|
|
LOOP LDA (A4L),Y
|
|
STA (A1L),Y
|
|
INY
|
|
BNE LOOP
|
|
BIT ROMIN
|
|
*
|
|
*
|
|
MOVER LDY #>DOSSTRT ;SET PARAMS FOR MONITOR MOVE
|
|
STY A4H ;IN PAGE ZERO
|
|
LDY #>DOSCOPY
|
|
STY A1H
|
|
LDY #$43
|
|
STY A2H
|
|
LDY #$FF
|
|
STY A2L
|
|
INY ;NOW 0
|
|
STY A1L
|
|
STY A4L
|
|
JSR MOVE ;AND MOVE DOS 3.3 IN
|
|
*
|
|
DOSPREP LDA #$0B ;INIT COMMAND MAKES IT LIVE
|
|
STA FMPCMD
|
|
LDA #$00 ;RUN COMMAND
|
|
STA DOSCMD ;FOR GREETING PROGRAM FILENAME
|
|
JSR FNBLK
|
|
LDX #0
|
|
FNAME1 LDA NAME,X ;PUT IN OUR NAME
|
|
PHA
|
|
ORA #$80 ;SET HI BIT ALWAYS
|
|
STA PFNBUF,X
|
|
PLA ;DONE IF AT HI BIT SET
|
|
BMI FIN ;YES
|
|
INX ;NOT YET
|
|
BNE FNAME1 ;ALWAYS
|
|
FIN LDA #$EA ;PATCH TO PREVENT 0 IN $E000 BY BOOT
|
|
STA $BFD3
|
|
STA $BFD4
|
|
STA $BFD5
|
|
JMP DOSCOLD ;GO START IT UP
|
|
*
|
|
*FILENAME TO RUN GOES HERE
|
|
NAME DCI 'HELLO'
|
|
*
|