Сохранение и восстановление состояния прерываний в 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 BC
POP HL POP HL
RET 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 BLOCK #3CC0 - $,255
@ -7016,9 +7046,13 @@ HD_CMD: PUSH AF
;----[ From API #80..#FF to TR-DOS ]----- ;----[ From API #80..#FF to TR-DOS ]-----
BLOCK #3FF8-$, #FF BLOCK #3FF8-$, #FF
EXP_FNS: EXP_FNS:
PUSH AF ;!TEST 06/01/2024 á®å࠭塞 á®áâ®ï­¨¥ ¯à¥à뢠­¨© § ç¥¬-â®
DI ;PUSH AF
XOR A ; D_ROM16OFF ;DI ;!TODO ¯®¤ã¬ âì, ª ª á®åà ­ïâì á®áâ®ï­¨¥ ¯à¥à뢠­¨© ¨ ­¨ç¥£® ­¥ á«®¬ âì
;XOR A ; D_ROM16OFF
JP EXP_FNS_PREPARE
EXP_FNS_PREPARE_RET:
;
OUT (SYS_PORT_ON),A OUT (SYS_PORT_ON),A
POP AF POP AF
RET RET

View File

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

View File

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

View File

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

View File

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