Browse Source

Update cbios.asm

pull/134/head
b1ackmai1er 6 years ago
committed by GitHub
parent
commit
3a020341cb
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 66
      Source/CBIOS/cbios.asm

66
Source/CBIOS/cbios.asm

@ -300,7 +300,8 @@ DPBCNT .EQU ($ - DPBMAP) / 2
;__________________________________________________________________________________________________
BOOT:
; STANDARD BOOT INVOCATION
LD SP,STACK ; STACK FOR INITIALIZATION
;LD SP,STACK ; STACK FOR INITIALIZATION
LD SP,CCP_LOC ; PUT STACK JUST BELOW CCP
;
; COPY INITIALIZATION CODE TO RUNNING LOCATION $8000
LD HL,BUFPOOL
@ -328,17 +329,17 @@ BOOT:
;
;__________________________________________________________________________________________________
REBOOT:
; REBOOT FROM ROM, REPLACES BOOT AFTER INIT
; RESTART, REPLACES BOOT AFTER INIT
#IFDEF PLTUNA
; FOR UNA, COLD BOOT
DI ; NO INTERRUPTS
LD BC,$01FB ; UNA FUNC = SET BANK
LD DE,0 ; ROM BOOT BANK
CALL $FFFD ; DO IT (RST 08 NOT SAFE HERE)
#ENDIF
;
#IFDEF PLTWBW
;DI ; NO INTERRUPTS
;LD A,0 ; ROM BOOT BANK
;CALL HB_BNKSEL ; SELECT IT INTO LOW MEMORY
; WARM START
LD B,BF_SYSRESET ; SYSTEM RESTART
LD C,BF_SYSRES_WARM ; WARM START
CALL $FFF0 ; CALL HBIOS
@ -401,23 +402,13 @@ RESCPM:
LD HL,WBOOTE ; GET WARM BOOT ENTRY ADDRESS
LD ($0001),HL ; AND PUT IT AT $0001
; ; INT / RST 38 -> INVOKE MONITOR
; LD ($0038),A
; LD HL,GOMON
; LD ($0039),HL
; ; INT / RST 38 -> PANIC
; LD ($0038),A
; LD HL,PANIC ; PANIC ROUTINE ADDRESS
; LD ($0039),HL ; POKE IT
; CALL 5 -> INVOKE BDOS
LD ($0005),A ; JP OPCODE AT $0005
LD HL,BDOS_LOC + 6 ; GET BDOS ENTRY ADDRESS
LD ($0006),HL ; PUT IT AT $0006
;
; INSTALL ROMWBW CBIOS PAGE ZERO STAMP AT $40
LD HL,STPIMG ; FORM STAMP DATA IMAGE
LD HL,STPIMG ; FROM STAMP DATA IMAGE
LD DE,STPLOC ; TO IT'S LOCATION IN PAGE ZERO
LD BC,STPSIZ ; SIZE OF BLOCK TO COPY
LDIR ; DO IT
@ -448,26 +439,6 @@ GOCCP:
LD C,A ; SETUP C WITH CURRENT USER/DISK, ASSUME IT IS OK
JP CCP_LOC ; JUMP TO COMMAND PROCESSOR
;
;__________________________________________________________________________________________________
GOMON:
CALL PANIC
;
; DI
; IM 1
;
; LD SP,STACK
;
; ; RELOAD MONITOR INTO RAM (IN CASE IT HAS BEEN OVERWRITTEN)
; CALL ROMPGZ
; LD HL,MON_IMG
; LD DE,MON_LOC
; LD BC,MON_SIZ
; LDIR
; CALL RAMPGZ
; ; JUMP TO MONITOR WARM ENTRY
; JP MON_UART
;
;
;==================================================================================================
; CHARACTER BIOS FUNCTIONS
@ -1360,27 +1331,14 @@ DSK_MBR:
DSK_MBR0:
;
#IFDEF PLTWBW
; SWITCH TO BIOS BANK TO ACCESS DISK BUFFER
; ACTIVATE BIOS BANK TO ACCESS DISK BUFFER
LD (STKSAV),SP ; SAVE CUR STACK
LD SP,XSTACK ; NEW STACK IN HI MEM
LD A,(HB_CURBNK) ; GET CUR BANK
PUSH AF ; SAVE CUR BANK
LD A,(BNKBIOS) ; BIOS BANK
CALL HB_BNKSEL ; DO IT
CALL DSK_MBR1 ; DO THE WORK
; RESTORE BANK
PUSH AF ; SAVE RESULT
POP HL ; TO HL
EX (SP),HL ; RESULT TO TOS, PREV BANK TO H
LD A,H ; PREV BANK TO A
CALL HB_BNKSEL ; SELECT IT
POP AF ; ORIGINAL RESULT BACK
LD SP,STACK ; NEW STACK IN HI MEM
LD A,(BNKBIOS) ; ACTIVATE HBIOS BANK
LD HL,DSK_MBR1 ; ROUTINE TO RUN
CALL HB_BNKCALL ; DO IT
LD SP,(STKSAV) ; RESTORE ORIGINAL STACK
RET
.FILL 32,0
XSTACK .EQU $
#ENDIF
;
DSK_MBR1:

Loading…
Cancel
Save