This commit is contained in:
Anatoliy Belyanskiy 2024-01-31 23:10:23 +10:00
parent 713bcf1538
commit 4d14c951c2
3 changed files with 259 additions and 253 deletions

View File

@ -1056,14 +1056,14 @@ WIN_ID_0 Window_Variables = SYS_PAGE.WIN_MAP_IX + Window_Variables * 0
; WIN_GR_X EQU 6 ; ¯®«®¦¥­¨¥ ¯® X ¢ ¯®«¥ £à ä¨ª¨ (¯® §­ ª®¬¥áâ)
; WIN_GR_Y EQU 7 ; ¯®«®¦¥­¨¥ ¯® Y ¢ ¯®«¥ £à ä¨ª¨ (¯® §­ ª®¬¥áâ)
; WIN_HL EQU 8 ; á®åà ­¥­¨¥ HL
; WIN_BC EQU 10 ; á®åà ­¥­¨¥ BC
; WIN_DE EQU 12 ; á®åà ­¥­¨¥ DE
; WIN_HL EQU 8 ; 嵼樈<EFBFBD>平言 HL
; WIN_BC EQU 10 ; 嵼樈<EFBFBD>平言 BC
; WIN_DE EQU 12 ; 嵼樈<EFBFBD>平言 DE
; WIN_V_BEG EQU 14 ; ­ ç «® ®ª­  ¯® ¢¥à⨪ «¨
; WIN_V_END EQU 15 ; ª®­¥æ ®ª­  ¯® ¢¥à⨪ «¨
; WIN_H_BEG EQU 16 ; ­ ç «® ®ª­  ¯® £®à¨§®­â «¨
; WIN_H_END EQU 17 ; ª®­¥æ ®ª­  ¯® £®à¨§®­â «¨
; WIN_SIZE_REL EQU 18 ; ॠ«ì­ë© à §¬¥à ¢ ᨬ¢®« å
; WIN_SIZE_REL EQU 18 ; 鄍𠼻鴙諰 <EFBFBD>妞丞 <EFBFBD> 嶁洽悍惩
; WIN_MODE_E EQU 19 ; ¤®¯®«­¨â¥«ì­ë© ०¨¬ íªà ­ 
; WIN_WORK_1 EQU 20 ; à ¡®ç ï ¯¥à¥¬¥­­ ï 1
; WIN_WORK_2 EQU 21 ; à ¡®ç ï ¯¥à¥¬¥­­ ï 2
@ -1093,254 +1093,6 @@ WIN_ID_0 Window_Variables = SYS_PAGE.WIN_MAP_IX + Window_Variables * 0
;ALTERA EQU #1400 ; ¤à¥á ¢ <20>‡“ ᦠ⮩ áâà ­¨æë DCP
;!FIXIT ----------------------------------------------------------------;
;<EFBFBD>¥à¥¬¥­­ë¥ ᯥªâà㬠
MODULE ZX_VARS
;ZX_VARS EQU #5C00
;
SWAP_ROM EQU #5B00
PRINTER_BUFFER EQU #5B00
AUTO_5B08 EQU #5B08
AUTO_5B5C EQU #5B5C
COPY_P128 EQU #5B5C
AUTO_5BFF EQU #5BFF
;
K_STATE EQU #5C00
KEY_TIME EQU #5C09
REP_K_TYME EQU #5C10
ZG EQU #5C36
ERR_BEEP EQU #5C38
KEY_BEEP EQU #5C39
ERR_NR EQU #5C3A
FLAGS EQU #5C3B
TV_FLAG EQU #5C3C
ERR_SP EQU #5C3D
LIST_SP EQU #5C3F
MODE EQU #5C41
NEW_PPC EQU #5C42
NEW_S_PPC EQU #5C44
PPC EQU #5C45
SUB_PPC EQU #5C47
BORDER EQU #5C48
EDIT_PPC EQU #5C49
BAS_VARS EQU #5C4B
WORK_VAR EQU #5C4D
CHANS EQU #5C4F
CUR_CHL EQU #5C51
BAS_PROG EQU #5C53
NEXT_LINE EQU #5C55
DATA_ADR EQU #5C57
E_LINE EQU #5C59
K_CUR EQU #5C5B
CH_ADR EQU #5C5D
SINT_ER_AD EQU #5C5F
WORK_SPACE EQU #5C61
STK_BOT EQU #5C63
STK_END EQU #5C65
B_REG EQU #5C67
MEM_CALC EQU #5C68
FLAGS_2 EQU #5C6A
L_SCR_SIZE EQU #5C6B
AUTO_LST_L EQU #5C6C
OLD_PPC EQU #5C6E
OLD_S_PPC EQU #5C70
FLG_INPUT EQU #5C71
S_VAR_LEN EQU #5C72
SINT_TB_ADR EQU #5C74
RAND_SEED EQU #5C76
FRAMES EQU #5C78
UDG EQU #5C7B
X_Y_COORD EQU #5C7D
PRN_POS EQU #5C7F
ADR_PR_BUF EQU #5C80
ECHO_E EQU #5C82
SCR_PL_M EQU #5C84
SCR_PL_L EQU #5C86
SCR_POS_M EQU #5C88
SCR_POS_L EQU #5C8A
SCROLL_ST EQU #5C8C
ATTR_P EQU #5C8D
MASK_P EQU #5C8E
ATTR_T EQU #5C8F
MASK_E EQU #5C90
FLAGS_ATR EQU #5C91
MEM_BOT EQU #5C92
AUTO_5C9A EQU #5C9A
NMI_ADR EQU #5CB0
TOP_CLEAR EQU #5CB2
P_RAMTOP EQU #5CB4
BEG_ADRESS EQU #5CB6
RET_INS EQU #5CC2
AUTO_5CC3 EQU #5CC3
DISK_A EQU #5CC8
DISK_B EQU #5CC9
DISK_C EQU #5CCA
DISK_D EQU #5CCB
CAT_SEC EQU #5CCC
DRV_READY EQU #5CCD
RD_WR_COM EQU #5CCE
VAR_1 EQU #5CCF
AUTO_5CD1 EQU #5CD1
AUTO_5CD2 EQU #5CD2
AUTO_5CD3 EQU #5CD3
AUTO_5CD5 EQU #5CD5
DOS_ERROR EQU #5CD6
MED_START EQU #5CD7
DOS_CH_ADR EQU #5CD9
MED_LEN EQU #5CDB
FL_NAME EQU #5CDD
FL_N_2 EQU #5CDF
FL_N_4 EQU #5CE1
FL_N_6 EQU #5CE3
FL_N_7 EQU #5CE4
FL_TYPE EQU #5CE5
FL_START EQU #5CE6
FL_LEN EQU #5CE8
START_CLUSTER EQU ZX_VARS.FL_LEN
FL_SIZE EQU #5CEA
FL_PLACE EQU #5CEB
VAR_2 EQU #5CED
INTERF_I EQU #5CEF
VAR_2_0 EQU #5CF1
VAR_2_1 EQU #5CF2
CONT_SEC EQU #5CF4
CONT_TRK EQU #5CF5
OPER_DISK EQU #5CF6
DOS_FLAG EQU #5CF7
DISK_1_FLG EQU #5CF8
DISK_2_FLG EQU #5CF9
TIME_A EQU #5CFA
TIME_B EQU #5CFB
TIME_C EQU #5CFC
TIME_D EQU #5CFD
COMAND_WG EQU #5CFE
SEC_NUM EQU #5CFF
CONT_BUF_ADR EQU #5D00
WORK_2 EQU #5D02
WORK_4 EQU #5D04
S_NAME_NUM EQU #5D06
N_DEL_FLS EQU #5D07
FST_SYM_NAME EQU #5D08
VAR_3 EQU #5D09
BUF_FLAG EQU #5D0C
BAS_DOS_FLG EQU #5D0E
DOS_ERR_2 EQU #5D0F
ERR_3D00 EQU #5D10
ADR_DOS_COM EQU #5D11
ERR_SP_COPY EQU #5D13
MSG_FLAG EQU #5D15
PDOS_COPY EQU #5D16
FLAG_BOOT EQU #5D17
INT_1_VAR EQU #5D18
CONT_DISK EQU #5D19
ADR_RET EQU #5D1A
DOS_SP EQU #5D1C
FL_NUMBER EQU #5D1E
COM_LN_COPY EQU #5D20
L_5D23 EQU #5D23
BUFFER EQU #5D25
AUTO_5D33 EQU #5D33
CLEAR_SEC EQU #5E06
CLEAR_TRK EQU #5E07
TYPE_DISK EQU #5E08
N_FILES EQU #5E09
FREE_SEC EQU #5E0A
CODE_10H EQU #5E0C
DISK_MRK_1 EQU #5E0F
DISK_ALT_NM EQU #5E10
N_DEL_FL EQU #5E19
DISK_NAME EQU #5E1A
;
BUFER_RD EQU ZX_VARS.BUFFER ; tr-dos buffer
;
MENU_TBL:
.JUMP EQU #F6EA
.TEXT EQU #F6EC
ENDMODULE
;-----------------------------------------------------------------------;
MACRO RET_SLOT0
LD A,0
OUT (SLOT0),A
ENDM
MACRO RET_SLOT1
LD A,5
OUT (SLOT1),A
ENDM
MACRO RET_SLOT2
LD A,2
OUT (SLOT2),A
ENDM
;
MACRO RET_SLOT3
LD A, 0
OUT (SLOT3), A
ENDM
;
MACRO CALL_48 adr
PUSH HL
LD HL, .ADR_R
PUSH HL
LD HL,SW_ROM
PUSH HL
LD HL,adr
JP JP_HL_48
.ADR_R:
POP HL
ENDM
MACRO CALL_48X adr
PUSH HL
LD HL,.ADR_R
EX (SP),HL
PUSH HL
LD HL,SW_ROM
EX (SP),HL
PUSH HL
LD HL,adr
EX (SP),HL
JP SW_ROM
.ADR_R:
ENDM
MACRO RAMD_KEY
SUB 4
DI
LD B,SYS_PAGE
LD C,SLOT3
OUT (C),B
LD HL,RAMD_KEYS
ADD A,L
LD L,A
DEC L
LD (A_RAMD_VARS),HL
INC L
LD L, (HL)
RET_SLOT3
EI
LD A, L
ENDM
; MACRO DSS adr, dt
; IF (adr >= $)
; DUP ((adr - $) / 16)
; DB dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt
; EDUP
; DUP (adr - $)
; DB dt
; EDUP
; ELSE
; ASSERT 0, "Error memory relocation."
; ENDIF
; ENDM
;
////////////////////////////////////////////////////////////////////////
MODULE ACEX
DEFINE ACEX.RELOAD_STRING 'ACEX_30K_LOADING'

