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