...
This commit is contained in:
parent
085ef3c332
commit
b96578c2a0
@ -1 +1 @@
|
||||
Subproject commit 3ac606f87285e76a56c826ad33efdd26ada872f6
|
||||
Subproject commit e73e9f8d4f4e72de4f6b54abaec159684fdcebe1
|
||||
@ -36,6 +36,7 @@ DPAL2 EQU 5
|
||||
; !!! NO USE STACK !!!
|
||||
;
|
||||
;*****************************************
|
||||
;!TODO
|
||||
; ¨¨æ¨ «¨§ æ¨ï áâà ¨æ zx spectrum
|
||||
INIT_PAGES:
|
||||
AND A
|
||||
@ -126,7 +127,7 @@ INIT_VIDEO_REG:
|
||||
|
||||
; EX AF,AF'
|
||||
|
||||
; LD A,7 ; á¥¤ì¬ ï íªà ï áâà ¨æ
|
||||
; LD A,7 ; á¥¤ì¬ ï íªà ï áâà ¨æ
|
||||
; LD BC,#7FFD
|
||||
; OUT (C),A
|
||||
|
||||
|
||||
@ -194,13 +194,12 @@ EMM.GetMemRMD:
|
||||
CALL BLK_TO_RAMD
|
||||
RET NC
|
||||
.error2:
|
||||
LD L,2 ; RAM-Disk § ïâ ;!TODO ¯¥à¥ç¨á«¨âì ¢á¥ ¢ ਠâë ®è¨¡®ª ¨ ¨å ®¬¥à ª ª ¤«ï „‘‘
|
||||
LD L,2 ; RAM-Disk § ïâ ;!HARDCODE error number ;!TODO ¯¥à¥ç¨á«¨âì ¢á¥ ¢ ਠâë ®è¨¡®ª ¨ ¨å ®¬¥à ª ª ¤«ï „‘‘
|
||||
LD A,L
|
||||
RET
|
||||
.error1:
|
||||
POP HL ; 腮痰━ 痰オ
|
||||
LD L,A
|
||||
;SCF
|
||||
RET
|
||||
;----------------------------------------------------------------------;
|
||||
;
|
||||
|
||||
@ -279,9 +279,9 @@ INIT_CONFIG_ALL:
|
||||
LD DE,CNF_PORT.CNF_0 + ROM.BIOS
|
||||
LD (SYS_PAGE.CONFIG_DE-#4000),DE
|
||||
|
||||
LD HL,SYS_PAGE.TASK_DATA-#4000 ; 㡨âì ¢á¥ § ¤ ç¨
|
||||
LD DE,SYS_PAGE.TASK_DATA+1-#4000
|
||||
LD BC,#FF
|
||||
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),0
|
||||
LDIR
|
||||
|
||||
|
||||
@ -95,7 +95,7 @@ COMAND_ISD2:
|
||||
CALL ISDOS
|
||||
JP SW_ROM_1
|
||||
|
||||
|
||||
;!TODO ¯¥à¥¤¥« âì ¯®¤ ¯¥à¥ª«î票¥ à §ë¥ á¯¥ªâàã¬ë á § ¯ãé¥ë¬¨ § ¤ ç ¬¨
|
||||
TASK_SWITCH:
|
||||
; *** ‘®åà ¨âì § ¤ çã ***
|
||||
PUSH IY
|
||||
@ -123,76 +123,93 @@ TASK_SWITCH:
|
||||
RLCA
|
||||
RLCA
|
||||
RLCA
|
||||
AND #30 ; ®¢ ï § ¤ ç 0..3
|
||||
AND #30 ; ®¢ ï § ¤ ç 0..3
|
||||
LD C,A
|
||||
|
||||
IN A,(SLOT3)
|
||||
LD B,A ; 3-ï áâà ¨æ ⥪ã饩 § ¤ ç¨
|
||||
LD B,A ; 3-ï áâà ¨æ ⥪ã饩 § ¤ ç¨
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
|
||||
LD IX,SYS_PAGE.TASK_DATA ; ¤ ë¥ § ¤ ç
|
||||
LD E,(IX) ; áâ à ï § ¤ ç
|
||||
LD D,0
|
||||
ADD IX,DE ; ¤ ë¥ â¥ªã饩 § ¤ ç¨
|
||||
LD E,16
|
||||
ADD IX,DE ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
|
||||
LD (IX+1),B ; á®åà ¨âì áâà ¨æã 3
|
||||
LD IX,SYS_PAGE.CURRENT_TASK ; ¤ ë¥ § ¤ ç
|
||||
; !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 ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
ADD A,(IX) ; ᬥ饨¥ ¤ ëå ⥪ã饩 § ¤ ç¨
|
||||
LD E,A
|
||||
LD D,0
|
||||
ADD IX,DE ; ¤ ë¥ â¥ªã饩 § ¤ ç¨
|
||||
;
|
||||
LD (IX + ZX_TASK_DATA.SLOT3_PAGE),B ; á®åà ¨âì áâà ¨æã 3
|
||||
LD HL,0
|
||||
ADD HL,SP
|
||||
LD (IX+2),L ; á®åà ¨âì á⥪ § ¤ ç¨
|
||||
LD (IX+3),H
|
||||
SET 0,(IX) ; ãáâ ®¢¨âì ä« £ á®åà ¥®á⨠⥪ã饩 § ¤ ç¨
|
||||
RES 1,(IX) ; ãáâ ®¢¨âì ä« £, çâ® § ¤ ç ¯®ª¨ãâ
|
||||
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.TASK_DATA
|
||||
LD E,C
|
||||
LD D,0
|
||||
ADD IX,DE ; ®¢ ï § ¤ ç
|
||||
LD E,16
|
||||
ADD IX,DE ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
LD IX,SYS_PAGE.CURRENT_TASK
|
||||
; !TEST
|
||||
;LD E,C
|
||||
;LD D,0
|
||||
;ADD IX,DE ; ®¢ ï § ¤ ç
|
||||
;LD E,16
|
||||
LD A,SYS_PAGE.CURRENT_TASK.Size ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
ADD A,C ; ᬥ饨¥ ¤ ëå ®¢®© § ¤ ç¨
|
||||
LD E,A
|
||||
LD D,0
|
||||
;
|
||||
ADD IX,DE ; ¤ ë¥ ®¢®© § ¤ ç¨
|
||||
|
||||
BIT 1,(IX)
|
||||
; JR NZ,TASK_IN_WORK ; § ¤ ç ¢ à ¡®â¥ ??? ¥¢¥à®¥ § ¢¥à襨¥
|
||||
; á¡à áë¢ âì ¨«¨ ¯à®áâ® ¢®§¢à é âìáï
|
||||
BIT 1,(IX + ZX_TASK_DATA.STATE)
|
||||
; JR NZ,TASK_IN_WORK ; § ¤ ç ¢ à ¡®â¥ ??? ¥¢¥à®¥ § ¢¥à襨¥
|
||||
; ; á¡à áë¢ âì ¨«¨ ¯à®áâ® ¢®§¢à é âìáï
|
||||
|
||||
BIT 0,(IX) ; ¡ë« á®åà ¥ /¥â
|
||||
JR NZ,TASK_SET ; § ¤ ç áãé¥áâ¢ã¥â
|
||||
BIT 0,(IX + ZX_TASK_DATA.STATE) ; ¡ë« á®åà ¥ /¥â
|
||||
JR NZ,TASK_SET ; § ¤ ç áãé¥áâ¢ã¥â
|
||||
|
||||
; § ¤ ç¨ ¥ ¡ë«®!
|
||||
LD IX,SYS_PAGE.TASK_DATA
|
||||
LD A,C ; § ¤ ç
|
||||
LD (IX),A ; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩
|
||||
LD IX,SYS_PAGE.CURRENT_TASK
|
||||
LD A,C ; § ¤ ç
|
||||
LD (IX),A ; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩
|
||||
|
||||
JP SPECTRUM_TASK ; § ¯ãáâ¨âì ®¢ãî § ¤ çã!
|
||||
; ¨ ¯®ª ¯®ä¨£ à á¯à¥¤¥«¥¨¥ ¯ ¬ïâ¨!
|
||||
JP SPECTRUM_TASK ; § ¯ãáâ¨âì ®¢ãî § ¤ çã!
|
||||
; ; ¨ ¯®ª ¯®ä¨£ à á¯à¥¤¥«¥¨¥ ¯ ¬ïâ¨!
|
||||
|
||||
TASK_SET:
|
||||
LD IX,TASK_RESTORE
|
||||
LD A,C
|
||||
EXX
|
||||
JP INIT_PAGES ; ¯¥à¥ª«îç¨âì ¢á¥ áâà ¨æë!
|
||||
JP INIT_PAGES ; ¯¥à¥ª«îç¨âì ¢á¥ áâà ¨æë!
|
||||
|
||||
TASK_RESTORE:
|
||||
EXX
|
||||
LD A,SYS_PAGE
|
||||
OUT (SLOT3),A
|
||||
LD A,C
|
||||
LD IX,SYS_PAGE.TASK_DATA
|
||||
LD (IX),A ; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩
|
||||
LD IX,SYS_PAGE.CURRENT_TASK
|
||||
LD (IX),A ; ãáâ ®¢¨âì ®¢ãî § ¤ çã ⥪ã饩
|
||||
|
||||
LD E,A
|
||||
LD D,0
|
||||
ADD IX,DE ; ®¢ ï § ¤ ç
|
||||
LD E,16
|
||||
ADD IX,DE
|
||||
; !TEST
|
||||
;LD E,A
|
||||
;LD D,0
|
||||
;ADD IX,DE ; ®¢ ï § ¤ ç
|
||||
;LD E,16
|
||||
ADD A,SYS_PAGE.CURRENT_TASK.Size ; ᬥ饨¥ ¤ ëå ¢ â ¡«¨æ¥ § ¤ ç
|
||||
LD E,A
|
||||
LD D,0
|
||||
;
|
||||
ADD IX,DE
|
||||
|
||||
LD L,(IX+2) ; ¢á¯®¬¨âì á⥪
|
||||
LD H,(IX+3)
|
||||
LD SP,HL
|
||||
LD A,(IX+1) ; ¢á¯®¬¨âì âà¥âìî áâà ¨æã
|
||||
OUT (SLOT3),A
|
||||
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); ¢á¯®¬¨âì âà¥âìî áâà ¨æã
|
||||
OUT (SLOT3),A
|
||||
|
||||
|
||||
POP AF ; ¢®ááâ ®¢¨âì
|
||||
|
||||
Loading…
Reference in New Issue
Block a user