mirror of
https://github.com/Tolik-Trek/DOOM2.git
synced 2026-06-15 09:01:34 +03:00
correct work in DSS
This commit is contained in:
parent
b27ca37cc9
commit
4259263dee
87
D2_FRAM.asm
87
D2_FRAM.asm
@ -15,9 +15,7 @@ SND_READ_SECTORS EQU 4
|
||||
|
||||
Module__D2_FRAM__Start EQU $
|
||||
;
|
||||
TRACE:
|
||||
|
||||
IN A,(SLOT1)
|
||||
TRACE: IN A,(SLOT1)
|
||||
LD (TRACE_RET_SLOT1),A
|
||||
IN A,(SLOT3)
|
||||
LD (TRACE_RET_SLOT3),A
|
||||
@ -47,19 +45,19 @@ TRACE:
|
||||
NO_SKY_2:
|
||||
OUT (SLOT1),A
|
||||
|
||||
LD A,0 ;????????? ¥ 㦮?
|
||||
;LD A,0 ;????????? ¥ 㦮?
|
||||
LD C,80
|
||||
SKY_LOOP_1:
|
||||
|
||||
ACC_SetBlockSize
|
||||
LD B,0
|
||||
LD A,0
|
||||
ACC_CopyBlock
|
||||
LD B,(HL)
|
||||
ACC_SetBlockSize
|
||||
LD B,#80
|
||||
ACC_Off
|
||||
|
||||
XOR A
|
||||
;XOR A
|
||||
|
||||
OUT (PORT_Y),A
|
||||
ACC_CopyScreenBlock
|
||||
@ -118,7 +116,7 @@ NO_NEXT_SKY:
|
||||
|
||||
EXX
|
||||
SCREEN_1+1:
|
||||
LD DE,#C040 ; ç «® íªà
|
||||
LD DE,ScreenStartAddress ; ç «® íªà
|
||||
LD C,0 ;!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
EXX
|
||||
;
|
||||
@ -154,7 +152,6 @@ PLACE_L+1:
|
||||
OUT (SLOT1),A
|
||||
LD (CONT_PAGE),A
|
||||
; JR TRACE_LOOP
|
||||
|
||||
TRACE_LOOP:
|
||||
LD A,#50
|
||||
OUT (SLOT3),A
|
||||
@ -170,20 +167,19 @@ TRACE_LOOP:
|
||||
ENDR
|
||||
|
||||
PURE_LINE:
|
||||
;
|
||||
EXX
|
||||
ACC_SetBlockSize
|
||||
LD A,#80 ; ¯ãáâ ï á⥪
|
||||
ACC_Off
|
||||
; LD (DE),A ; LINE-Z-bufer
|
||||
;LD (DE),A ; LINE-Z-Buffer
|
||||
OUT (PORT_Y),A
|
||||
|
||||
;
|
||||
LD A,(COLOR_LO)
|
||||
|
||||
;
|
||||
ACC_FillScreenOneByte
|
||||
LD (DE),A
|
||||
ACC_Off
|
||||
LD A,#70 ; Z-bufer
|
||||
LD A,#70 ; Z-Buffer
|
||||
LD (DE),A
|
||||
EXX
|
||||
;
|
||||
@ -252,7 +248,7 @@ PLACE_L2+1: LD A,5
|
||||
OUT (PORT_Y),A ; á á ¬®£® ç «
|
||||
|
||||
ACC_SetBlockSize
|
||||
LD (DE),A ; 256 ¡ ©â ˆ LINE-Z-bufer!!!!
|
||||
LD (DE),A ; 256 ¡ ©â ˆ LINE-Z-Buffer!!!!
|
||||
ACC_Off
|
||||
LD A,#58
|
||||
OUT (SLOT3),A
|
||||
@ -260,7 +256,7 @@ PLACE_L2+1: LD A,5
|
||||
LD (DE),A ; ”ˆƒ€Š‘ ¢áî «¨¨î!!!
|
||||
ACC_Off
|
||||
XOR A
|
||||
LD (DE),A ; LINE-Z-bufer!!!!
|
||||
LD (DE),A ; LINE-Z-Buffer!!!!
|
||||
EXX
|
||||
;
|
||||
JR NEXT_ANGLE
|
||||
@ -268,7 +264,7 @@ PLACE_L2+1: LD A,5
|
||||
HIGH_1:
|
||||
; A - ¢ëá®â , á ª®â®à®© à¨áã¥âáï á⥪
|
||||
ACC_SetBlockSize
|
||||
LD (DE),A ; ç¨á«® â®ç¥ª ¯®â®«ª ¨ ¯®« ! & LINE-Z-bufer
|
||||
LD (DE),A ; ç¨á«® â®ç¥ª ¯®â®«ª ¨ ¯®« ! & LINE-Z-Buffer
|
||||
ACC_Off
|
||||
NEG ; ¯®«ãç¨âì ¯®«®¦¥¨¥ ç « ¯®«
|
||||
OUT (PORT_Y),A
|
||||
@ -873,7 +869,7 @@ WALL: IN A,(SLOT3)
|
||||
LD (WALL_SLOT1_RET),A
|
||||
IN A,(PORT_Y)
|
||||
LD (WALL_PORT_Y_RET),A
|
||||
LD A,#58
|
||||
LD A,#5C
|
||||
OUT (SLOT3),A
|
||||
|
||||
LD A,(IX+0) ; áâà ¨æ á⥪¨
|
||||
@ -881,7 +877,7 @@ WALL: IN A,(SLOT3)
|
||||
|
||||
EXX
|
||||
LD C,0 ; ¯®àâ ¬ áèâ ¡
|
||||
|
||||
;
|
||||
LD H,TABLE_X/256 ; â ¡«¨æ ¢ëá®â ¨ ª®í䍿¨¥â®¢ ¬ áèâ ¡¨à®¢ ¨ï
|
||||
LD L,(IX+3) ; ¯®«®¦¥¨¥ ¯® Y / ®¯à¥¤¥«ï¥â ¢ëá®âã
|
||||
LD A,(HL) ; ¬ áèâ ¡ - LOW
|
||||
@ -891,17 +887,16 @@ WALL: IN A,(SLOT3)
|
||||
LD A,(HL) ; ¬ áèâ ¡ - HIGH
|
||||
LD (X_ADD2),A
|
||||
DEC H
|
||||
|
||||
;
|
||||
LD A,L
|
||||
ADD A,A
|
||||
NEG ; è¨à¨ ¯® £®à¨§®â «¨
|
||||
|
||||
;
|
||||
BIT 0,(IX+M_VAR3)
|
||||
JR Z,NO_DEL2
|
||||
RRA
|
||||
AND #7F
|
||||
NO_DEL2:
|
||||
BIT 1,(IX+M_VAR3)
|
||||
NO_DEL2: BIT 1,(IX+M_VAR3)
|
||||
JR Z,NO_DEL4
|
||||
AND A
|
||||
RRA
|
||||
@ -930,7 +925,7 @@ NO_DEL4:
|
||||
; ; ¢ A ᪮«ìª® «¨¨© ¤® ç « íªà
|
||||
;WALL_NO_SCF:
|
||||
;
|
||||
; LD HL,140h
|
||||
; LD HL,#0140
|
||||
; AND A
|
||||
; SBC HL,DE
|
||||
; LD A,L ; ¢ A - ᪮«ìª® «¨¨© ®áâ «®áì ¤® ª®æ íªà ??
|
||||
@ -947,6 +942,7 @@ NO_DEL4:
|
||||
; LD E,A
|
||||
LD D,0
|
||||
SBC HL,DE
|
||||
;!FIXIT ¯®á«¥ ¢ëç¨â ¨ï ¢ HL ¤à¥á ¯® ª®â®à®¬ã ¡ã¤¥â § ¯¨áì ¡«®ª , ¬®¦¥â § «¥§ âì èà¨äâë
|
||||
EX DE,HL
|
||||
|
||||
LD H,(IX+2) ; áâ à訩 ¤à¥á á⥪¨
|
||||
@ -960,12 +956,13 @@ WOLL_LOOP:
|
||||
OUT (PORT_Y),A
|
||||
|
||||
LD A,D
|
||||
;!FIXIT âã⠯஢¥àª áâ à訩 ¤à¥á, ® èà¨äâ ¬ íâ® ¥ ¯®¬®¦¥â
|
||||
CP #C3
|
||||
JR NC,NO_WRITE_ALL ; ¥ ¢ë¢®¤¨âì § íªà ¨ § ª®ç¨âì
|
||||
CP #C0
|
||||
JR C,NO_WRITE_LINE ; ¥ ¢ë¢®¤¨âì § íªà
|
||||
|
||||
LD A,(DE) ; Z-bufer!!!
|
||||
;!FIXIT âãâ ¬®¦¥â ç¨â âìáï ¨§ ®¡« á⨠èà¨ä⮢
|
||||
LD A,(DE) ; ç⥨¥ ¨§ Z-Buffer
|
||||
EXX
|
||||
CP L
|
||||
EXX
|
||||
@ -1009,7 +1006,7 @@ NO_Z_A1:
|
||||
XOR A
|
||||
NO_Z_A:
|
||||
OUT (PORT_Y),A ; § ¤ âì ¯®àâ Y
|
||||
|
||||
;!FIXIT âãâ ¬®¦¥â ¯¨á âìáï ¢ ®¡« áâì èà¨ä⮢
|
||||
ACC_CopyScreenBlock
|
||||
LD (DE),A ; ¢ë¢¥á⨠«¨¨î
|
||||
ACC_Off
|
||||
@ -1174,7 +1171,7 @@ MAP_L8:
|
||||
LD A,(HL)
|
||||
LD (DE),A
|
||||
LD A,L
|
||||
SUB 40H
|
||||
SUB #40
|
||||
LD L,A
|
||||
LD A,H
|
||||
SBC A,0
|
||||
@ -1687,7 +1684,6 @@ TAB_ANGLE:
|
||||
DB -1 , 1
|
||||
DB -1 , 1
|
||||
DB 0 , 1 ; 0
|
||||
|
||||
TAB_ANGLE2:
|
||||
DB 0 , 2 ; 0
|
||||
DB 1 , 2 ; 22
|
||||
@ -1705,12 +1701,9 @@ TAB_ANGLE2:
|
||||
DB -2 , 1
|
||||
DB -2 , 2
|
||||
DB -1 , 2 ; 0
|
||||
|
||||
TAB_ANGLE3:
|
||||
|
||||
DB 4 , 2 ; 67
|
||||
DB 4 , 1 ; 67
|
||||
|
||||
DB 4 , 0 ; 90
|
||||
DB 4 , -1 ; 112
|
||||
DB 4 , -2 ; 135
|
||||
@ -1719,7 +1712,6 @@ TAB_ANGLE3:
|
||||
DB 3 , -4 ; 157
|
||||
DB 2 , -4 ; 157
|
||||
DB 1 , -4 ; 157
|
||||
|
||||
DB 0 , -4 ; 180
|
||||
DB -1 , -4
|
||||
DB -2 , -4
|
||||
@ -1728,7 +1720,6 @@ TAB_ANGLE3:
|
||||
DB -4 , -3
|
||||
DB -4 , -2
|
||||
DB -4 , -1
|
||||
|
||||
DB -4 , 0
|
||||
DB -4 , 1
|
||||
DB -4 , 2
|
||||
@ -1737,7 +1728,6 @@ TAB_ANGLE3:
|
||||
DB -3 , 4 ; 0
|
||||
DB -2 , 4 ; 0
|
||||
DB -1 , 4 ; 0
|
||||
|
||||
DB 0 , 4 ; 0
|
||||
DB 1 , 4 ; 0
|
||||
DB 2 , 4 ; 22
|
||||
@ -1823,7 +1813,6 @@ A_NO_ADD2:
|
||||
; H - Y-ª®®à¤¨ â
|
||||
|
||||
MONSTR_ALL1:
|
||||
|
||||
LD A,L
|
||||
ADD A,A
|
||||
ADD A,A
|
||||
@ -1880,13 +1869,15 @@ MONST_H1:
|
||||
LD (IX+M_HOR),L ; 㣮«
|
||||
LD (IX+M_HOR+1),H
|
||||
|
||||
LD DE,128
|
||||
ADD HL,DE
|
||||
|
||||
LD DE,256+320
|
||||
AND A
|
||||
; LD DE,128 ; € çñ¡ ¥ ã¯à®áâ¨âì â ª:
|
||||
; ADD HL,DE ; LD DE,256+320-128
|
||||
; LD DE,256+320 ; SBC HL,DE
|
||||
; AND A ; ¨ ¢áñ... HL ¬®¦¥â ¯¥à¥¯®«ïâìáï ¯à¨ ADD 128? - ¥â
|
||||
; SBC HL,DE ; ; ¯à®¢¥àª ¯®¯ ¤ ¨ï ¬®áâà ¢ 㣮« §à¥¨ï
|
||||
LD DE,256+320-128
|
||||
SBC HL,DE ; ¯à®¢¥àª ¯®¯ ¤ ¨ï ¬®áâà ¢ 㣮« §à¥¨ï
|
||||
|
||||
|
||||
CALL C,WALL
|
||||
|
||||
CALL SOUND
|
||||
@ -1902,14 +1893,14 @@ MONSTR_NEXT_P:
|
||||
RET NZ
|
||||
|
||||
LD A,(IX+M_VAR2) ; áç¥â稪 横«
|
||||
AND 0Fh
|
||||
AND #0F
|
||||
RLCA
|
||||
RLCA
|
||||
RLCA
|
||||
RLCA
|
||||
ADD A,(IX+M_VAR2) ; ¤®¡ ¢¨âì ¬« ¤è¨© ¡ ©â ª áâ à襬ã
|
||||
LD (IX+M_VAR2),A
|
||||
AND 0F0h
|
||||
AND #F0
|
||||
RET NZ ; ¢¥àãâìáï, ¥á«¨ ¥ 0
|
||||
|
||||
; JR NC,NO_ADD_MX
|
||||
@ -1962,15 +1953,15 @@ CONT_MONS:
|
||||
|
||||
LD A,(IX+M_ADR+1) ; ¯¥à¥ª«îç â¥«ì ¤à¥á
|
||||
ADD A,(IX+M_VAR4) ; ᪮«ìª® ¤®¡ ¢«ïâì
|
||||
AND 3Fh
|
||||
OR 40h
|
||||
AND #3F
|
||||
OR #40
|
||||
LD (IX+M_ADR+1),A
|
||||
CP 40h ; ¯à¨§ ª § ¢¥àè¥¨ï æ¨ª«
|
||||
CP #40 ; ¯à¨§ ª § ¢¥àè¥¨ï æ¨ª«
|
||||
RET
|
||||
|
||||
SW_MONS:
|
||||
LD A,(IX+M_ADR) ; ¯¥à¥ª«îç â¥«ì ¤à¥á
|
||||
ADD A,40H
|
||||
ADD A,#40
|
||||
LD (IX+M_ADR),A
|
||||
AND A ; ¯à¨§ ª § ¢¥àè¥¨ï æ¨ª«
|
||||
;NO_ADD_MX:
|
||||
@ -2009,9 +2000,9 @@ SAVE_P2: DW 0
|
||||
SAVE_PIC:
|
||||
IN A,(SCREEN_SWITCH)
|
||||
AND 1
|
||||
LD HL,#C040
|
||||
LD HL,ScreenStartAddress
|
||||
JR NZ,SET_1X
|
||||
LD HL,#C180
|
||||
LD HL,ScreenStartAddress + #0140
|
||||
SET_1X:
|
||||
LD IX,TABLE_PIC
|
||||
LD A,(IX)
|
||||
|
||||
334
DOOM2.asm
334
DOOM2.asm
@ -5,7 +5,8 @@
|
||||
;---------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
ScreenStartAddress EQU #C040
|
||||
;ScreenStartAddress EQU #C000
|
||||
;
|
||||
;---------------------------[Defines section]---------------------------
|
||||
DEFINE EXE_HEADER 1
|
||||
@ -71,15 +72,15 @@ CMD_Line+1:
|
||||
LD HL,#8080
|
||||
CALL SET_HOME_PATH
|
||||
;--------[§ £à㧪 à¥áãàᮢ ¨£àë]-------
|
||||
; ¢ë¯®«¥® ¢ ¢¨¤¥ ª®áâë«ì®© § £«ã誨
|
||||
LD HL,Loading_TXT
|
||||
LD C,Dss.PChars
|
||||
RST ToDSS
|
||||
;
|
||||
CALL SAVE_ALL
|
||||
; ¢ë¯®«¥® ¢ ¢¨¤¥ ª®áâë«ì®© § £«ã誨
|
||||
CALL Load_Resources
|
||||
;
|
||||
CALL SAVE_PAL
|
||||
CALL SAVE_TXT_SCREEN
|
||||
;CALL SAVE_TXT_SCREEN
|
||||
; LD A,Dss.SetVMod.grf320x256
|
||||
; LD BC,Dss.SetVMod.Screen_1
|
||||
; RST ToDSS
|
||||
@ -111,7 +112,7 @@ CMD_Line+1:
|
||||
ld a,(RAMBlkIDs.d2_fram)
|
||||
ld (D2_FRAM_page),a
|
||||
|
||||
;----[]
|
||||
;----[;!FIXIT ¯¥à¥¤¥« âì ¬ã§«® API 5x]
|
||||
; ‡ ¯à 訢 ¥¬ áâà ¨æã ¤«ï ª â «®£
|
||||
; á®åà 塞 ¥ñ ü ¢ ª®¤¥
|
||||
;
|
||||
@ -142,8 +143,8 @@ CMD_Line+1:
|
||||
CALL SET_PAL
|
||||
|
||||
;----[®âªàëâì ¯®àâë ¬ áèâ ¡¨à®¢ ¨ï]----
|
||||
; ®¤¨ ¢ãâ२© ¯®àâ ¬ áèâ ¡¨à®¢ ¨ï ¬ ¯¯¨âáï ¤¨ ¯¯ §® #XX00
|
||||
; ¢¥è¨å ¯®à⮢. Write, Dos off, CNF 0.
|
||||
; ®¤¨ ¢ãâ२© ¯®àâ ¬ áèâ ¡¨à®¢ ¨ï ¬ ¯¯¨âáï ¤¨ ¯¯ §®
|
||||
; #XX00 ¢¥è¨å ¯®à⮢. Write, Dos off, CNF 0.
|
||||
LD A,1
|
||||
LD HL, %0000'0100'0000'0000 ; § 票¥
|
||||
LD DE, %1111'1110'0110'1111 ; ¬ áª
|
||||
@ -166,7 +167,7 @@ CMD_Line+1:
|
||||
; EX AF,AF'
|
||||
; OUT (SLOT3),A
|
||||
; €ªâ¨¢ æ¨ï €ªá¥«ï ¬ áèâ ¡¨à®¢ ¨ï, ®¡à ⮠⮫쪮 ç¥à¥§ à¥á¥â
|
||||
LD BC,#100 ; C - ¬ áèâ ¡ 1:1
|
||||
LD BC,#0100 ; C - ¬ áèâ ¡ 1:1
|
||||
OUT (C),C
|
||||
;-----------------------------------------------------------------------
|
||||
|
||||
@ -188,18 +189,6 @@ CMD_Line+1:
|
||||
;
|
||||
;-----------[EXIT Procedure]------------;
|
||||
RETURN_POINT:
|
||||
; DI
|
||||
; LD A,#10
|
||||
; LD BC,#1FFD
|
||||
; OUT (C),A
|
||||
; LD A,RESET_PAGE
|
||||
; OUT (SLOT3),A
|
||||
; LD (#C000),HL
|
||||
; HALT_L:
|
||||
; ;DI
|
||||
; HALT
|
||||
; JR HALT_L
|
||||
|
||||
IN A,(FastRAM.OFF)
|
||||
LD A,SYS_PORT.BIOS
|
||||
OUT (SYS_PORT.RAM),A
|
||||
@ -210,6 +199,10 @@ RETURN_POINT:
|
||||
;
|
||||
CALL RESTORE_ALL
|
||||
;
|
||||
LD HL,GOTO_EXIT
|
||||
LD C,Dss.PChars
|
||||
RST ToDSS
|
||||
;
|
||||
.loop: LD BC,Dss.Exit
|
||||
RST ToDSS
|
||||
JR .loop
|
||||
@ -299,19 +292,18 @@ CLEAR_GRAF_SCR:
|
||||
XOR A
|
||||
OUT (PORT_Y),A
|
||||
|
||||
LD SP,#C040 + 640
|
||||
LD SP,ScreenStartAddress + 640
|
||||
LD B,640/4
|
||||
|
||||
;!!!!!!!!!!![®¯â¨¬¨§¨à®¢ âì]!!!!!!!!!!!!
|
||||
LOOP_CLS:
|
||||
;!TODO ![®¯â¨¬¨§¨à®¢ âì]!
|
||||
ACC_SetBlockSize
|
||||
LD E,0
|
||||
LD D,E
|
||||
LOOP_CLS:
|
||||
ACC_FillScreenOneByte
|
||||
PUSH DE
|
||||
PUSH DE
|
||||
ACC_Off
|
||||
|
||||
DJNZ LOOP_CLS
|
||||
;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
SPSave2+1:
|
||||
@ -466,9 +458,9 @@ MAIN: CALL INIT_TABLE
|
||||
|
||||
; !FIXIT ¯¥à¥¤¥« âì «®£¨ªã ¯®¤ ®¢ë© ¡¨®á?
|
||||
;---[ãáâ ®¢ª á¨åàë, ®ç¨á⪠íªà ]--
|
||||
LD A,2 ; ०¨¬ Pentagon - 320 áâப ¢ íªà ¥
|
||||
LD C,BIOS.FN_SYNC
|
||||
RST ToBIOS
|
||||
; LD A,2 ; ०¨¬ Pentagon - 320 áâப ¢ íªà ¥
|
||||
; LD C,BIOS.FN_SYNC
|
||||
; RST ToBIOS
|
||||
;---------------------------------------
|
||||
|
||||
;------[Žâªàë⨥ áâ ¤ àâëå ®ª®]------
|
||||
@ -480,44 +472,21 @@ MAIN: CALL INIT_TABLE
|
||||
; HL - ¬¥áâ® íªà ¥ ¯® § ª®¬¥áâ ¬
|
||||
; (ª®¯¨ï ¢ IX+2,3), ¢ ®¢ëå ¢¥àá¨ïå
|
||||
; ¡¨®á § 票¥ HL ¥ áãé¥á⢥®
|
||||
;
|
||||
LD HL,#4000
|
||||
LD E,1
|
||||
LD E,0
|
||||
LD B,8 ; £à ä¨ç¥áª®¥ ®ª® 0, HL - ¯®«®¦¥¨¥ ®ª
|
||||
LD C,BIOS.LP_OPEN_S
|
||||
RST ToBIOS
|
||||
|
||||
;
|
||||
LD HL,#5000
|
||||
LD E,1
|
||||
LD B,9 ; £à ä¨ç¥áª®¥ ®ª® 1, HL - ¯®«®¦¥¨¥ ®ª
|
||||
LD C,BIOS.LP_OPEN_S
|
||||
RST ToBIOS
|
||||
/*
|
||||
LD A,Dss.SetVMod.grf320x256
|
||||
LD BC,Dss.SetVMod.Screen_0
|
||||
RST ToDSS
|
||||
LD A,Dss.SetVMod.grf320x256
|
||||
LD BC,Dss.SetVMod.Screen_1
|
||||
RST ToDSS
|
||||
;£à ä¨ç¥áª®¥ ®ª® 0
|
||||
PIC_320X256_1:
|
||||
DB 40,32,0,0,32,0,08,0
|
||||
DB 40,32,0,0,96,0,48,0
|
||||
|
||||
DB 40,32,0,0,32,0,00,0 ;4
|
||||
DB 40,32,0,0,96,0,40,0 ;6
|
||||
|
||||
;£à ä¨ç¥áª®¥ ®ª® 1
|
||||
PIC_320X256_2:
|
||||
|
||||
; 320x256. £à ä¨ç¥áª®¥, 0-© íªà
|
||||
TAB_320x256_0
|
||||
|
||||
; 320x256. £à ä¨ç¥áª®¥, 1-© íªà
|
||||
TAB_320x256_1
|
||||
*/
|
||||
;---------------------------------------
|
||||
|
||||
LD A,1
|
||||
LD A,(RESTORE_ALL.scr)
|
||||
OUT (SCREEN_SWITCH),A
|
||||
|
||||
;----[¯¥à¥¡à®á ç á⨠ª®¤ ¢ FastRAM]----
|
||||
@ -732,13 +701,13 @@ CONT_WORK:
|
||||
|
||||
SCR_SWITCH:
|
||||
IN A,(SCREEN_SWITCH)
|
||||
AND 1
|
||||
;AND 1
|
||||
XOR 1
|
||||
OUT (SCREEN_SWITCH),A
|
||||
|
||||
LD DE,#C040
|
||||
LD DE,ScreenStartAddress
|
||||
JR Z,SET_1
|
||||
LD DE,#C180
|
||||
LD DE,ScreenStartAddress + #0140
|
||||
SET_1:
|
||||
LD (SCREEN_1),DE
|
||||
RET
|
||||
@ -1607,19 +1576,48 @@ SET_HOME_PATH:
|
||||
RET
|
||||
;***********************************************************************
|
||||
SAVE_PAL:
|
||||
IN A,(SLOT2)
|
||||
PUSH AF
|
||||
LD A,SYS_PORT.BIOS
|
||||
OUT (SYS_PORT.ON),A
|
||||
IN A,(FastRAM.ON)
|
||||
LD A,1
|
||||
OUT (FastRAM.SLOT0),A
|
||||
;
|
||||
LD A,#50
|
||||
OUT (SLOT3),A
|
||||
XOR A
|
||||
OUT (PORT_Y),A
|
||||
;
|
||||
LD HL,Pal_Restore_Buffer+#4000
|
||||
LD DE,0
|
||||
LD A,4
|
||||
LD C,BIOS.PIC_GET_PAL
|
||||
RST ToBIOS
|
||||
.loop: LD HL,#C3E0
|
||||
LD BC,#20
|
||||
LDIR
|
||||
IN A,(PORT_Y)
|
||||
INC A
|
||||
OUT (PORT_Y),A
|
||||
JR NZ,.loop
|
||||
;
|
||||
XOR A
|
||||
OUT (FastRAM.SLOT0),A
|
||||
IN A,(FastRAM.OFF)
|
||||
XOR A
|
||||
OUT (SYS_PORT.OFF),A
|
||||
RET
|
||||
|
||||
|
||||
; IN A,(SLOT3)
|
||||
; PUSH AF
|
||||
; IN A,(SLOT2)
|
||||
; OUT (SLOT3),A
|
||||
; ;
|
||||
; LD HL,Pal_Restore_Buffer+#4000
|
||||
; LD DE,0
|
||||
; LD A,#80 + 0
|
||||
; LD C,BIOS.PIC_GET_PAL
|
||||
; RST ToBIOS
|
||||
; ;
|
||||
; LD HL,Pal_Restore_Buffer+#4000 + 1024
|
||||
; LD DE,0
|
||||
; LD A,5
|
||||
; LD A,#80 + 1
|
||||
; LD C,BIOS.PIC_GET_PAL
|
||||
; RST ToBIOS
|
||||
; ;
|
||||
@ -1635,21 +1633,48 @@ SAVE_PAL:
|
||||
; LD C,BIOS.PIC_GET_PAL
|
||||
; RST ToBIOS
|
||||
;
|
||||
POP AF
|
||||
OUT (SLOT3),A
|
||||
RET
|
||||
; POP AF
|
||||
; OUT (SLOT3),A
|
||||
; RET
|
||||
;***********************************************************************
|
||||
RESTORE_PAL:
|
||||
LD A,SYS_PORT.BIOS
|
||||
OUT (SYS_PORT.ON),A
|
||||
IN A,(FastRAM.ON)
|
||||
LD A,1
|
||||
OUT (FastRAM.SLOT0),A
|
||||
;
|
||||
IN A,(SLOT2)
|
||||
PUSH AF
|
||||
LD A,#50
|
||||
OUT (SLOT3),A
|
||||
XOR A
|
||||
OUT (PORT_Y),A
|
||||
;
|
||||
LD HL,Pal_Restore_Buffer+#4000
|
||||
LD DE,0
|
||||
LD A,4
|
||||
LD BC,#FF*256 + BIOS.PIC_SET_PAL ; ãáâ ®¢ª ¯ «¨âàë
|
||||
RST ToBIOS
|
||||
LD HL,0
|
||||
.loop: LD DE,#C3E0
|
||||
LD BC,#20
|
||||
LDIR
|
||||
IN A,(PORT_Y)
|
||||
INC A
|
||||
OUT (PORT_Y),A
|
||||
JR NZ,.loop
|
||||
;
|
||||
XOR A
|
||||
OUT (FastRAM.SLOT0),A
|
||||
IN A,(FastRAM.OFF)
|
||||
XOR A
|
||||
OUT (SYS_PORT.OFF),A
|
||||
RET
|
||||
|
||||
;
|
||||
; IN A,(SLOT2)
|
||||
; PUSH AF
|
||||
; OUT (SLOT3),A
|
||||
; ;
|
||||
; LD HL,Pal_Restore_Buffer+#4000
|
||||
; LD DE,0
|
||||
; LD A,4
|
||||
; LD BC,#FF*256 + BIOS.PIC_SET_PAL ; ãáâ ®¢ª ¯ «¨âàë
|
||||
; RST ToBIOS
|
||||
;
|
||||
; LD HL,Pal_Restore_Buffer+#4000 + 1024
|
||||
; LD DE,0
|
||||
@ -1669,70 +1694,129 @@ RESTORE_PAL:
|
||||
; LD BC,#FF*256 + BIOS.PIC_SET_PAL ; ãáâ ®¢ª ¯ «¨âàë
|
||||
; RST ToBIOS
|
||||
;
|
||||
POP AF
|
||||
OUT (SLOT3),A
|
||||
RET
|
||||
; POP AF
|
||||
; OUT (SLOT3),A
|
||||
; RET
|
||||
;***********************************************************************
|
||||
;!TODO âãâ ¥ ¯à®¢¥àï¥âáï ०¨¬ 80 ¨«¨ 40
|
||||
SAVE_TXT_SCREEN:
|
||||
LD C,BIOS.LP_GET_PLACE
|
||||
RST ToBIOS
|
||||
LD (LOAD_TXT_SCREEN.CURS),DE
|
||||
LD IX,#4000 + TXT_SCREEN
|
||||
LD HL,#2050 ; #2028
|
||||
;
|
||||
; LD (LOAD_TXT_SCREEN.SVHL1),HL
|
||||
LD DE,#0000
|
||||
IN A,(SLOT2)
|
||||
LD B,A
|
||||
LD C,BIOS.WIN_COPY
|
||||
JP ToBIOS
|
||||
|
||||
LOAD_TXT_SCREEN:
|
||||
LD IX,#4000 + TXT_SCREEN
|
||||
.SVHL1+1: LD HL,#2050 ; #2028
|
||||
LD DE,#0000
|
||||
IN A,(SLOT2)
|
||||
LD B,A
|
||||
LD C,BIOS.WIN_RESTORE
|
||||
RST ToBIOS
|
||||
;
|
||||
.CURS+1: LD DE,#0000
|
||||
LD C,Dss.Locate
|
||||
JP ToDSS
|
||||
; DEFINE _TXT_SCREEN #E000
|
||||
; SAVE_TXT_SCREEN:
|
||||
; DI
|
||||
; LD C,BIOS.LP_GET_PLACE
|
||||
; RST ToBIOS
|
||||
; LD (LOAD_TXT_SCREEN.CURS),DE
|
||||
; ;
|
||||
; XOR A
|
||||
; LD B,SHARED_PAGE
|
||||
; LD HL,#2050 ; #2028
|
||||
; LD DE,#0000
|
||||
; LD IX,_TXT_SCREEN
|
||||
; LD C,BIOS.WIN_COPY
|
||||
; JP ToBIOS
|
||||
; LOAD_TXT_SCREEN:
|
||||
; DI
|
||||
; XOR A
|
||||
; LD B,SHARED_PAGE
|
||||
; LD HL,#2050 ; #2028
|
||||
; LD DE,#0000
|
||||
; LD IX,_TXT_SCREEN
|
||||
; LD C,BIOS.WIN_RESTORE
|
||||
; RST ToBIOS
|
||||
; ;
|
||||
; .CURS+1: LD DE,#0000
|
||||
; LD C,Dss.Locate
|
||||
; JP ToDSS
|
||||
;***********************************************************************
|
||||
RESTORE_ALL:
|
||||
LD A,1
|
||||
LD HL, %0000'0100'0000'0000 ; § 票¥
|
||||
LD DE, %1111'1110'0110'1111 ; ¬ áª
|
||||
LD BC,0*256 + BIOS.DCP_CONFIG
|
||||
RST ToBIOS
|
||||
;
|
||||
; LD B,3 ; 3 - ãáâ ®¢ª CGA ¯ «¨âàë
|
||||
; LD C,BIOS.SET_PAL_INIT ; ®¬¥à äãªæ¨¨
|
||||
; RST ToBIOS ; ãáâ ®¢ª ¯ «¨âàë
|
||||
;
|
||||
LD A,Dss.SetVMod.txt80x32
|
||||
LD BC,Dss.SetVMod.Screen_0
|
||||
RST ToDSS
|
||||
LD A,Dss.SetVMod.txt80x32
|
||||
LD BC,Dss.SetVMod.Screen_1
|
||||
RST ToDSS
|
||||
;
|
||||
CALL RESTORE_PAL
|
||||
;
|
||||
.mode+1: LD A,Dss.SetVMod.txt80x32
|
||||
.scr+2: LD BC,Dss.SetVMod
|
||||
RST ToDSS
|
||||
;
|
||||
LD BC,Dss.Lib_Sub.RestoreFont
|
||||
RST ToDSS
|
||||
;
|
||||
LD A,(.mode)
|
||||
CP #80
|
||||
RET NC
|
||||
;
|
||||
.cursor+1:
|
||||
LD DE,0
|
||||
LD C,Dss.Locate
|
||||
RST ToDSS
|
||||
LD C,Dss.WinRest
|
||||
JP TXT_Screen_Copy_Restore
|
||||
;
|
||||
;***********************************************************************
|
||||
SAVE_ALL:
|
||||
CALL SAVE_PAL
|
||||
; ã§ âì ¢¨¤¥®à¥¦¨¬
|
||||
LD C,Dss.GetVMod
|
||||
RST ToDSS
|
||||
LD (RESTORE_ALL.mode),A
|
||||
LD A,B
|
||||
LD (RESTORE_ALL.scr),A
|
||||
; ¥á«¨ ०¨¬ ⥪áâ®¢ë© - á®åà ¨âì ®ª®
|
||||
LD A,(RESTORE_ALL.mode)
|
||||
CP #80
|
||||
RET NC
|
||||
;
|
||||
LD C,Dss.Cursor
|
||||
RST ToDSS
|
||||
LD (RESTORE_ALL.cursor),DE
|
||||
;
|
||||
LD C,Dss.WinCopy
|
||||
;JP TXT_Screen_Copy_Restore
|
||||
;****************************
|
||||
TXT_Screen_Copy_Restore:
|
||||
LD A,Dss.WinCopy
|
||||
SUB C
|
||||
PUSH AF
|
||||
PUSH BC
|
||||
CALL NZ,SCREEN_IN_CACHE
|
||||
;
|
||||
LD A,(RESTORE_ALL.mode)
|
||||
SUB 2
|
||||
LD DE,0
|
||||
LD HL,#2050
|
||||
LD BC,COLORS.CGA.INC.LGRAY*256 + BIOS.LP_CLS_WIN
|
||||
RST ToBIOS
|
||||
JR NZ,.next
|
||||
LD L,#28
|
||||
.next: IN A,(SLOT2)
|
||||
POP BC
|
||||
LD B,A
|
||||
LD IX,TXT_SCREEN
|
||||
RST ToDSS
|
||||
POP AF
|
||||
RET NZ
|
||||
;DEC A
|
||||
;JP SCREEN_IN_CACHE
|
||||
;****************************
|
||||
SCREEN_IN_CACHE:
|
||||
LD A,SYS_PORT.BIOS
|
||||
OUT (SYS_PORT.ON),A
|
||||
IN A,(FastRAM.ON)
|
||||
LD A,1
|
||||
OUT (FastRAM.SLOT0),A
|
||||
;
|
||||
CALL LOAD_TXT_SCREEN
|
||||
LD HL,TXT_SCREEN
|
||||
LD DE,1024*8 ; à §¬¥à ¯ «¨âàë
|
||||
JR Z,.no_change
|
||||
EX DE,HL
|
||||
.no_change:
|
||||
LD BC,80*32*2 ; ¬ ªá¨¬ «ìë© à §¬¥à ⥪á⮢®£® íªà
|
||||
LDIR
|
||||
;
|
||||
XOR A
|
||||
OUT (FastRAM.SLOT0),A
|
||||
IN A,(FastRAM.OFF)
|
||||
XOR A
|
||||
OUT (SYS_PORT.OFF),A
|
||||
RET
|
||||
;***********************************************************************
|
||||
|
||||
|
||||
;***********************************************************************
|
||||
;---------------[Tables]----------------
|
||||
ALIGN 2,0
|
||||
;
|
||||
@ -1764,6 +1848,7 @@ SND_DIR: DZ "MUSIC"
|
||||
;Up_Dir: DZ ".."
|
||||
;
|
||||
Loading_TXT: DZ "\r\nPlease wait, resources are loading..."
|
||||
GOTO_EXIT: DZ "\r\n < GAME OVER))) >"
|
||||
;
|
||||
; IFN NORM_syncPORT
|
||||
|
||||
@ -1786,8 +1871,7 @@ Loading_TXT: DZ "\r\nPlease wait, resources are loading..."
|
||||
;CURRENT_DIR: BLOCK 257,0
|
||||
|
||||
;------------------------------------
|
||||
Pal_Restore_Buffer EQU $ ;Temp_Buffer + 256
|
||||
Temp_Buffer EQU Pal_Restore_Buffer + 1024 + 1024
|
||||
Temp_Buffer EQU $
|
||||
TXT_SCREEN EQU Temp_Buffer + 257
|
||||
;
|
||||
;
|
||||
|
||||
15
Music_4x.asm
15
Music_4x.asm
@ -1,5 +1,6 @@
|
||||
|
||||
;-----------------------------------------------------------------------
|
||||
;!FIXIT ¯¥à¥¤¥« âì ¬ã§«® API 5x
|
||||
;-------[¨¨æ¨ «¨§ æ¨ï ¢¨ç¥áâ¥à ]------;
|
||||
INIT_HDD_WORK:
|
||||
.currentDisk+1: ;
|
||||
@ -61,20 +62,6 @@ INIT_HDD_WORK:
|
||||
OUT (SLOT3),A
|
||||
|
||||
;[ ] music and dirs
|
||||
; LD A,(CURRENT_DIR+1)
|
||||
; AND A
|
||||
; JR Z,.skip_dir
|
||||
;
|
||||
; LD HL,Up_Dir
|
||||
; LD C,Dss.ChDir
|
||||
; RST ToDSS
|
||||
;
|
||||
; LD A,'\' ;
|
||||
; LD HL,CURRENT_DIR+257
|
||||
; LD BC,257 ;!HARDCODE か┃<E3818B> 痰牀<E797B0> <20>皋
|
||||
; CPDR
|
||||
; INC HL
|
||||
;
|
||||
LD HL,SND_DIR
|
||||
LD DE,Temp_Buffer
|
||||
LD A,FAT_ATTR.DIRECTORY
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit 1a384e2e43f985438aafa6f7fed3e7552d7b6f3d
|
||||
Subproject commit b8a215d38afde3eed48f39eb961e96cdb6d9e426
|
||||
Loading…
Reference in New Issue
Block a user