169
constants/ZX_VARS.INC Normal file
View File

@ -0,0 +1,169 @@
;!FIXIT ----------------------------------------------------------------;
;<3B>¥à¥¬¥­­ë¥ ᯥªâà㬠
MODULE ZX_VARS
;ZX_VARS EQU #5C00
PRINTER_BUFFER EQU #5B00
SWAP_ROM_PRESENCE EQU #5B08
COPY_P128 EQU #5B5C
TSTACK EQU #5BFF
;
K_STATE EQU #5C00
KEY_TIME EQU #5C09
REP_K_TYME EQU #5C10
ZG EQU #5C36
ERR_BEEP EQU #5C38
KEY_BEEP EQU #5C39
ERR_NR EQU #5C3A
FLAGS EQU #5C3B
TV_FLAG EQU #5C3C
ERR_SP EQU #5C3D
LIST_SP EQU #5C3F
MODE EQU #5C41
NEW_PPC EQU #5C42
NEW_S_PPC EQU #5C44
PPC EQU #5C45
SUB_PPC EQU #5C47
BORDER EQU #5C48
EDIT_PPC EQU #5C49
BAS_VARS EQU #5C4B
WORK_VAR EQU #5C4D
CHANS EQU #5C4F
CUR_CHL EQU #5C51
BAS_PROG EQU #5C53
NEXT_LINE EQU #5C55
DATA_ADR EQU #5C57
E_LINE EQU #5C59
K_CUR EQU #5C5B
CH_ADR EQU #5C5D
SINT_ER_AD EQU #5C5F
;
WORK_SPACE EQU #5C61
.Size EQU #5D23
;
STK_BOT EQU #5C63
STK_END EQU #5C65
B_REG EQU #5C67
MEM_CALC EQU #5C68
FLAGS_2 EQU #5C6A
SCR_SIZE EQU #5C6B
OLD_PPC EQU #5C6E
OLD_S_PPC EQU #5C70
FLG_INPUT EQU #5C71
S_VAR_LEN EQU #5C72
SINT_TB_ADR EQU #5C74
RAND_SEED EQU #5C76
FRAMES EQU #5C78
UDG EQU #5C7B
X_Y_COORD EQU #5C7D
PRN_POS EQU #5C7F
ADR_PR_BUF EQU #5C80
ECHO_E EQU #5C82
SCR_PL_M EQU #5C84
SCR_PL_L EQU #5C86
SCR_POS_M EQU #5C88
SCR_POS_L EQU #5C8A
SCROLL_ST EQU #5C8C
ATTR_P EQU #5C8D
MASK_P EQU #5C8E
ATTR_T EQU #5C8F
MASK_E EQU #5C90
FLAGS_ATR EQU #5C91
MEM_BOT EQU #5C92
AUTO_5C9A EQU #5C9A
NMI_ADR EQU #5CB0
TOP_CLEAR EQU #5CB2
P_RAMTOP EQU #5CB4
BEG_ADRESS EQU #5CB6
RET_INS EQU #5CC2
AUTO_5CC3 EQU #5CC3
DISK_A EQU #5CC8
DISK_B EQU #5CC9
DISK_C EQU #5CCA
DISK_D EQU #5CCB
CAT_SEC EQU #5CCC
DRV_READY EQU #5CCD
RD_WR_COM EQU #5CCE
VAR_1 EQU #5CCF
AUTO_5CD1 EQU #5CD1
AUTO_5CD2 EQU #5CD2
AUTO_5CD3 EQU #5CD3
AUTO_5CD5 EQU #5CD5
DOS_ERROR EQU #5CD6
MED_START EQU #5CD7
DOS_CH_ADR EQU #5CD9
MED_LEN EQU #5CDB
FL_NAME EQU #5CDD
FL_N_2 EQU #5CDF
FL_N_4 EQU #5CE1
FL_N_6 EQU #5CE3
FL_N_7 EQU #5CE4
FL_TYPE EQU #5CE5
FL_START EQU #5CE6
FL_LEN EQU #5CE8
START_CLUSTER EQU ZX_VARS.FL_LEN
FL_SIZE EQU #5CEA
FL_PLACE EQU #5CEB
VAR_2 EQU #5CED
INTERF_I EQU #5CEF
VAR_2_0 EQU #5CF1
VAR_2_1 EQU #5CF2
CONT_SEC EQU #5CF4
CONT_TRK EQU #5CF5
OPER_DISK EQU #5CF6
DOS_FLAG EQU #5CF7
DISK_1_FLG EQU #5CF8
DISK_2_FLG EQU #5CF9
TIME_A EQU #5CFA
TIME_B EQU #5CFB
TIME_C EQU #5CFC
TIME_D EQU #5CFD
COMAND_WG EQU #5CFE
SEC_NUM EQU #5CFF
CONT_BUF_ADR EQU #5D00
WORK_2 EQU #5D02
WORK_4 EQU #5D04
S_NAME_NUM EQU #5D06
N_DEL_FLS EQU #5D07
FST_SYM_NAME EQU #5D08
VAR_3 EQU #5D09
BUF_FLAG EQU #5D0C
BAS_DOS_FLG EQU #5D0E
DOS_ERR_2 EQU #5D0F
ERR_3D00 EQU #5D10
ADR_DOS_COM EQU #5D11
ERR_SP_COPY EQU #5D13
MSG_FLAG EQU #5D15
PDOS_COPY EQU #5D16
FLAG_BOOT EQU #5D17
INT_1_VAR EQU #5D18
CONT_DISK EQU #5D19
ADR_RET EQU #5D1A
DOS_SP EQU #5D1C
FL_NUMBER EQU #5D1E
COM_LN_COPY EQU #5D20
BUFFER EQU #5D25
AUTO_5D33 EQU #5D33
CLEAR_SEC EQU #5E06
CLEAR_TRK EQU #5E07
TYPE_DISK EQU #5E08
N_FILES EQU #5E09
FREE_SEC EQU #5E0A
CODE_10H EQU #5E0C
DISK_MRK_1 EQU #5E0F
DISK_ALT_NM EQU #5E10
N_DEL_FL EQU #5E19
DISK_NAME EQU #5E1A
;
BUFER_RD EQU ZX_VARS.BUFFER ; tr-dos buffer
;
MENU_TBL:
.JUMP EQU #F6EA
.TEXT EQU #F6EC
;
;
PROG:
.SWAP_ROM EQU #5B00
.MAKE_ROOM EQU #1655
.TSTACK EQU #5BFF
ENDMODULE
;-----------------------------------------------------------------------;

