Сохранение и восстановление состояния прерываний в EXP_FNS

This commit is contained in:
Anatoliy Belyanskiy 2024-01-06 02:57:48 +10:00
parent f734b2a361
commit 7c6a680d63
5 changed files with 87 additions and 27 deletions

View File

@ -6447,6 +6447,36 @@ PRINT_RED:
POP BC
POP HL
RET
;*******************************
;*******************************
;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
EXP_FNS_PREPARE:
PUSH HL
PUSH AF
LD A,R
DI
PUSH AF
POP HL
POP AF
EX (SP),HL
CALL EXP_FNS_PREPARE_EXIT
EX (SP),HL
PUSH AF
LD A,L
AND 4
JR Z,.no_EI
EI
.no_EI: POP AF
POP HL
RET
EXP_FNS_PREPARE_EXIT:
PUSH AF
XOR A
JP EXP_FNS_PREPARE_RET
;*******************************
;*******************************
BLOCK #3CC0 - $,255
@ -7016,9 +7046,13 @@ HD_CMD: PUSH AF
;----[ From API #80..#FF to TR-DOS ]-----
BLOCK #3FF8-$, #FF
EXP_FNS:
PUSH AF
DI
XOR A ; D_ROM16OFF
;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
;PUSH AF
;DI ;!TODO ¯®¤ã¬ âì, ª ª á®åà ­ïâì á®áâ®ï­¨¥ ¯à¥à뢠­¨© ¨ ­¨ç¥£® ­¥ á«®¬ âì
;XOR A ; D_ROM16OFF
JP EXP_FNS_PREPARE
EXP_FNS_PREPARE_RET:
;
OUT (SYS_PORT_ON),A
POP AF
RET

View File

@ -570,7 +570,9 @@ AY8910:
LD A,#EA
LD C,#F3 ;!HARDCODE BIOS.SPRINTER_ALL
CALL EXP_FNS
EI
;!TEST 06/01/2024 α<>εΰ ­ο₯¬ α<>αβ<CEB1>ο­¨₯ ―ΰ₯ΰλ’ ­¨© § η₯¬-β<>
;EI
;
CALL AUTO_1D97
AND A
RET
@ -592,7 +594,9 @@ SP_1: LD A,(DE)
CCF
RET C
CALL EXP_FNS
EI
;!TEST 06/01/2024 α<>εΰ ­ο₯¬ α<>αβ<CEB1>ο­¨₯ ―ΰ₯ΰλ’ ­¨© § η₯¬-β<>
;EI
;
CALL AUTO_1D97
AND A
RET

View File

@ -1,9 +1,13 @@
INIT_RMD:
LD C,#9F ;!HARDCODE BIOS.FullInit
CALL EXP_FNS
EI
RET
;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
JP EXP_FNS
;CALL EXP_FNS
;EI
;RET
;
; DI
; LD C,PAGE3
@ -220,9 +224,7 @@ CONT_XX1:
ADD A,A
INC A
LOOP_128:
PUSH AF
PUSH DE
PUSH IX
@ -271,7 +273,7 @@ MADE_next_blk:
CALL EXP_FNS
POP BC
INC L ; SET ZF, if END BLK !!!
LD HL,0C000H
LD HL,#C000
RET
;*****************************************

View File

@ -431,7 +431,7 @@ READ_BPB:
RET NC
.SPACIAL:
LD IX,0
LD DE,63
LD DE,63 ;!HARDCODE
LD A,SYS_PAGE
LD HL,MS_BPB
LD C,BIOS.HDD_READ and #BF

View File

@ -1,3 +1,4 @@
;
DISK_REDIR:
PUSH HL
PUSH BC
@ -5,7 +6,9 @@ DISK_REDIR:
AND 3
LD C,BIOS.GET_DRV_ST
CALL EXP_FNS
EI
;!TEST 06/01/2024 α<>εΰ ­ο₯¬ α<>αβ<CEB1>ο­¨₯ ―ΰ₯ΰλ’ ­¨© § η₯¬-β<>
;EI
;
POP BC
POP HL
RET
@ -42,7 +45,9 @@ TEST_RAMD:
PUSH HL
LD C,#CE ;!HARDCODE BIOS.GET_RAMD_ST
CALL EXP_FNS
EI
;!TEST 06/01/2024 α<>εΰ ­ο₯¬ α<>αβ<CEB1>ο­¨₯ ―ΰ₯ΰλ’ ­¨© § η₯¬-β<>
;EI
;
POP HL
RET
@ -273,11 +278,13 @@ PAGE_CALC2:
AND #0F
LD D,A
PUSH HL
LD C,#98 ;!HARDCODE BIOS.RAMD_CALC_PAGE
LD C,BIOS.RAMD_CALC_PAGE
CALL DISK_REDIR
SUB 4
CALL EXP_FNS ; ¢ëç¨á«¥­¨¥  ¤à¥á  ¨ áâà ­¨æë RAM-Disk
EI
;!TEST 06/01/2024 α<>εΰ ­ο₯¬ α<>αβ<CEB1>ο­¨₯ ―ΰ₯ΰλ’ ­¨© § η₯¬-β<>
;EI
;
LD B,A
LD C,H
POP HL
@ -394,7 +401,9 @@ CLEAR_RMD_A:
PUSH BC
LD C,#93 ;!HARDCODE BIOS.FreeMemRMD
CALL EXP_FNS ; ¢ë§¢ âì äã­ªæ¨î
EI
;!TEST 06/01/2024 α<>εΰ ­ο₯¬ α<>αβ<CEB1>ο­¨₯ ―ΰ₯ΰλ’ ­¨© § η₯¬-β<>
;EI
;
POP BC
POP DE
POP HL
@ -405,7 +414,9 @@ GET_RMD_A:
GET_RAM_BLK: ; B - —ˆ‘‹Ž <><EFBFBD>“…Œ<20>ŽŠŽ, A - Š‹ž— RAM-Disk
LD C,#92 ;!HARDCODE BIOS.GetMemRMD
CALL EXP_FNS ; A,L - Š‹ž— RAM-Disk - ­®¬¥à ¯¥à¢®£® ¡«®ª 
EI
;!TEST 06/01/2024 α<>εΰ ­ο₯¬ α<>αβ<CEB1>ο­¨₯ ―ΰ₯ΰλ’ ­¨© § η₯¬-β<>
;EI
;
RET NC
NO_MEM:
LD HL,NO_MEMORY
@ -420,9 +431,12 @@ FDD_SET:
LD A,(OPER_DISK)
LD B,A
LD C,#CC ;!HARDCODE BIOS.FDD_TO_DRV
CALL EXP_FNS
EI
RET
;!TEST 06/01/2024 α<>εΰ ­ο₯¬ α<>αβ<CEB1>ο­¨₯ ―ΰ₯ΰλ’ ­¨© § η₯¬-β<>
JP EXP_FNS
;CALL EXP_FNS
;EI
;RET
;
HDD_SET:
LD C,BIOS.HDD_INIT and #BF
@ -433,9 +447,12 @@ HDD_SET:
LD B,A
LD A,0
LD C,#CD ;!HARDCODE BIOS.HDD_TO_DRV
CALL EXP_FNS
EI
RET
;!TEST 06/01/2024 α<>εΰ ­ο₯¬ α<>αβ<CEB1>ο­¨₯ ―ΰ₯ΰλ’ ­¨© § η₯¬-β<>
JP EXP_FNS
;CALL EXP_FNS
;EI
;RET
;
RAMD_SET:
CALL RAMD_SYM
@ -446,9 +463,12 @@ RAMD_SET1:
LD B,A
POP AF
LD C,#CB ;!HARDCODE BIOS.RAMD_TO_DRV
CALL EXP_FNS
EI
RET
;!TEST 06/01/2024 α<>εΰ ­ο₯¬ α<>αβ<CEB1>ο­¨₯ ―ΰ₯ΰλ’ ­¨© § η₯¬-β<>
JP EXP_FNS
;CALL EXP_FNS
;EI
;RET
;
RAMD_SYM:
LD A,(DE)