This commit is contained in:
Tolik 2024-09-18 03:46:44 +10:00
parent 36d209867e
commit e7c6ad1dca
2 changed files with 84 additions and 67 deletions

View File

@ -46,7 +46,7 @@
; 128 - ¨­¨æ¨ «¨§¨à®¢ âì ᢮© ­ ¡®à áâà ­¨æ vROM ; 128 - ¨­¨æ¨ «¨§¨à®¢ âì ᢮© ­ ¡®à áâà ­¨æ vROM
; ;
; ॣ HL: ¯à¨ ॣ B[7]=1  ¤à¥á áâà ­¨æ (11 èâ): ; ॣ HL: ¯à¨ ॣ B[7]=1  ¤à¥á áâà ­¨æ (11 èâ):
; byte1 - RAM block ID, byte2..11 - áâà ­¨æë ¤«ï vROM ; byte1 - RAM block ID, byte2..11 - áâà ­¨æë ¤«ï vROM - ZXSlot: 1,2,3(=0),à áè¨à¥­­ ï
; ॣ A: ­®¬¥à ZX TASK ¯®ª  çâ® ¢á¥£¤  ­®«ì!!! ; ॣ A: ­®¬¥à ZX TASK ¯®ª  çâ® ¢á¥£¤  ­®«ì!!!
;¢ë室: CF = 0: HL - ­®¬¥à  à ¬¡«®ª®¢ ¤«ï ०¨¬®¢ 0..16. H=vRAM, L=vROM ;¢ë室: CF = 0: HL - ­®¬¥à  à ¬¡«®ª®¢ ¤«ï ०¨¬®¢ 0..16. H=vRAM, L=vROM
; CF = 1: A - ­®¬¥à ®è¨¡ª¨ ; CF = 1: A - ­®¬¥à ®è¨¡ª¨
@ -98,6 +98,7 @@ FN_ENTRANCE: ;!TODO A - TASK NUMBER
;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------;
; <20>¥ ¯®àâ¨âì DE
;‚室: A - TASK NUMBER ;‚室: A - TASK NUMBER
GET_ZX_TASK_DATA: GET_ZX_TASK_DATA:
GET_ZX_TASK_DATA_OFFSET GET_ZX_TASK_DATA_OFFSET
@ -327,6 +328,7 @@ GET_SCORP_RAM: CALL FREE_vRAM
; 3 - EXPANSION. C § ªàëâ묨 128-¬¨ ¯®àâ ¬¨: ; 3 - EXPANSION. C § ªàëâ묨 128-¬¨ ¯®àâ ¬¨:
; 4 - TR-DOS, 5 - BASIC 48 ; 4 - TR-DOS, 5 - BASIC 48
; A = TASK ; A = TASK
; CF = 1 - ­¥ ¯¥à¥ãáâ ­ ¢«¨¢ âì ¯ «¨âàã
GOTO_SPEC: DI GOTO_SPEC: DI
PUSH AF PUSH AF
; set shared pages ; set shared pages
@ -341,9 +343,17 @@ GOTO_SPEC: DI
LD A,B LD A,B
LD (SYS_PAGE.CONFIG_DE.ZX_START),A LD (SYS_PAGE.CONFIG_DE.ZX_START),A
; ;
POP AF POP DE
LD SP,#C000 LD SP,#C000
LD A,D
CALL GET_ZX_TASK_DATA CALL GET_ZX_TASK_DATA
LD A,(IX + _#ZX_TASK_DATA.STATE)
RR E
JR NC,.save_state
OR %0000'0100
.save_state: LD (IX + _#ZX_TASK_DATA.STATE),A
;
; [ ] free zx pages! ;!TODO ¥á«¨ § ¤ ç  ¯ãáâ ï, â® ¯¥à¢ë© ¨­¨â
; ;
;!TODO ᤥ« âì  ªâ¨¢ æ¨î ¢¨­â  ¤«ï ¯ à ¬¥âà  ¨§ Setup ;!TODO ᤥ« âì  ªâ¨¢ æ¨î ¢¨­â  ¤«ï ¯ à ¬¥âà  ¨§ Setup
;!TODO ãáâ ­®¢¨âì £¤¥-­¨¡ã¤ì ­¨¦¥ áâíª ¨§ TASK ;!TODO ãáâ ­®¢¨âì £¤¥-­¨¡ã¤ì ­¨¦¥ áâíª ¨§ TASK
@ -365,7 +375,9 @@ GOTO_SPEC: DI
RLCA RLCA
CALL FN_SYNC CALL FN_SYNC
; ;
CALL SET_TXT_PALETTE.ZX ; [ ] free zx pages! ¯à®¯ã᪠âì íâ®, ç⮡ § ¤ ¢ âì ¯®«ì§®¢ â¥«ìáªãî ¯ «¨âàã LD A,(IX + _#ZX_TASK_DATA.STATE)
AND %0000'0100 ;!TODO § ¯®¬­¨âì/¢®ááâ ­®¢¨âì ª á⮬­ãî ¯ «¨âàã?
CALL Z,SET_TXT_PALETTE.ZX
; ;
LD E,0 LD E,0
CALL LP_SET_32 CALL LP_SET_32
@ -373,27 +385,18 @@ GOTO_SPEC: DI
LD E,0 LD E,0
LD HL,#5104 LD HL,#5104
CALL LP_SET_32.X CALL LP_SET_32.X
; .SHARED_BUFFER_256b
LD A,(IX + _#ZX_TASK_DATA.vRAM_ID)
LD HL,SYS_PAGE.SHARED_BUFFER_256b
CALL EMM.GetMemBlkPages
;!FIXIT
;RET C
; !FIXIT ¯à®¢¥àª  à §¬¥à  ¡«®ª , ᤥ« âì, ç⮡ ¢ë¡¨à «áï ®¡êñ¬ ¯ ¬ïâ¨
;LD A,B
;CP 16
;
;¬®¦­® ¨á¯®«ì§®¢ âì ª®£¤ -­¨¡ã¤ì ª ª-­¨¡ã¤ì ;.TASK_0: XOR A ; § ¤ ç  0, ०¨¬ 256 ª¨«®¡ ©â
; LD D,#35
; CALL CMOS_RD
; BIT 0,A
; PUSH AF
; CALL Z,SPRINTER_1
; POP AF
; PUSH AF
; CALL NZ,AY8910
; POP AF
.TASK_0: XOR A ; § ¤ ç  0, ०¨¬ 256 ª¨«®¡ ©â
.START_TASK: LD IY,.BASIC_128 .START_TASK: LD IY,.BASIC_128
JP INIT_PAGES ; ¨­¨æ¨ «¨§ æ¨ï ­®¬¥à®¢ áâà ­¨æ ०¨¬  ᯥªâà㬠 JP INIT_PAGES ; ¨­¨æ¨ «¨§ æ¨ï ­®¬¥à®¢ áâà ­¨æ ०¨¬  ᯥªâà㬠
; ;
@ -423,53 +426,65 @@ GOTO_SPEC: DI
;***************************************** ;*****************************************
;!TODO á⥪ ãáâ ­®¢«¥­ ¢® ¢â®à®© áâà ­¨æ¥, ­¥ ¨á¯®«ì§®¢ âì ¨«¨ ãáâ ­ ¢«¨¢ âì ¢ ¤àã£ãî! ;!TODO á⥪ ãáâ ­®¢«¥­ ¢® ¢â®à®© áâà ­¨æ¥, ­¥ ¨á¯®«ì§®¢ âì ¨«¨ ãáâ ­ ¢«¨¢ âì ¢ ¤àã£ãî!
; ¨­¨æ¨ «¨§ æ¨ï áâà ­¨æ zx spectrum ; ¨­¨æ¨ «¨§ æ¨ï áâà ­¨æ zx spectrum
; HL -  ¤à¥á ¡«®ª  áâà ­¨æ ¢ SLOT3
; B - ª®«¨ç¥á⢮ íâ¨å áâà ­¨æ
INIT_PAGES: INIT_PAGES:
AND A LD A,SYS_PAGE
LD E,A OUT (SLOT1),A
EX AF,AF' ;
LD A,E RES 7,H
; BIT 7,A
; JR Z,SCORPION_256_MODE ; AND A
; BIT 6,A ; LD E,A
; JR Z,PENTAGON_128_MODE ; EX AF,AF'
; ; LD A,E
; BIT 7,A
; JR Z,SCORPION_256_MODE
; BIT 6,A
; JR Z,PENTAGON_128_MODE
;
;PENTAGON_48_MODE: ;PENTAGON_48_MODE:
; AND #3C ; AND #3C
; OUT (SLOT0),A ; OUT (SLOT0),A
; INC A ; INC A
; OUT (SLOT1),A ; OUT (SLOT1),A
; INC A ; INC A
; OUT (SLOT2),A ; OUT (SLOT2),A
; INC A ; INC A
; LD D,A ; LD D,A
; LD BC,#1FFD ; LD BC,#1FFD
; XOR A ; XOR A
; OUT (C),A ; OUT (C),A
; LD B,#7F ; LD B,#7F
; OUT (C),A ; OUT (C),A
; LD A,D ; LD A,D
; OUT (SLOT3),A ; OUT (SLOT3),A
; JR INIT_VIDEO_REG ; JR INIT_VIDEO_REG
;
; ================================================================
; PENTAGON_128_MODE: ; PENTAGON_128_MODE:
; LD D,8 ; LD D,8
; AND #38 ; AND #38
; JR ALL_MODE ; JR ALL_MODE
SCORPION_256_MODE: ; SCORPION_256_MODE:
LD D,16 ; LD D,16
AND #30 ; ¤® 4-å ᯥªâà㬮¢ ; AND #30 ; ¤® 4-å ᯥªâà㬮¢
ALL_MODE: ;ALL_MODE:
OUT (SLOT0),A LD A,(HL) ; áâà ­¨æ  ¤«ï SLOT1
XOR 5 ; [ ] free zx pages! EX AF,AF'
OUT (SLOT1),A ;
XOR 7 ; [ ] free zx pages! INC HL
OUT (SLOT2),A DEC B
OR #0F ; [ ] free zx pages! LD A,(HL)
LD E,A OUT (SLOT2),A
INC HL
OUT (SLOT3),A
OUT (SLOT0),A
.loop: DEC D .loop: DEC D
@ -493,7 +508,7 @@ ALL_MODE:
INC D INC D
JR NZ,.loop JR NZ,.loop
INIT_VIDEO_REG: .INIT_VIDEO_REG:
XOR A XOR A
OUT (RGADR),A ; ॣ¨áâà ¢¨¤¥®  ¤à¥á  OUT (RGADR),A ; ॣ¨áâà ¢¨¤¥®  ¤à¥á 
OUT (RGMOD),A ; ॣ¨áâà ¬®¤ë OUT (RGMOD),A ; ॣ¨áâà ¬®¤ë
@ -528,7 +543,7 @@ INIT_VIDEO_REG:
; ;
EX AF,AF' EX AF,AF'
NO_SCREEN_ALT: .NO_SCREEN_ALT:
AND A AND A
JP (IY) JP (IY)
;-----------------------------------------------------------------------; ;-----------------------------------------------------------------------;

View File

@ -202,8 +202,8 @@ SettingsItemsTabs:
DB paramName DB paramName
DW CMOS_CELL.BootUpParams.Mask.StartDelay : DB %0001'0000 DW CMOS_CELL.BootUpParams.Mask.StartDelay : DB %0001'0000
DB msgStrings.valDisabled DB msgStrings.valDisabled
DB msgStrings.valNormal DB msgStrings.valShort
DB msgStrings.valEnabled DB msgStrings.valLong
IF UnusedSettingsFeatures ; !TODO IF UnusedSettingsFeatures ; !TODO
_mSETitemParams TypRate _mSETitemParams TypRate
@ -583,7 +583,8 @@ msgStrings:
_mSetStr parSaveRAMdrvs, tmp_Counter : DZ 'Save RAM-disks : ' _mSetStr parSaveRAMdrvs, tmp_Counter : DZ 'Save RAM-disks : '
_mSetStr parUpdBios, tmp_Counter : DZ 'Update BIOS : ' _mSetStr parUpdBios, tmp_Counter : DZ 'Update BIOS : '
_mSetStr parStartDelay, tmp_Counter : DZ 'Start delay : ' _mSetStr parStartDelay, tmp_Counter : DZ 'Start delay : '
_mSetStr valNormal, tmp_Counter : DZ 'Average ' _mSetStr valShort, tmp_Counter : DZ 'Short '
_mSetStr valLong, tmp_Counter : DZ 'Long '
_mSetStr parTypRate, tmp_Counter : DZ 'Typematic rate (chars/sec) : ' _mSetStr parTypRate, tmp_Counter : DZ 'Typematic rate (chars/sec) : '
_mSetStr val_6, tmp_Counter : DZ '6 ' _mSetStr val_6, tmp_Counter : DZ '6 '
_mSetStr val_8, tmp_Counter : DZ '8 ' _mSetStr val_8, tmp_Counter : DZ '8 '
@ -741,7 +742,8 @@ msgRusStrings:
_mSetStrRus parSaveRAMdrvs, tmp_Counter : DZ '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RAM-え瓷<EFBFBD> : ' _mSetStrRus parSaveRAMdrvs, tmp_Counter : DZ '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> RAM-え瓷<EFBFBD> : '
_mSetStrRus parUpdBios, tmp_Counter : DZ ' BIOS : ' _mSetStrRus parUpdBios, tmp_Counter : DZ ' BIOS : '
_mSetStrRus parStartDelay, tmp_Counter : DZ '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> : ' _mSetStrRus parStartDelay, tmp_Counter : DZ '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> : '
_mSetStrRus valNormal, tmp_Counter : DZ '।­¥¥ ' _mSetStrRus valShort, tmp_Counter : DZ 'Š®à®âª®¥ '
_mSetStrRus valLong, tmp_Counter : DZ '«¨­­®¥ '
_mSetStrRus parTypRate, tmp_Counter : DZ '<EFBFBD><EFBFBD>牀痰<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : ' _mSetStrRus parTypRate, tmp_Counter : DZ '<EFBFBD><EFBFBD>牀痰<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> : '
_mSetStrRus val_6, tmp_Counter : DZ '6 ' _mSetStrRus val_6, tmp_Counter : DZ '6 '
_mSetStrRus val_8, tmp_Counter : DZ '8 ' _mSetStrRus val_8, tmp_Counter : DZ '8 '