View File

@ -1,3 +1,86 @@
/////////////////////////////// IVAN_MAK ///////////////////////////////
MACRO RET_SLOT0
LD A,0
OUT (SLOT0),A
ENDM
MACRO RET_SLOT1
LD A,5
OUT (SLOT1),A
ENDM
MACRO RET_SLOT2
LD A,2
OUT (SLOT2),A
ENDM
;
MACRO RET_SLOT3
LD A, 0
OUT (SLOT3), A
ENDM
;
MACRO CALL_48 adr
PUSH HL
LD HL, .ADR_R
PUSH HL
LD HL,SW_ROM
PUSH HL
LD HL,adr
JP JP_HL_48
.ADR_R:
POP HL
ENDM
MACRO CALL_48X adr
PUSH HL
LD HL,.ADR_R
EX (SP),HL
PUSH HL
LD HL,SW_ROM
EX (SP),HL
PUSH HL
LD HL,adr
EX (SP),HL
JP SW_ROM
.ADR_R:
ENDM
MACRO RAMD_KEY
SUB 4
DI
LD B,SYS_PAGE
LD C,SLOT3
OUT (C),B
LD HL,RAMD_KEYS
ADD A,L
LD L,A
DEC L
LD (A_RAMD_VARS),HL
INC L
LD L, (HL)
RET_SLOT3
EI
LD A, L
ENDM
; MACRO DSS adr, dt
; IF (adr >= $)
; DUP ((adr - $) / 16)
; B dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt,dt
; EDUP
; DUP (adr - $)
; DB dt
; EDUP
; ELSE
; ASSERT 0, "Error memory relocation."
; ENDIF
; ENDM
;
////////////////////////////////////////////////////////////////////////
;=======================================
; ᪫¥¨¢ ¥â áâப㠯ã⨠ª ä ©«ã á® áâப®© ¨¬¥­¨ ä ©« 
; retname - ¨¬ï ¤¥ä ©­  ᮤ¥à¦ é¥¥ ¯ãâì ¨ ¨¬ï ä ©« 
@ -23,7 +106,9 @@
;=======================================
MACRO _mInfoBLOCK endAddr, filler
DISPLAY " Free ",/D,endAddr, " bytes at ",/H, $, " address."
IF endAddr > 0
DISPLAY " Free bytes: ",/D,endAddr, " From ",/H, $, " to ",/H, endAddr+$," address."
ENDIF
BLOCK endAddr,filler
ENDM
;=======================================