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
;
; ॣ 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 ¯®ª  çâ® ¢á¥£¤  ­®«ì!!!
;¢ë室: CF = 0: HL - ­®¬¥à  à ¬¡«®ª®¢ ¤«ï ०¨¬®¢ 0..16. H=vRAM, L=vROM
; CF = 1: A - ­®¬¥à ®è¨¡ª¨
@ -98,6 +98,7 @@ FN_ENTRANCE: ;!TODO A - TASK NUMBER
;-----------------------------------------------------------------------;
; <20>¥ ¯®àâ¨âì DE
;‚室: A - TASK NUMBER
GET_ZX_TASK_DATA:
GET_ZX_TASK_DATA_OFFSET
@ -327,6 +328,7 @@ GET_SCORP_RAM: CALL FREE_vRAM
; 3 - EXPANSION. C § ªàëâ묨 128-¬¨ ¯®àâ ¬¨:
; 4 - TR-DOS, 5 - BASIC 48
; A = TASK
; CF = 1 - ­¥ ¯¥à¥ãáâ ­ ¢«¨¢ âì ¯ «¨âàã
GOTO_SPEC: DI
PUSH AF
; set shared pages
@ -341,9 +343,17 @@ GOTO_SPEC: DI
LD A,B
LD (SYS_PAGE.CONFIG_DE.ZX_START),A
;
POP AF
POP DE
LD SP,#C000
LD A,D
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 ãáâ ­®¢¨âì £¤¥-­¨¡ã¤ì ­¨¦¥ áâíª ¨§ TASK
@ -365,7 +375,9 @@ GOTO_SPEC: DI
RLCA
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
CALL LP_SET_32
@ -373,27 +385,18 @@ GOTO_SPEC: DI
LD E,0
LD HL,#5104
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
;
;¬®¦­® ¨á¯®«ì§®¢ âì ª®£¤ -­¨¡ã¤ì ª ª-­¨¡ã¤ì
; 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 ª¨«®¡ ©â
;.TASK_0: XOR A ; § ¤ ç  0, ०¨¬ 256 ª¨«®¡ ©â
.START_TASK: LD IY,.BASIC_128
JP INIT_PAGES ; ¨­¨æ¨ «¨§ æ¨ï ­®¬¥à®¢ áâà ­¨æ ०¨¬  ᯥªâà㬠
;
@ -423,53 +426,65 @@ GOTO_SPEC: DI
;*****************************************
;!TODO á⥪ ãáâ ­®¢«¥­ ¢® ¢â®à®© áâà ­¨æ¥, ­¥ ¨á¯®«ì§®¢ âì ¨«¨ ãáâ ­ ¢«¨¢ âì ¢ ¤àã£ãî!
; ¨­¨æ¨ «¨§ æ¨ï áâà ­¨æ zx spectrum
; HL -  ¤à¥á ¡«®ª  áâà ­¨æ ¢ SLOT3
; B - ª®«¨ç¥á⢮ íâ¨å áâà ­¨æ
INIT_PAGES:
AND A
LD E,A
EX AF,AF'
LD A,E
LD A,SYS_PAGE
OUT (SLOT1),A
;
RES 7,H
; BIT 7,A
; JR Z,SCORPION_256_MODE
; BIT 6,A
; JR Z,PENTAGON_128_MODE
;
; AND A
; LD E,A
; 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:
; AND #3C
; OUT (SLOT0),A
; INC A
; OUT (SLOT1),A
; INC A
; OUT (SLOT2),A
; INC A
; LD D,A
; LD BC,#1FFD
; XOR A
; OUT (C),A
; LD B,#7F
; OUT (C),A
; LD A,D
; OUT (SLOT3),A
; JR INIT_VIDEO_REG
;
;
; AND #3C
; OUT (SLOT0),A
; INC A
; OUT (SLOT1),A
; INC A
; OUT (SLOT2),A
; INC A
; LD D,A
; LD BC,#1FFD
; XOR A
; OUT (C),A
; LD B,#7F
; OUT (C),A
; LD A,D
; OUT (SLOT3),A
; JR INIT_VIDEO_REG
================================================================
; PENTAGON_128_MODE:
; LD D,8
; AND #38
; JR ALL_MODE
SCORPION_256_MODE:
LD D,16
AND #30 ; ¤® 4-å ᯥªâà㬮¢
; SCORPION_256_MODE:
; LD D,16
; AND #30 ; ¤® 4-å ᯥªâà㬮¢
ALL_MODE:
OUT (SLOT0),A
XOR 5 ; [ ] free zx pages!
OUT (SLOT1),A
XOR 7 ; [ ] free zx pages!
OUT (SLOT2),A
OR #0F ; [ ] free zx pages!
LD E,A
;ALL_MODE:
LD A,(HL) ; áâà ­¨æ  ¤«ï SLOT1
EX AF,AF'
;
INC HL
DEC B
LD A,(HL)
OUT (SLOT2),A
INC HL
OUT (SLOT3),A
OUT (SLOT0),A
.loop: DEC D
@ -493,7 +508,7 @@ ALL_MODE:
INC D
JR NZ,.loop
INIT_VIDEO_REG:
.INIT_VIDEO_REG:
XOR A
OUT (RGADR),A ; ॣ¨áâà ¢¨¤¥®  ¤à¥á 
OUT (RGMOD),A ; ॣ¨áâà ¬®¤ë
@ -528,7 +543,7 @@ INIT_VIDEO_REG:
;
EX AF,AF'
NO_SCREEN_ALT:
.NO_SCREEN_ALT:
AND A
JP (IY)
;-----------------------------------------------------------------------;

View File

@ -202,8 +202,8 @@ SettingsItemsTabs:
DB paramName
DW CMOS_CELL.BootUpParams.Mask.StartDelay : DB %0001'0000
DB msgStrings.valDisabled
DB msgStrings.valNormal
DB msgStrings.valEnabled
DB msgStrings.valShort
DB msgStrings.valLong
IF UnusedSettingsFeatures ; !TODO
_mSETitemParams TypRate
@ -583,7 +583,8 @@ msgStrings:
_mSetStr parSaveRAMdrvs, tmp_Counter : DZ 'Save RAM-disks : '
_mSetStr parUpdBios, tmp_Counter : DZ 'Update BIOS : '
_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 val_6, tmp_Counter : DZ '6 '
_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 parUpdBios, tmp_Counter : DZ ' BIOS : '
_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 val_6, tmp_Counter : DZ '6 '
_mSetStrRus val_8, tmp_Counter : DZ '8 '