...temp...
This commit is contained in:
parent
8b94cc4e63
commit
d80b79a832
@ -1 +1 @@
|
||||
Subproject commit 75ceae51d36476f236476681aac5c7619ca22005
|
||||
Subproject commit e9d481a5565338505710b08e50d22a8579c400be
|
||||
Binary file not shown.
@ -717,9 +717,6 @@ POST_5_OK:
|
||||
;
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;-----------------------------------------------------------------------;
|
||||
MODULE SET_CONFIG_ID
|
||||
;-------------[Save IX:IY]--------------
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -428,7 +428,7 @@ REINIT: DEC B
|
||||
;
|
||||
;----------------------------------------------------------------------;
|
||||
; ¥ ¤®«¦® ¯®àâ¨âì DE
|
||||
SET_ROM_FLAG_ZX:
|
||||
RES_FLAG_ZXvROM:
|
||||
EX AF,AF'
|
||||
IN A,(SLOT3)
|
||||
EX AF,AF'
|
||||
|
||||
@ -47,7 +47,7 @@ FN_VERSION:
|
||||
EX AF,AF'
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT2),A
|
||||
LD BC,(SYS_PAGE.CONFIG_BYTE-#4000) ; Version PLD ; !TODO ç¥à¥§ áâàãªâãàã ¤«ï ¯¥à¥¬¥ëå ¡¨®á
|
||||
LD BC,(SYS_PAGE.CONFIG_BYTE - #4000) ; Version PLD ; !TODO ç¥à¥§ áâàãªâãàã ¤«ï ¯¥à¥¬¥ëå ¡¨®á
|
||||
EX AF,AF'
|
||||
OUT (SLOT2),A
|
||||
LD A,ID_SPRINTER.Records_Num ; —¨á«® ¯®«¥©
|
||||
@ -183,6 +183,12 @@ EMM.FullInit:
|
||||
OUT (SLOT2),A
|
||||
INIT_SYS_ALL:
|
||||
DI
|
||||
; LD HL,#8000
|
||||
; LD DE,#8001
|
||||
; LD (HL),0
|
||||
; LD BC,#3FFF
|
||||
; LDIR
|
||||
;
|
||||
; LD HL,ID_SPRINTER_FullSize
|
||||
; LD DE,SYS_PAGE.ID_FLAG - #4000
|
||||
; LD C,(HL)
|
||||
@ -199,7 +205,7 @@ INIT_SYS_ALL:
|
||||
;
|
||||
|
||||
;!TODO çâ® § ¯¥à¥¬¥ë¥?
|
||||
LD HL,SYS_PAGE.DISK_TYPE-#4000
|
||||
LD HL,SYS_PAGE.DISK_TYPE - #4000
|
||||
LD (HL),DRIVE_CODES.TRDOS.FDD ; FDD A
|
||||
INC HL
|
||||
LD (HL),DRIVE_CODES.TRDOS.FDD + 1 ; FDD B
|
||||
@ -217,28 +223,28 @@ INIT_SYS_ALL:
|
||||
LD (HL),0 ; SYS_PAGE.COPY_SLOT3
|
||||
|
||||
LD A,9
|
||||
LD (SYS_PAGE.MSD_SECS-#4000),A
|
||||
LD (SYS_PAGE.MSD_SECS - #4000),A
|
||||
XOR A
|
||||
LD (SYS_PAGE.DS_1440-#4000),A
|
||||
LD (SYS_PAGE.DS_1440 - #4000),A
|
||||
|
||||
LD HL,SYS_PAGE.RAMD_KEYS-#4000
|
||||
LD DE,SYS_PAGE.RAMD_KEYS+1-#4000
|
||||
LD HL,SYS_PAGE.RAMD_KEYS - #4000
|
||||
LD DE,SYS_PAGE.RAMD_KEYS+1 - #4000
|
||||
LD BC,SYS_PAGE.RAMD_KEYS.NUM-1
|
||||
LD (HL),0
|
||||
LDIR
|
||||
; [x] 04/11/2023
|
||||
LD HL,SYS_PAGE.Sp_RAMD_KEYS-#4000
|
||||
LD DE,SYS_PAGE.Sp_RAMD_KEYS+1-#4000
|
||||
LD HL,SYS_PAGE.Sp_RAMD_KEYS - #4000
|
||||
LD DE,SYS_PAGE.Sp_RAMD_KEYS+1 - #4000
|
||||
LD BC,SYS_PAGE.Sp_RAMD_KEYS.NUM-1
|
||||
LD (HL),0
|
||||
LDIR
|
||||
;
|
||||
; [x] 17/08/2024 fixed bug with change current RAM drives type
|
||||
XOR A
|
||||
LD (SYS_PAGE.CURRENT_RAM_DRV-#4000),A
|
||||
LD (SYS_PAGE.CURRENT_RAM_DRV - #4000),A
|
||||
;
|
||||
LD DE,ZG_ADDRESS ; ¤à¥á § ª®£¥¥à â®à
|
||||
LD (SYS_PAGE.WIN_ZG-#4000),DE
|
||||
LD (SYS_PAGE.WIN_ZG - #4000),DE
|
||||
;
|
||||
;-----------[new code start]------------; !!!!! ¯®á¬®âà¥âì-¯à¨ç¥á âì
|
||||
INIT_VSyncAndWaits:
|
||||
@ -248,7 +254,7 @@ INIT_VSyncAndWaits:
|
||||
jr nc,.cmos_OK
|
||||
; ¥á«¨ ¥â CMOS, â® áâ ¤ àâë¥ áâனª¨
|
||||
ld a,3
|
||||
ld (SYS_PAGE.VSyncAndWaits-#4000),A
|
||||
ld (SYS_PAGE.VSyncAndWaits - #4000),A
|
||||
jr z,INIT_CONFIG_ALL.setDefaultINT
|
||||
|
||||
.cmos_OK:
|
||||
@ -259,7 +265,7 @@ INIT_VSyncAndWaits:
|
||||
dec a ; 312 lines & no waits
|
||||
|
||||
.setVSyncAndWaits:
|
||||
ld (SYS_PAGE.VSyncAndWaits-#4000),A
|
||||
ld (SYS_PAGE.VSyncAndWaits - #4000),A
|
||||
|
||||
INIT_CONFIG_ALL:
|
||||
ld a,d
|
||||
@ -277,15 +283,15 @@ INIT_CONFIG_ALL:
|
||||
.setDefaultINT:
|
||||
LD HL,SCREEN_TABLES.PENTAGON ; set pentagon int
|
||||
.setINT:
|
||||
LD (SYS_PAGE.CONFIG_ALL-#4000),HL
|
||||
LD (SYS_PAGE.CONFIG_ALL - #4000),HL
|
||||
;------------[new code end]-------------
|
||||
;
|
||||
LD DE,CNF_PORT.CNF_0 + ROM.BIOS
|
||||
LD (SYS_PAGE.CONFIG_DE-#4000),DE
|
||||
LD (SYS_PAGE.CONFIG_DE - #4000),DE
|
||||
|
||||
LD HL,SYS_PAGE.CURRENT_TASK - #4000 ; 㡨âì ¢á¥ § ¤ ç¨
|
||||
LD DE,SYS_PAGE.CURRENT_TASK+1 - #4000
|
||||
LD BC,ZX_TASK_DATA * SYS_PAGE.CURRENT_TASK.Size - 1 ; #FF
|
||||
LD HL,SYS_PAGE.ZX_TASK.CURRENT - #4000 ; 㡨âì ¢á¥ § ¤ ç¨
|
||||
LD DE,SYS_PAGE.ZX_TASK.CURRENT+1 - #4000
|
||||
LD BC,_#ZX_TASK - 1
|
||||
LD (HL),0
|
||||
LDIR
|
||||
|
||||
|
||||
@ -9,10 +9,13 @@
|
||||
;
|
||||
; _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ [___FOR ZX-MODE___] _ZX_ _ZX_ _ZX_ _ZX_ _ZX_ ;
|
||||
|
||||
|
||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||
; [ ] free zx pages!
|
||||
; ????? SYS_PAGE.SHARED_BUFFER_256b
|
||||
;
|
||||
; [ ] ‘âà ¨æ Ž‡“ ¤«ï ᪮௠¢ SLOT0 ¤®«¦ ᮢ¯ ¤ âì á ã«¥¢®© áâà ¨æ¥© ¯®àâ #7FFD
|
||||
IF FREE_ZX_PAGES
|
||||
MODULE MANAGE_ZX_PAGES
|
||||
;----------------[‚뤥«¥¨¥/®á¢®¡®¦¤¥¨¥ áâà ¨æ ᯥªâà㬠]-------------;
|
||||
;¢å®¤: ॣ B: 0 - ¨¨â ¯ ¬ï⨠Spectrum 48k
|
||||
; 1 - ¨¨â ¯ ¬ï⨠Pentagon 128k
|
||||
@ -22,17 +25,65 @@
|
||||
;
|
||||
;¢ë室: CF = 0: A - ®¬¥à à ¬¡«®ª
|
||||
; CF = 1: A - ®¬¥à ®è¨¡ª¨
|
||||
MANAGE_ZX_PAGES:
|
||||
FN_ENTRANCE:
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
|
||||
;-----------------------------------------------------------------------;
|
||||
;‚믮«ï¥âáï ¢á¥£¤ ¤«ï ¨¨â âàñå áâà ¨æ Ž‡“
|
||||
INIT_48k_MEM:
|
||||
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
;-----------------------------------------------------------------------;
|
||||
INIT_SCORP_RAM:
|
||||
DI
|
||||
LD A,5
|
||||
OUT (SLOT1),A
|
||||
; #1FFD
|
||||
LD BC,#1FFD
|
||||
XOR A
|
||||
OUT (SLOT0),A
|
||||
OUT (C),A
|
||||
; #7FFD
|
||||
LD B,#7F
|
||||
LD A,8
|
||||
LOOP_P1: DEC A
|
||||
OUT (C),A
|
||||
OUT (SLOT3),A
|
||||
JR NZ,LOOP_P1
|
||||
; #1FFD
|
||||
LD B,#1F
|
||||
LD A,#10
|
||||
OUT (C),A
|
||||
; #7FFD
|
||||
LD B,#7F
|
||||
LD A,8
|
||||
LOOP_P2: OUT (C),A
|
||||
OUT (SLOT3),A
|
||||
INC A
|
||||
CP 16
|
||||
JR NZ,LOOP_P2
|
||||
;
|
||||
XOR A
|
||||
OUT (C),A
|
||||
; #1FFD
|
||||
LD B,#1F
|
||||
OUT (C),A
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
|
||||
|
||||
.GET_SCORP: IN A,(SLOT3)
|
||||
;-----------------------------------------------------------------------;
|
||||
;‚室: ---
|
||||
;‚ë室: A - RAM block ID
|
||||
GET_SCORP_RAM: IN A,(SLOT3)
|
||||
LD E,A
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
; ¢ë¤¥«¨âì áâà ¨æë ᪮à¯
|
||||
XOR A
|
||||
LD BC,#08*256 + #FF ; B - ª®«¨ç¥á⢮ áâà ¨æ, C - Œ¥âª ª®æ à ¬¡«®ª
|
||||
LD BC,8*256 + #FF ; B - ª®«¨ç¥á⢮ áâà ¨æ, C - Œ¥âª ª®æ à ¬¡«®ª
|
||||
LD HL,SYS_PAGE.RAM_TABLE
|
||||
.allocate_loop: DEC L
|
||||
JR Z,.error_no_mem
|
||||
@ -74,68 +125,11 @@ MANAGE_ZX_PAGES:
|
||||
LD L,BIOS.Error.EMM.NoMemory
|
||||
SCF
|
||||
JR .exit
|
||||
|
||||
|
||||
/*
|
||||
;
|
||||
.GET_SCORP: IN A,(SLOT3)
|
||||
LD E,A
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
; ¯à®¢¥à¨âì «¨ç¨¥ ᢮¡®¤ëå áâà ¨æ ᪮à¯
|
||||
; B = ª®«¨ç¥á⢮ áâà ¨æ
|
||||
LD B,8
|
||||
XOR A
|
||||
.check_loop: DEC L
|
||||
JR Z,.error_no_mem
|
||||
CP (HL)
|
||||
JR NZ,.check_loop
|
||||
;
|
||||
CALL .check_barred_pages
|
||||
LD A,0
|
||||
JR Z,.check_loop
|
||||
DJNZ .check_loop
|
||||
; A = 0
|
||||
; ¢ë¤¥«¨âì áâà ¨æë ᪮à¯
|
||||
LD B,8
|
||||
.allocate_loop: DEC L
|
||||
CP (HL)
|
||||
JR NZ,.allocate_loop
|
||||
;
|
||||
CALL .check_barred_pages
|
||||
LD A,0
|
||||
JR Z,.allocate_loop
|
||||
;
|
||||
LD (HL),C
|
||||
LD C,L
|
||||
DJNZ .allocate_loop
|
||||
; L = 㪠§ â¥«ì æ¥¯®çª¨.
|
||||
AND A
|
||||
.exit: LD A,E
|
||||
OUT (SLOT3),A
|
||||
LD A,L
|
||||
RET
|
||||
; 䨫ìâà ¤«ï áâà ¨æ ᪮à¯
|
||||
;¢ë室: ZF=1 - áâà ¨æ ¥ ¯®¤å®¤¨â
|
||||
.check_barred_pages:
|
||||
; check reset page
|
||||
LD A,L
|
||||
CP RESET_PAGE
|
||||
RET C
|
||||
RET Z
|
||||
; check isa page
|
||||
AND #F0
|
||||
XOR #D0 ; áâà ¨æë ISA #D0..#DF
|
||||
RET NZ
|
||||
LD L,#D0
|
||||
RET
|
||||
;
|
||||
.error_no_mem: LD L,BIOS.Error.EMM.NoMemory
|
||||
SCF
|
||||
JR .exit
|
||||
*/
|
||||
;-----------------------------------------------------------------------;
|
||||
ENDMODULE
|
||||
ENDIF
|
||||
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°;
|
||||
|
||||
|
||||
|
||||
;-----------------------------------------------------------------------;
|
||||
|
||||
@ -131,49 +131,49 @@ TASK_SWITCH:
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
|
||||
LD IX,SYS_PAGE.CURRENT_TASK ; ¤ ë¥ § ¤ ç
|
||||
LD IX,SYS_PAGE.ZX_TASK.CURRENT ; ¤ ë¥ § ¤ ç
|
||||
; !TEST
|
||||
;LD E,(IX)
|
||||
;LD D,0
|
||||
;ADD IX,DE
|
||||
;LD E,SYS_PAGE.CURRENT_TASK.Size
|
||||
;ADD IX,DE
|
||||
LD A,SYS_PAGE.CURRENT_TASK.Size ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
LD A,_#ZX_TASK_DATA ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
ADD A,(IX) ; ᬥ饨¥ ¤ ëå ⥪ã饩 § ¤ ç¨
|
||||
LD E,A
|
||||
LD D,0
|
||||
ADD IX,DE ; ¤ ë¥ â¥ªã饩 § ¤ ç¨
|
||||
;
|
||||
LD (IX + ZX_TASK_DATA.SLOT3_PAGE),B ; á®åà ¨âì áâà ¨æã 3
|
||||
LD (IX + _#ZX_TASK_DATA.SLOT3_PAGE),B ; á®åà ¨âì áâà ¨æã 3
|
||||
LD HL,0
|
||||
ADD HL,SP
|
||||
LD (IX + ZX_TASK_DATA.SP),L ; á®åà ¨âì á⥪ § ¤ ç¨
|
||||
LD (IX + ZX_TASK_DATA.SP + 1),H
|
||||
SET 0,(IX + ZX_TASK_DATA.STATE) ; ãáâ ®¢¨âì ä« £ á®åà ¥®á⨠⥪ã饩 § ¤ ç¨
|
||||
RES 1,(IX + ZX_TASK_DATA.STATE) ; ãáâ ®¢¨âì ä« £, çâ® § ¤ ç ¯®ª¨ãâ
|
||||
LD (IX + _#ZX_TASK_DATA.SP),L ; á®åà ¨âì á⥪ § ¤ ç¨
|
||||
LD (IX + _#ZX_TASK_DATA.SP + 1),H
|
||||
SET 0,(IX + _#ZX_TASK_DATA.STATE) ; ãáâ ®¢¨âì ä« £ á®åà ¥®á⨠⥪ã饩 § ¤ ç¨
|
||||
RES 1,(IX + _#ZX_TASK_DATA.STATE) ; ãáâ ®¢¨âì ä« £, çâ® § ¤ ç ¯®ª¨ãâ
|
||||
|
||||
LD IX,SYS_PAGE.CURRENT_TASK
|
||||
LD IX,SYS_PAGE.ZX_TASK.CURRENT
|
||||
; !TEST
|
||||
;LD E,C
|
||||
;LD D,0
|
||||
;ADD IX,DE ; ®¢ ï § ¤ ç
|
||||
;LD E,16
|
||||
LD A,SYS_PAGE.CURRENT_TASK.Size ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
LD A,_#ZX_TASK_DATA ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
ADD A,C ; ᬥ饨¥ ¤ ëå ®¢®© § ¤ ç¨
|
||||
LD E,A
|
||||
LD D,0
|
||||
;
|
||||
ADD IX,DE ; ¤ ë¥ ®¢®© § ¤ ç¨
|
||||
|
||||
BIT 1,(IX + ZX_TASK_DATA.STATE)
|
||||
; BIT 1,(IX + _#ZX_TASK_DATA.STATE)
|
||||
; JR NZ,TASK_IN_WORK ; § ¤ ç ¢ à ¡®â¥ ??? ¥¢¥à®¥ § ¢¥à襨¥
|
||||
; ; á¡à áë¢ âì ¨«¨ ¯à®áâ® ¢®§¢à é âìáï
|
||||
|
||||
BIT 0,(IX + ZX_TASK_DATA.STATE) ; ¡ë« á®åà ¥ /¥â
|
||||
BIT 0,(IX + _#ZX_TASK_DATA.STATE) ; ¡ë« á®åà ¥ /¥â
|
||||
JR NZ,TASK_SET ; § ¤ ç áãé¥áâ¢ã¥â
|
||||
|
||||
; § ¤ ç¨ ¥ ¡ë«®!
|
||||
LD IX,SYS_PAGE.CURRENT_TASK
|
||||
LD IX,SYS_PAGE.ZX_TASK.CURRENT
|
||||
LD A,C ; § ¤ ç
|
||||
LD (IX),A ; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩
|
||||
|
||||
@ -191,7 +191,7 @@ TASK_RESTORE:
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD A,C
|
||||
LD IX,SYS_PAGE.CURRENT_TASK
|
||||
LD IX,SYS_PAGE.ZX_TASK.CURRENT
|
||||
LD (IX),A ; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩
|
||||
|
||||
; !TEST
|
||||
@ -199,16 +199,16 @@ TASK_RESTORE:
|
||||
;LD D,0
|
||||
;ADD IX,DE ; ®¢ ï § ¤ ç
|
||||
;LD E,16
|
||||
ADD A,SYS_PAGE.CURRENT_TASK.Size ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
ADD A,_#ZX_TASK_DATA ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
LD E,A
|
||||
LD D,0
|
||||
;
|
||||
ADD IX,DE
|
||||
|
||||
LD L,(IX + ZX_TASK_DATA.SP) ; ¢á¯®¬¨âì á⥪
|
||||
LD H,(IX + ZX_TASK_DATA.SP + 1)
|
||||
LD L,(IX + _#ZX_TASK_DATA.SP) ; ¢á¯®¬¨âì á⥪
|
||||
LD H,(IX + _#ZX_TASK_DATA.SP + 1)
|
||||
LD SP,HL
|
||||
LD A,(IX + ZX_TASK_DATA.SLOT3_PAGE); ¢á¯®¬¨âì âà¥âìî áâà ¨æã
|
||||
LD A,(IX + _#ZX_TASK_DATA.SLOT3_PAGE); ¢á¯®¬¨âì âà¥âìî áâà ¨æã
|
||||
OUT (SLOT3),A
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user