LP_PR_LINE_DIR готова
This commit is contained in:
parent
f8f75dc091
commit
9430a99f2b
@ -1 +1 @@
|
|||||||
Subproject commit 9143dcb7f8fd9cd3ae0bc179b94fced5efd8667f
|
Subproject commit a9f5915a3275f5ffbafa0994bb97c5846aab826c
|
||||||
@ -7,6 +7,8 @@
|
|||||||
;
|
;
|
||||||
;*************************************************************
|
;*************************************************************
|
||||||
|
|
||||||
|
DISPLAY "\r\n/=====================[EXP part]=====================\\"
|
||||||
|
|
||||||
;***************************************
|
;***************************************
|
||||||
;*********** BEGIN EXPANSION ***********
|
;*********** BEGIN EXPANSION ***********
|
||||||
;***************************************
|
;***************************************
|
||||||
@ -243,9 +245,22 @@ ID_SPRINTER: DB 'Firmware v'
|
|||||||
BoardID:
|
BoardID:
|
||||||
.start: WORD BoardID_start ; BoardID_start
|
.start: WORD BoardID_start ; BoardID_start
|
||||||
.end: WORD BoardID_end ; BoardID_end
|
.end: WORD BoardID_end ; BoardID_end
|
||||||
|
;#######################################################################;
|
||||||
|
|
||||||
|
|
||||||
|
;#######################################################################;
|
||||||
|
;-----------------------------------------------------------------------;
|
||||||
|
; ROM-Disk pages ; [x] ªâ¨¢¨à®¢ ROM-DISK
|
||||||
|
ROM_DISK.Pages.Number:
|
||||||
|
BYTE ROM_DISK.Pages.Size ; ç¨á«® áâà ¨æ
|
||||||
|
; ã áâà ¨æ ¢ëáâ ¢«¥ bit4 ¤«ï ª®à४⮩ ¯®¤áâ ®¢ª¨
|
||||||
|
;(¯®¤à®¡¥¥ ¢ sp2000.inc - <20>®àâ ã¯à ¢«¥¨ï áâà ¨æ ¬¨ <20>‡“)
|
||||||
|
ROM_DISK.Pages: ; áâà ¨æë ROM-Disk
|
||||||
|
ABYTE #10 #05,#06,#07,#09,#0A,#0B ; 98304 bytes
|
||||||
|
.Size EQU $-ROM_DISK.Pages
|
||||||
|
;-----------------------------------------------------------------------;
|
||||||
|
;#######################################################################;
|
||||||
|
|
||||||
; ;=======================================
|
|
||||||
; BLOCK #100-$,0
|
|
||||||
|
|
||||||
|
|
||||||
;=======================================
|
;=======================================
|
||||||
@ -1305,43 +1320,34 @@ RESTARTS_PROG: ; !TODO LDConf
|
|||||||
|
|
||||||
;----------------------------[Setup Starter]----------------------------;
|
;----------------------------[Setup Starter]----------------------------;
|
||||||
MODULE Setup_Starter
|
MODULE Setup_Starter
|
||||||
; ¯à®£à ¬¬ , à §¬¥é ¥¬ ï ¯® ¤à¥áã 0C000h
|
; ¯à®£à ¬¬ , à §¬¥é ¥¬ ï ¯® ¤à¥áã #C000 ¤«ï § ¯ã᪠Setup
|
||||||
; ¤«ï § ¯ã᪠Setup
|
Start: DISP COMPILE_ADDR.SETUP_STARTER
|
||||||
Start:
|
|
||||||
DISP COMPILE_ADDR.SETUP_STARTER
|
|
||||||
Exec: LD A,CNF_PORT.CNF_0 + ROM.EXTENSION
|
Exec: LD A,CNF_PORT.CNF_0 + ROM.EXTENSION
|
||||||
OUT (SYS_PORT.ROM),A
|
OUT (SYS_PORT.ROM),A
|
||||||
|
;
|
||||||
LD HL,ROM_MAP.SETUP
|
LD HL,ROM_MAP.SETUP
|
||||||
LD DE,MEM_MAP.SETUP
|
LD DE,MEM_MAP.SETUP
|
||||||
LD BC,BLOCK_Setup.Length
|
LD BC,BLOCK_Setup.Length
|
||||||
LDIR
|
LDIR
|
||||||
|
;
|
||||||
LD A,CNF_PORT.CNF_0 + ROM.BIOS
|
LD A,CNF_PORT.CNF_0 + ROM.BIOS
|
||||||
OUT (SYS_PORT.ROM),A
|
OUT (SYS_PORT.ROM),A
|
||||||
|
|
||||||
;-----------[Check SPACE]
|
;-----------[Check SPACE]
|
||||||
LD A,Port_All_Mode.DEFAULT - Port_All_Mode.SPECTRUM_MODE_OFF ; !HARDCODE
|
; ¢ CF ¯¥à¥¤ ñâáï ¦ â «¨ ª« ¢¨è SPACE. CF=0: ª« ¢¨è ¦ â
|
||||||
LD BC,Port_All_Mode ; keyboard int & acc off
|
; ¯®â®¬ ¯à®¢¥àï¥âáï ¢ main.asm [space_check] ¨ ¥á«¨ ¦ â ,
|
||||||
OUT (C),A
|
; â® ¯à®¨á室¨â ¨£®à ¯ à ¬¥âà "<22>ëáâàë© áâ àâ <20>‡“"
|
||||||
|
; ¢® ¢à¥¬ï ¯¥à¥§ £à㧪¨ ¢ [Check Quick Start ROM]
|
||||||
|
LD BC,Port_All_Mode
|
||||||
|
IN H,(C) ; ¨«¨ LD H,#FF
|
||||||
|
LD A,Port_All_Mode.DEFAULT - Port_All_Mode.SPECTRUM_MODE_OFF
|
||||||
|
OUT (C),A ; keyboard int & acc off
|
||||||
LD A,high ZXKeys.Line_7
|
LD A,high ZXKeys.Line_7
|
||||||
IN A,(ZXKeys)
|
IN A,(ZXKeys)
|
||||||
CPL
|
RRA ; CF=0 ª« ¢¨è ¦ â
|
||||||
AND 1
|
|
||||||
; ¢ ॣ¨áâॠA ¯¥à¥¤ ñâáï ¦ â «¨ ª« ¢¨è SPACE.
|
|
||||||
; ¯®â®¬ ¯à®¢¥àï¥âáï ¢ main.asm [space_check]
|
|
||||||
; ¨ ¥á«¨ ¦ â , â® ¯à®¨á室¨â ¨£®à ¯ à ¬¥âà
|
|
||||||
; "<22>ëáâàë© áâ àâ <20>‡“" ¢® ¢à¥¬ï ¯¥à¥§ £à㧪¨
|
|
||||||
EX AF,AF'
|
|
||||||
LD A,#FF ; !HARDCODE
|
|
||||||
OUT (C),A ; keyboard int & acc on, zx_screen & original waits off (for conf >= 3.05)
|
|
||||||
EX AF,AF'
|
|
||||||
;----------------------[]
|
;----------------------[]
|
||||||
|
OUT (C),H
|
||||||
DI
|
DI
|
||||||
POP HL ; ¤à¥á ¢®§¢à â ¢ EXP ¨§ SETUP
|
POP HL ; ¤à¥á ¢®§¢à â ¢ EXP ¨§ SETUP
|
||||||
; LD SP,#8000 ;!HARDCODE
|
|
||||||
; PUSH HL
|
|
||||||
; PUSH AF
|
|
||||||
JP SETUP_MAIN
|
JP SETUP_MAIN
|
||||||
ENT
|
ENT
|
||||||
Size EQU $-Setup_Starter.Start
|
Size EQU $-Setup_Starter.Start
|
||||||
@ -1490,29 +1496,37 @@ kbd_loop2:
|
|||||||
AND A
|
AND A
|
||||||
RET
|
RET
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
; DE - ç áâ®â
|
||||||
|
; HL - ¯à®¤®«¦¨â¥«ì®áâì
|
||||||
|
BEEP: LD A,#10
|
||||||
|
CALL .beep_loop
|
||||||
;
|
;
|
||||||
|
;XOR A
|
||||||
|
CALL .beep_loop
|
||||||
|
|
||||||
;#######################################################################;
|
|
||||||
;#######################################################################;
|
|
||||||
;-----------------------------------------------------------------------;
|
|
||||||
; ROM-Disk pages ; [x] ªâ¨¢¨à®¢ ROM-DISK
|
|
||||||
_mInfoALIGN 256,#FF
|
|
||||||
; BLOCK #3F00-$,#FF
|
|
||||||
ROM_DISK.Pages.Number:
|
|
||||||
BYTE ROM_DISK.Pages.Size ; ç¨á«® áâà ¨æ
|
|
||||||
; ã áâà ¨æ ¢ëáâ ¢«¥ bit4 ¤«ï ª®à४⮩ ¯®¤áâ ®¢ª¨
|
|
||||||
;(¯®¤à®¡¥¥ ¢ sp2000.inc - <20>®àâ ã¯à ¢«¥¨ï áâà ¨æ ¬¨ <20>‡“)
|
|
||||||
ROM_DISK.Pages: ; áâà ¨æë ROM-Disk
|
|
||||||
ABYTE #10 #05,#06,#07,#09,#0A,#0B ; 98304 bytes
|
|
||||||
.Size EQU $-ROM_DISK.Pages
|
|
||||||
;-----------------------------------------------------------------------;
|
|
||||||
;#######################################################################;
|
|
||||||
;
|
;
|
||||||
|
DEC HL
|
||||||
|
LD A,H
|
||||||
|
OR L
|
||||||
|
JR NZ,BEEP
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
.beep_loop: OUT (ZX_Beeper),A
|
||||||
|
LD B,D
|
||||||
|
LD C,E
|
||||||
|
;
|
||||||
|
.loop: DEC BC
|
||||||
|
LD A,B
|
||||||
|
OR C
|
||||||
|
JR NZ,.loop
|
||||||
|
RET
|
||||||
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
|
;#######################################################################;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -63,14 +63,15 @@
|
|||||||
; H - ¢ëá®â , L - è¨à¨
|
; H - ¢ëá®â , L - è¨à¨
|
||||||
;=============================================================
|
;=============================================================
|
||||||
|
|
||||||
MACRO CORRECT_SCR_40 ;[x] ¢ª«î稫 31/10/23, ç¨áâ® •í««®ããã㨨¨
|
MACRO CORRECT_SCR_40_FORWARD ;[x] ¢ª«î稫 31/10/23, ç¨áâ® •í««®ããã㨨¨
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
JR C,.LLL
|
JR C,.LLL
|
||||||
INC D ; ०¨¬ 40
|
INC D ; ०¨¬ 40
|
||||||
.LLL: EX AF,AF'
|
.LLL: EX AF,AF'
|
||||||
ENDM ;
|
ENDM ;
|
||||||
|
|
||||||
MACRO CORRECT_SCR_40_BACK
|
|
||||||
|
MACRO CORRECT_SCR_40_BACKWARD
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
JR C,.LLL
|
JR C,.LLL
|
||||||
DEC D ; ०¨¬ 40
|
DEC D ; ०¨¬ 40
|
||||||
@ -158,7 +159,7 @@ LP_PRINT_ALL: CALL LP_BEG_P
|
|||||||
INC L
|
INC L
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
DEC L
|
DEC L
|
||||||
CORRECT_SCR_40
|
CORRECT_SCR_40_FORWARD
|
||||||
DJNZ_NEXT_HL
|
DJNZ_NEXT_HL
|
||||||
EXX
|
EXX
|
||||||
DJNZ .loop
|
DJNZ .loop
|
||||||
@ -181,7 +182,7 @@ LP_PRINT_SYM: CALL LP_BEG_P
|
|||||||
OUT (PORT_Y),A
|
OUT (PORT_Y),A
|
||||||
.cont: LD (HL),C
|
.cont: LD (HL),C
|
||||||
INC D
|
INC D
|
||||||
CORRECT_SCR_40
|
CORRECT_SCR_40_FORWARD
|
||||||
DJNZ_NEXT_HL
|
DJNZ_NEXT_HL
|
||||||
EXX
|
EXX
|
||||||
DJNZ .loop
|
DJNZ .loop
|
||||||
@ -206,7 +207,7 @@ LP_PRINT_ATR: CALL LP_BEG_P
|
|||||||
INC L
|
INC L
|
||||||
LD (HL),C
|
LD (HL),C
|
||||||
DEC L
|
DEC L
|
||||||
CORRECT_SCR_40
|
CORRECT_SCR_40_FORWARD
|
||||||
DJNZ_NEXT_HL
|
DJNZ_NEXT_HL
|
||||||
EXX
|
EXX
|
||||||
DJNZ .loop
|
DJNZ .loop
|
||||||
@ -237,7 +238,7 @@ LP_PRINT_LINE: CALL LP_BEG_P
|
|||||||
INC L
|
INC L
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
DEC L
|
DEC L
|
||||||
CORRECT_SCR_40
|
CORRECT_SCR_40_FORWARD
|
||||||
DJNZ_NEXT_HL
|
DJNZ_NEXT_HL
|
||||||
EXX
|
EXX
|
||||||
DJNZ .loop
|
DJNZ .loop
|
||||||
@ -260,7 +261,7 @@ LP_PRINT_LINE2: CALL LP_BEG_P
|
|||||||
OUT (C),D
|
OUT (C),D
|
||||||
INC D
|
INC D
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
CORRECT_SCR_40
|
CORRECT_SCR_40_FORWARD
|
||||||
DJNZ_NEXT_HL
|
DJNZ_NEXT_HL
|
||||||
EXX
|
EXX
|
||||||
DJNZ .loop
|
DJNZ .loop
|
||||||
@ -299,7 +300,7 @@ LP_PRINT_LINE3: CALL LP_BEG_P
|
|||||||
INC L
|
INC L
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
DEC L
|
DEC L
|
||||||
CORRECT_SCR_40
|
CORRECT_SCR_40_FORWARD
|
||||||
DJNZ_NEXT_HL
|
DJNZ_NEXT_HL
|
||||||
EXX
|
EXX
|
||||||
DJNZ .loop
|
DJNZ .loop
|
||||||
@ -330,7 +331,7 @@ LP_PRINT_LINE4: CALL LP_BEG_P
|
|||||||
.NoEndSymbol: EXX
|
.NoEndSymbol: EXX
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC D
|
INC D
|
||||||
CORRECT_SCR_40
|
CORRECT_SCR_40_FORWARD
|
||||||
DJNZ_NEXT_HL
|
DJNZ_NEXT_HL
|
||||||
EXX
|
EXX
|
||||||
DJNZ .loop
|
DJNZ .loop
|
||||||
@ -364,7 +365,7 @@ LP_PRINT_LINE5: CALL LP_BEG_P
|
|||||||
LD (HL),A
|
LD (HL),A
|
||||||
DEC L
|
DEC L
|
||||||
INC D
|
INC D
|
||||||
CORRECT_SCR_40
|
CORRECT_SCR_40_FORWARD
|
||||||
DJNZ_NEXT_HL
|
DJNZ_NEXT_HL
|
||||||
EXX
|
EXX
|
||||||
DJNZ .loop
|
DJNZ .loop
|
||||||
@ -378,8 +379,8 @@ LP_END_P: LD A,SYS_PAGE
|
|||||||
EXX
|
EXX
|
||||||
RLA
|
RLA
|
||||||
LD E,A
|
LD E,A
|
||||||
LD (WIN_ID_0.reg_HL),HL ; ¬¥áâ® ¯¥ç â¨
|
LD (WIN_ID_0.LineAddr),HL ; ¬¥áâ® ¯¥ç â¨
|
||||||
LD (WIN_ID_0.reg_DE),DE
|
LD (WIN_ID_0.ColumnRGADR_TXTMode),DE
|
||||||
LD (WIN_ID_0.reg_BC),BC
|
LD (WIN_ID_0.reg_BC),BC
|
||||||
CALL LP_CLOSE_PG
|
CALL LP_CLOSE_PG
|
||||||
EXX
|
EXX
|
||||||
@ -413,7 +414,7 @@ LP_PRINT_LINE6: CALL LP_BEG_P
|
|||||||
EXX
|
EXX
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC D
|
INC D
|
||||||
CORRECT_SCR_40
|
CORRECT_SCR_40_FORWARD
|
||||||
DJNZ_NEXT_HL
|
DJNZ_NEXT_HL
|
||||||
EXX
|
EXX
|
||||||
DJNZ .loop
|
DJNZ .loop
|
||||||
@ -466,14 +467,24 @@ LP_GET_PLACE: CALL LP_BEG_P
|
|||||||
;-------------------------------------------------------------[#89, #8D]
|
;-------------------------------------------------------------[#89, #8D]
|
||||||
;--------------------------------------------------------[#8D]
|
;--------------------------------------------------------[#8D]
|
||||||
LP_CLS_WIN2: LD C,A
|
LP_CLS_WIN2: LD C,A
|
||||||
JR CLS_WIN
|
JR LP_CLS_WIN.START
|
||||||
;--------------------------------------------------------[#8D]
|
;--------------------------------------------------------[#8D]
|
||||||
;--------------------------------------------------------[#89]
|
;--------------------------------------------------------[#89]
|
||||||
LP_CLS_WIN: LD C,' '
|
LP_CLS_WIN: LD C,' '
|
||||||
;---------------- -----------------------------[#89]
|
;---------------- -----------------------------[#89]
|
||||||
CLS_WIN: CALL LP_BEG_P
|
.START: CALL LP_BEG_P
|
||||||
LD (SYS_PAGE.SYS_WORK1),BC ; á®åà ¨âì æ¢¥â ; !TODO ¨á¯®«ì§®¢ âì ¯¥à¥¬¥ë¥ ®ª
|
CALL .CLS
|
||||||
|
JP LP_END_P.SYS_PAGE
|
||||||
|
;
|
||||||
|
.CLS: LD (SYS_PAGE.SYS_WORK1),BC ; á®åà ¨âì æ¢¥â ; !TODO ¨á¯®«ì§®¢ âì ¯¥à¥¬¥ë¥ ®ª
|
||||||
PUSH DE
|
PUSH DE
|
||||||
|
; [ ] 02/04/2025 ¯à®¢¥àª ¯à¥¢ë襨¥ à §¬¥à ®ª
|
||||||
|
EXX
|
||||||
|
LD A,B
|
||||||
|
EXX
|
||||||
|
CP L
|
||||||
|
JR NC,.loop1
|
||||||
|
LD L,A
|
||||||
;
|
;
|
||||||
.loop1: CALL LP_SET_CUR
|
.loop1: CALL LP_SET_CUR
|
||||||
PUSH DE
|
PUSH DE
|
||||||
@ -492,6 +503,7 @@ CLS_WIN: CALL LP_BEG_P
|
|||||||
LD (HL),B
|
LD (HL),B
|
||||||
DEC L
|
DEC L
|
||||||
INC D
|
INC D
|
||||||
|
CORRECT_SCR_40_FORWARD
|
||||||
EXX
|
EXX
|
||||||
DJNZ .loop2
|
DJNZ .loop2
|
||||||
;
|
;
|
||||||
@ -503,8 +515,7 @@ CLS_WIN: CALL LP_BEG_P
|
|||||||
JR NZ,.loop1
|
JR NZ,.loop1
|
||||||
;
|
;
|
||||||
POP DE
|
POP DE
|
||||||
CALL LP_SET_CUR
|
JP LP_SET_CUR
|
||||||
JP LP_END_P.SYS_PAGE
|
|
||||||
;-------------------------------------------------------------[#89, #8D]
|
;-------------------------------------------------------------[#89, #8D]
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -610,9 +621,6 @@ LP_SIZE: CALL LP_OPEN_PG
|
|||||||
CALL LP_CLOSE_PG
|
CALL LP_CLOSE_PG
|
||||||
RET NZ
|
RET NZ
|
||||||
; txt 40
|
; txt 40
|
||||||
; LD A,E
|
|
||||||
; ADD A,A
|
|
||||||
; LD E,A
|
|
||||||
SLA E
|
SLA E
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
@ -672,78 +680,6 @@ LP_SET_CUR: ; LP_AT_D:
|
|||||||
RET
|
RET
|
||||||
;*************************************************************
|
;*************************************************************
|
||||||
|
|
||||||
LP_NEXT_HL_DIR: LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD A,4 ;!HARDCODE ¤«¨ ®¤®£® ®¯¨á â¥«ï ª¢ ¤à ⨪
|
|
||||||
ADD L
|
|
||||||
LD L,A
|
|
||||||
LD A,(WIN_ID_0.V_END)
|
|
||||||
CP L
|
|
||||||
CALL C,.end_line
|
|
||||||
;
|
|
||||||
.no_end_line: LD A,(WIN_ID_0.H_BEG)
|
|
||||||
LD D,A
|
|
||||||
LD A,(WIN_ID_0.SIZE_REL)
|
|
||||||
LD B,A
|
|
||||||
RET
|
|
||||||
;
|
|
||||||
.end_line: LD A,L
|
|
||||||
SUB 4 ;!HARDCODE ¤«¨ ®¤®£® ®¯¨á â¥«ï ª¢ ¤à ⨪
|
|
||||||
LD L,A
|
|
||||||
PUSH HL
|
|
||||||
DEC HL
|
|
||||||
PUSH BC
|
|
||||||
PUSH DE
|
|
||||||
EXX
|
|
||||||
PUSH BC
|
|
||||||
PUSH HL
|
|
||||||
LD A,(WIN_ID_0.V_BEG)
|
|
||||||
LD D,A
|
|
||||||
LD A,(WIN_ID_0.USER.SIZE_V)
|
|
||||||
LD B,A
|
|
||||||
LD E,0 ; ¢áî áâப㠮ª áªà®««¨¬
|
|
||||||
CALL LP_SCROLL_UP.RUN
|
|
||||||
EXX
|
|
||||||
LD C," "
|
|
||||||
;
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
LD HL,(WIN_ID_0.V_END)
|
|
||||||
DEC L
|
|
||||||
DEC L
|
|
||||||
DEC L
|
|
||||||
LD H,#C3 ;!HARDCODE ᬥ饨¥ ¢ áâà ¨æ¥ 3 ª ç «ã ®¯¨á ⥫¥© íªà
|
|
||||||
;
|
|
||||||
LD A,(WIN_ID_0.H_BEG)
|
|
||||||
LD D,A
|
|
||||||
;
|
|
||||||
LD A,#50
|
|
||||||
OUT (SLOT3),A
|
|
||||||
;
|
|
||||||
EXX
|
|
||||||
LD A,(WIN_ID_0.SIZE_REL)
|
|
||||||
LD B,A
|
|
||||||
.loop_cl_line: EXX
|
|
||||||
LD A,D
|
|
||||||
OUT (PORT_Y),A
|
|
||||||
LD (HL),C
|
|
||||||
INC D
|
|
||||||
CORRECT_SCR_40
|
|
||||||
EXX
|
|
||||||
DJNZ .loop_cl_line
|
|
||||||
;
|
|
||||||
POP HL
|
|
||||||
POP BC
|
|
||||||
EXX
|
|
||||||
POP DE
|
|
||||||
POP BC
|
|
||||||
POP HL
|
|
||||||
;
|
|
||||||
LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
RET
|
|
||||||
|
|
||||||
|
|
||||||
; ¢ëç¨á«¥¨¥ ®¢®£® ¬¥áâ
|
; ¢ëç¨á«¥¨¥ ®¢®£® ¬¥áâ
|
||||||
LP_NEXT_HL: LD A,SYS_PAGE
|
LP_NEXT_HL: LD A,SYS_PAGE
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
@ -771,13 +707,13 @@ LP_NEXT_HL: LD A,SYS_PAGE
|
|||||||
LP_BEG_P: EX AF,AF'
|
LP_BEG_P: EX AF,AF'
|
||||||
EXX
|
EXX
|
||||||
CALL LP_OPEN_PG
|
CALL LP_OPEN_PG
|
||||||
LD HL,(WIN_ID_0.reg_HL)
|
LD HL,(WIN_ID_0.LineAddr)
|
||||||
LD DE,(WIN_ID_0.reg_DE)
|
LD DE,(WIN_ID_0.ColumnRGADR_TXTMode)
|
||||||
LD BC,(WIN_ID_0.reg_BC)
|
LD BC,(WIN_ID_0.reg_BC)
|
||||||
LD A,E
|
LD A,E
|
||||||
AND A
|
AND A
|
||||||
RRA
|
RRA
|
||||||
OUT (PORT_Y),A
|
;OUT (PORT_Y),A
|
||||||
EXX
|
EXX
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
RET
|
RET
|
||||||
@ -795,7 +731,8 @@ LP_INI_P: EX AF,AF'
|
|||||||
LD A,(WIN_ID_0.USER.MODE)
|
LD A,(WIN_ID_0.USER.MODE)
|
||||||
BIT 4,A
|
BIT 4,A
|
||||||
JR Z,.NO_ZG ; ®âªàë⨥ £à ä¨ç¥áª®£® íªà
|
JR Z,.NO_ZG ; ®âªàë⨥ £à ä¨ç¥áª®£® íªà
|
||||||
LD DE,(SYS_PAGE.WIN_ZG) ; § ª®£¥¥à â®à
|
;LD DE,(SYS_PAGE.WIN_ZG) ; § ª®£¥¥à â®à
|
||||||
|
LD DE,ZG_ADDRESS ; § ª®£¥¥à â®à
|
||||||
EXX
|
EXX
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
CALL WIN_SET_ZG.SET ;LP_SET_ZG1 ;!TODO á⮨⠫¨ ª ¦¤ë© à § § ª¨¤ë¢ âì èà¨äâ?
|
CALL WIN_SET_ZG.SET ;LP_SET_ZG1 ;!TODO á⮨⠫¨ ª ¦¤ë© à § § ª¨¤ë¢ âì èà¨äâ?
|
||||||
@ -903,10 +840,12 @@ WIN_OPEN: CALL .Prepare
|
|||||||
JP WIN_OPEN_W1
|
JP WIN_OPEN_W1
|
||||||
;
|
;
|
||||||
.Prepare: CALL LP_OPEN_PG
|
.Prepare: CALL LP_OPEN_PG
|
||||||
LD (SYS_PAGE.WIN_MAP_SC),IX ; ª àâ ®ª
|
|
||||||
PUSH HL
|
PUSH HL
|
||||||
PUSH DE
|
PUSH DE
|
||||||
LD HL,(SYS_PAGE.WIN_MAP_SC)
|
;LD (SYS_PAGE.WIN_MAP_SC),IX ; ª àâ ®ª
|
||||||
|
;LD HL,(SYS_PAGE.WIN_MAP_SC)
|
||||||
|
PUSH IX
|
||||||
|
POP HL
|
||||||
LD DE,WIN_ID_0
|
LD DE,WIN_ID_0
|
||||||
LD BC,Window_UserVars
|
LD BC,Window_UserVars
|
||||||
LDIR
|
LDIR
|
||||||
@ -956,14 +895,14 @@ WIN_OPEN_W1: LD A,L
|
|||||||
ADD A,A
|
ADD A,A
|
||||||
ADD A,D
|
ADD A,D
|
||||||
LD (IX+Window_Variables.H_END),A
|
LD (IX+Window_Variables.H_END),A
|
||||||
LD (SYS_PAGE.WIN_MODE_SC),DE ; ¬¥áâ® ¯® £®à¨§®â «¨ ¨ áâà ¨æ ¬®¤ë
|
;LD (SYS_PAGE.WIN_MODE_SC),DE ; ¬¥áâ® ¯® £®à¨§®â «¨ ¨ áâà ¨æ ¬®¤ë
|
||||||
LD A,H
|
LD A,H
|
||||||
AND #3F
|
AND #3F
|
||||||
ADD A,A
|
ADD A,A
|
||||||
ADD A,A
|
ADD A,A
|
||||||
LD L,A
|
LD L,A
|
||||||
LD H,#C3
|
LD H,A
|
||||||
LD (SYS_PAGE.WIN_MODE_SH),HL ; ¬¥áâ® ¯® ¢¥à⨪ «¨ á ¤à¥á®¬
|
;LD (SYS_PAGE.WIN_MODE_SH),HL ; ¬¥áâ® ¯® ¢¥à⨪ «¨ á ¤à¥á®¬
|
||||||
LD (IX+Window_Variables.V_BEG),A
|
LD (IX+Window_Variables.V_BEG),A
|
||||||
LD A,(IX+Window_Variables.USER.SIZE_V)
|
LD A,(IX+Window_Variables.USER.SIZE_V)
|
||||||
ADD A,A
|
ADD A,A
|
||||||
@ -971,7 +910,8 @@ WIN_OPEN_W1: LD A,L
|
|||||||
ADD A,L
|
ADD A,L
|
||||||
LD (IX+Window_Variables.V_END),A
|
LD (IX+Window_Variables.V_END),A
|
||||||
;
|
;
|
||||||
LD L,(IX+Window_Variables.V_BEG)
|
;LD L,(IX+Window_Variables.V_BEG)
|
||||||
|
LD L,H
|
||||||
LD H,#C3
|
LD H,#C3
|
||||||
LD B,(IX+Window_Variables.USER.SIZE_V) ; à §¬¥à ¯® ¢¥à⨪ «¨
|
LD B,(IX+Window_Variables.USER.SIZE_V) ; à §¬¥à ¯® ¢¥à⨪ «¨
|
||||||
LD (IX+Window_Variables.WORK_1),0
|
LD (IX+Window_Variables.WORK_1),0
|
||||||
@ -1015,7 +955,7 @@ WIN_OPEN_W1: LD A,L
|
|||||||
;
|
;
|
||||||
LD A,(IX+Window_Variables.MODE_E)
|
LD A,(IX+Window_Variables.MODE_E)
|
||||||
AND 1
|
AND 1
|
||||||
OUT (RGMOD),A
|
OUT (SCREEN_SWITCH),A
|
||||||
;LD A,(IX+Window_Variables.MODE)
|
;LD A,(IX+Window_Variables.MODE)
|
||||||
;BIT 4,A
|
;BIT 4,A
|
||||||
CALL LP_CLOSE_PG
|
CALL LP_CLOSE_PG
|
||||||
@ -1023,8 +963,11 @@ WIN_OPEN_W1: LD A,L
|
|||||||
CALL LP_INI_P
|
CALL LP_INI_P
|
||||||
;LD A,(SYS_PAGE.WIN_MODE_SC)
|
;LD A,(SYS_PAGE.WIN_MODE_SC)
|
||||||
;OUT (RGMOD),A
|
;OUT (RGMOD),A
|
||||||
|
; ¨£¤¥ ¥ ¡ë«® ®¯¨á ®
|
||||||
CALL LP_SIZE
|
CALL LP_SIZE
|
||||||
XOR A
|
; DE - à §¬¥àë ®ª
|
||||||
|
;
|
||||||
|
XOR A ;!TODO ®¬¥à ®ª
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -1280,10 +1223,12 @@ LP_SCROLL_UP: DEC E
|
|||||||
LD B,E
|
LD B,E
|
||||||
LD E,0 ; ¢áî áâப㠮ª áªà®««¨¬
|
LD E,0 ; ¢áî áâப㠮ª áªà®««¨¬
|
||||||
CALL .RUN
|
CALL .RUN
|
||||||
.EXIT: JP LP_CLOSE_PG
|
JP LP_CLOSE_PG
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
.RUN: CALL LP_SET_CUR ; ¢ëç¨á«¨âì ¯¥à¥¬¥ë¥ ¤«ï áâப¨
|
.RUN: CALL LP_SET_CUR ; ¢ëç¨á«¨âì ¯¥à¥¬¥ë¥ ¤«ï áâப¨
|
||||||
|
PUSH IX
|
||||||
|
LD IX,(WIN_ID_0.USER.SIZE_H)
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!TODO
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!TODO
|
||||||
; ®â«¨ç¨¥ ®â LP_SCROLL_DN
|
; ®â«¨ç¨¥ ®â LP_SCROLL_DN
|
||||||
LD A,(WIN_ID_0.V_END)
|
LD A,(WIN_ID_0.V_END)
|
||||||
@ -1305,20 +1250,26 @@ LP_SCROLL_UP: DEC E
|
|||||||
ADD L
|
ADD L
|
||||||
LD L,A
|
LD L,A
|
||||||
;
|
;
|
||||||
LD A,C
|
LD A,C ; LD A,(WIN_ID_0.V_END)
|
||||||
CP L
|
CP L
|
||||||
RET C ; ¥á«¨ ª®¥æ, â® ¢ë室
|
JR C,.exit ; ¥á«¨ ª®¥æ, â® ¢ë室
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
PUSH BC
|
PUSH BC
|
||||||
LD A,L
|
LD A,L
|
||||||
EXX
|
EXX
|
||||||
LD L,A
|
LD L,A
|
||||||
EXX
|
EXX
|
||||||
LD A,(WIN_ID_0.USER.SIZE_H)
|
;XH
|
||||||
|
LD A,XL ; WIN_ID_0.USER.SIZE_H
|
||||||
|
; LD A,SYS_PAGE
|
||||||
|
; OUT (SLOT3),A
|
||||||
|
; LD A,(WIN_ID_0.USER.SIZE_H)
|
||||||
ADD A,A ; ç¨á«® ¡ ©â ¢ áâப¥ ¤«ï ¯¥à¥®á
|
ADD A,A ; ç¨á«® ¡ ©â ¢ áâப¥ ¤«ï ¯¥à¥®á
|
||||||
ADD A,A
|
ADD A,A
|
||||||
LD C,A
|
LD C,A
|
||||||
LD B,0
|
LD B,0
|
||||||
|
; LD A,#50
|
||||||
|
; OUT (SLOT3),A ; ®âªàëâì áâà ¨æã ¤«ï ¯¥à¥®á
|
||||||
;
|
;
|
||||||
EXX
|
EXX
|
||||||
LD A,D ; ¯®«ãç¨âì ¯®àâ ç « áâப¨
|
LD A,D ; ¯®«ãç¨âì ¯®àâ ç « áâப¨
|
||||||
@ -1327,6 +1278,7 @@ LP_SCROLL_UP: DEC E
|
|||||||
INC A ; á«¥¤ãî饥 § 票¥ ¯®àâ
|
INC A ; á«¥¤ãî饥 § 票¥ ¯®àâ
|
||||||
LDI
|
LDI
|
||||||
LDD
|
LDD
|
||||||
|
;
|
||||||
OUT (PORT_Y),A
|
OUT (PORT_Y),A
|
||||||
INC A ; á«¥¤ãî饥 § 票¥ ¯®àâ
|
INC A ; á«¥¤ãî饥 § 票¥ ¯®àâ
|
||||||
LDI
|
LDI
|
||||||
@ -1335,6 +1287,7 @@ LP_SCROLL_UP: DEC E
|
|||||||
;
|
;
|
||||||
POP BC
|
POP BC
|
||||||
DJNZ .loop2
|
DJNZ .loop2
|
||||||
|
.exit: POP IX
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|
||||||
@ -1356,6 +1309,8 @@ LP_SCROLL_DN: DEC E ;!FIXIT
|
|||||||
;
|
;
|
||||||
;
|
;
|
||||||
.RUN: CALL LP_SET_CUR
|
.RUN: CALL LP_SET_CUR
|
||||||
|
PUSH IX
|
||||||
|
LD IX,(WIN_ID_0.USER.SIZE_H)
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!TODO
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!TODO
|
||||||
; ®â«¨ç¨¥ ®â LP_SCROLL_UD
|
; ®â«¨ç¨¥ ®â LP_SCROLL_UD
|
||||||
LD A,(WIN_ID_0.V_BEG)
|
LD A,(WIN_ID_0.V_BEG)
|
||||||
@ -1380,18 +1335,24 @@ LP_SCROLL_DN: DEC E ;!FIXIT
|
|||||||
LD A,C
|
LD A,C
|
||||||
CP L ; .CONT: L >= A
|
CP L ; .CONT: L >= A
|
||||||
JR Z,.CONT
|
JR Z,.CONT
|
||||||
RET NC ; ¥á«¨ ª®¥æ, â® ¢ë室
|
JR NC,.exit ; ¥á«¨ ª®¥æ, â® ¢ë室
|
||||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
.CONT: PUSH BC
|
.CONT: PUSH BC
|
||||||
LD A,L
|
LD A,L
|
||||||
EXX
|
EXX
|
||||||
LD L,A
|
LD L,A
|
||||||
EXX
|
EXX
|
||||||
LD A,(WIN_ID_0.USER.SIZE_H)
|
;
|
||||||
|
LD A,XL ; WIN_ID_0.USER.SIZE_H
|
||||||
|
; LD A,SYS_PAGE
|
||||||
|
; OUT (SLOT3),A
|
||||||
|
; LD A,(WIN_ID_0.USER.SIZE_H)
|
||||||
ADD A,A ; ç¨á«® ¡ ©â ¢ áâப¥ ¤«ï ¯¥à¥®á
|
ADD A,A ; ç¨á«® ¡ ©â ¢ áâப¥ ¤«ï ¯¥à¥®á
|
||||||
ADD A,A
|
ADD A,A
|
||||||
LD C,A
|
LD C,A
|
||||||
LD B,0
|
LD B,0
|
||||||
|
; LD A,#50
|
||||||
|
; OUT (SLOT3),A ; ®âªàëâì áâà ¨æã ¤«ï ¯¥à¥®á
|
||||||
;
|
;
|
||||||
EXX
|
EXX
|
||||||
LD A,D ; ¯®«ãç¨âì ¯®àâ ç « áâப¨
|
LD A,D ; ¯®«ãç¨âì ¯®àâ ç « áâப¨
|
||||||
@ -1400,6 +1361,7 @@ LP_SCROLL_DN: DEC E ;!FIXIT
|
|||||||
INC A ; á«¥¤ãî饥 § 票¥ ¯®àâ
|
INC A ; á«¥¤ãî饥 § 票¥ ¯®àâ
|
||||||
LDI
|
LDI
|
||||||
LDD
|
LDD
|
||||||
|
;
|
||||||
OUT (PORT_Y),A
|
OUT (PORT_Y),A
|
||||||
INC A ; á«¥¤ãî饥 § 票¥ ¯®àâ
|
INC A ; á«¥¤ãî饥 § 票¥ ¯®àâ
|
||||||
LDI
|
LDI
|
||||||
@ -1408,6 +1370,7 @@ LP_SCROLL_DN: DEC E ;!FIXIT
|
|||||||
;
|
;
|
||||||
POP BC
|
POP BC
|
||||||
DJNZ .loop2
|
DJNZ .loop2
|
||||||
|
.exit: POP IX
|
||||||
RET
|
RET
|
||||||
|
|
||||||
|
|
||||||
@ -1458,29 +1421,60 @@ WIN_PUT_SYM: AND A
|
|||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
;
|
;
|
||||||
EXX
|
EXX
|
||||||
;CORRECT_SCR_40
|
|
||||||
LD A,D
|
LD A,D
|
||||||
OUT (PORT_Y),A
|
OUT (PORT_Y),A
|
||||||
EXX
|
EXX
|
||||||
LD A,L
|
; [ ] 31/03/2025 ¥á«¨ B=0, â® ª« ¤ñ¬ ⮫쪮 ᨬ¢®«
|
||||||
EXX
|
; ¥á«¨ B=1, â® ª« ¤ñ¬ ᨬ¢®« á âਡã⮬
|
||||||
LD (HL),A
|
; ᨬ¢®«
|
||||||
INC L
|
; LD A,L
|
||||||
EXX
|
; EXX
|
||||||
LD A,H
|
; LD (HL),A
|
||||||
EXX
|
; INC L
|
||||||
LD (HL),A
|
; EXX
|
||||||
DEC L
|
; ; âਡãâ
|
||||||
DEC L
|
; LD A,H
|
||||||
EXX
|
; EXX
|
||||||
|
; LD (HL),A
|
||||||
|
; DEC L
|
||||||
|
; DEC L
|
||||||
|
; EXX
|
||||||
|
; ; èà¨äâ
|
||||||
|
; LD A,B
|
||||||
|
; EXX
|
||||||
|
; LD (HL),A
|
||||||
|
; INC L
|
||||||
|
; EXX
|
||||||
|
; JP LP_END_P
|
||||||
|
;
|
||||||
|
; èà¨äâ
|
||||||
LD A,B
|
LD A,B
|
||||||
|
OR A
|
||||||
|
JR Z,.onlySymbol
|
||||||
|
DEC B
|
||||||
|
JR Z,.noChangeZG
|
||||||
|
;
|
||||||
EXX
|
EXX
|
||||||
|
DEC L
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC L
|
INC L
|
||||||
EXX
|
EXX
|
||||||
|
; âਡãâ
|
||||||
|
.noChangeZG: LD A,H
|
||||||
|
EXX
|
||||||
|
INC L
|
||||||
|
LD (HL),A
|
||||||
|
DEC L
|
||||||
|
EXX
|
||||||
|
; ᨬ¢®«
|
||||||
|
.onlySymbol: LD A,L
|
||||||
|
EXX
|
||||||
|
LD (HL),A
|
||||||
|
EXX
|
||||||
JP LP_END_P
|
JP LP_END_P
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; HL - à §¬¥à ®ª
|
; HL - à §¬¥à ®ª
|
||||||
; DE - ¯®«®¦¥¨¥ ®ª
|
; DE - ¯®«®¦¥¨¥ ®ª
|
||||||
; A - ®¬¥à ®ª
|
; A - ®¬¥à ®ª
|
||||||
@ -1506,46 +1500,38 @@ WIN_MOVE: AND A
|
|||||||
; DE - ¬¥áâ® á®åà 塞®£® ®ª
|
; DE - ¬¥áâ® á®åà 塞®£® ®ª
|
||||||
; IX - ¤à¥á á®åà 塞®£® ®ª , ¢ áâà ¨æ¥ 4000h
|
; IX - ¤à¥á á®åà 塞®£® ®ª , ¢ áâà ¨æ¥ 4000h
|
||||||
; € - ®¬¥à ®ª , B - áâà ¨æ
|
; € - ®¬¥à ®ª , B - áâà ¨æ
|
||||||
WIN_COPY:
|
WIN_COPY: AND A
|
||||||
AND A
|
|
||||||
SCF
|
SCF
|
||||||
RET NZ
|
RET NZ
|
||||||
WIN_COPY_WIN1:
|
WIN_COPY_WIN1: CALL LP_BEG_P
|
||||||
CALL LP_BEG_P
|
|
||||||
|
|
||||||
IN A,(SLOT1)
|
IN A,(SLOT1)
|
||||||
PUSH AF
|
PUSH AF
|
||||||
|
;
|
||||||
CALL LP_SET_CUR
|
CALL LP_SET_CUR
|
||||||
LD (SYS_PAGE.SYS_WORK1),SP
|
LD (SYS_PAGE.SYS_WORK1),SP
|
||||||
|
|
||||||
LD A,B
|
LD A,B
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD A,#50
|
LD A,#50
|
||||||
OUT (SLOT1),A
|
OUT (SLOT1),A
|
||||||
|
;
|
||||||
EXX
|
EXX
|
||||||
RES 7,H
|
RES 7,H
|
||||||
LD C,D
|
LD C,D
|
||||||
EXX
|
EXX
|
||||||
|
;
|
||||||
.COPY_loop2:
|
.COPY_loop2: LD A,L
|
||||||
LD A,L
|
|
||||||
EXX
|
EXX
|
||||||
LD B,A
|
LD B,A
|
||||||
;
|
|
||||||
ADD A,A
|
ADD A,A
|
||||||
ADD A,XL
|
ADD A,XL
|
||||||
LD XL,A
|
LD XL,A
|
||||||
JR NC,.NO_INC_XH
|
JR NC,.NO_INC_XH
|
||||||
INC XH
|
|
||||||
.NO_INC_XH:
|
|
||||||
LD SP,IX
|
|
||||||
;
|
;
|
||||||
|
INC XH
|
||||||
|
.NO_INC_XH: LD SP,IX
|
||||||
LD A,C
|
LD A,C
|
||||||
ADD A,B
|
ADD A,B
|
||||||
.COPY_loop:
|
.COPY_loop: DEC A
|
||||||
DEC A
|
|
||||||
OUT (PORT_Y),A
|
OUT (PORT_Y),A
|
||||||
LD E,(HL)
|
LD E,(HL)
|
||||||
INC L
|
INC L
|
||||||
@ -1569,9 +1555,7 @@ WIN_COPY_WIN1:
|
|||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT1),A
|
OUT (SLOT1),A
|
||||||
JP LP_END_P.short
|
JP LP_END_P.short
|
||||||
;AND A
|
;
|
||||||
;RET
|
|
||||||
|
|
||||||
|
|
||||||
; HL - à §¬¥à á®åà 塞®£® ®ª
|
; HL - à §¬¥à á®åà 塞®£® ®ª
|
||||||
; DE - ¬¥áâ® á®åà 塞®£® ®ª
|
; DE - ¬¥áâ® á®åà 塞®£® ®ª
|
||||||
@ -1633,42 +1617,70 @@ WIN_RESTORE: AND A
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
;!FIXIT ¥â ®¯¨á ¨ï, ¥¤®¤¥« . <20>¥ç âì á ã¯à ¢«ïî騬¨ ᨬ¢®« ¬¨
|
; <20>¥ç âì á ã¯à ¢«ïî騬¨ ᨬ¢®« ¬¨ ¢ ª®á®«ì
|
||||||
;------------------------------------------------------------------[#E0]
|
;------------------------------------------------------------------[#E0]
|
||||||
LP_PR_LINE_DIR:
|
LP_PR_LINE_DIR:
|
||||||
;!TODO ¥¤®¤¥«
|
;>------------------------------------------------[BELL]
|
||||||
.BELL: ; ...
|
.BELL: EXX
|
||||||
; ...
|
PUSH HL
|
||||||
JR .loop
|
PUSH BC
|
||||||
;!TODO ¥¤®¤¥«
|
|
||||||
.BACK: LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
|
||||||
;
|
;
|
||||||
LD A,(WIN_ID_0.H_BEG)
|
LD DE,1200
|
||||||
|
LD HL,4
|
||||||
|
CALL BEEP
|
||||||
|
;
|
||||||
|
POP BC
|
||||||
|
POP HL
|
||||||
|
EXX
|
||||||
|
JR .loop
|
||||||
|
;-------------------------------------------------[BELL]
|
||||||
|
|
||||||
|
;>------------------------------------------------[Backspace]
|
||||||
|
.BACK: LD A,(WIN_ID_0.H_BEG)
|
||||||
CP D
|
CP D
|
||||||
JR Z,.loop
|
JR Z,.loop
|
||||||
INC B
|
INC B
|
||||||
DEC D
|
DEC D
|
||||||
CORRECT_SCR_40_BACK
|
CORRECT_SCR_40_BACKWARD
|
||||||
JP .loop
|
JP .loop
|
||||||
|
;>------------------------------------------------[Backspace]
|
||||||
|
;
|
||||||
|
.EXIT_SpecSymbol:
|
||||||
|
DEC HL
|
||||||
|
CALL LP_END_P
|
||||||
|
POP IX
|
||||||
|
SCF
|
||||||
|
RET
|
||||||
;
|
;
|
||||||
.EXIT: POP IX
|
.EXIT: POP IX
|
||||||
JP LP_END_P
|
JP LP_END_P
|
||||||
;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;
|
||||||
; DE - ¬¥á⮠ᨬ¢®« ¢ ®ª¥, ¥á«¨ A != 0
|
; A - âਡãâë ¢ë¢®¤¨¬®£® ᨬ¢®« ¥á«¨ CF'
|
||||||
|
; CF - XY-mode
|
||||||
|
; DE - ¬¥á⮠ᨬ¢®« ¢ ®ª¥, ¥á«¨ CF=1
|
||||||
; HL - ¤à¥á á ¢ë¢®¤¨¬®© áâப®©
|
; HL - ¤à¥á á ¢ë¢®¤¨¬®© áâப®©
|
||||||
; B - à §¤¥«¨â¥«ì
|
; B - à §¤¥«¨â¥«ì
|
||||||
; A - mode
|
; IY - ¤¢ ᯥæ.ᨬ¢®« ¤«ï ¢ë室 á CF=1. „®«¦ë ¡ëâì à ¢ë B, ¥á«¨ ¥ ã¦ë
|
||||||
|
; A' - 梥⠪®á®«¨ (¨á¯®«ì§ã¥âáï ¯à¨ áªà®««¥ ¨ ®ç¨á⪥ ®ª )
|
||||||
|
; CF' - ¢ë¢®¤¨âì ᨬ¢®« á âਡãâ ¬¨
|
||||||
;;;;;;;;;;;;;;;;;
|
;;;;;;;;;;;;;;;;;
|
||||||
.START: PUSH IX
|
.START: PUSH IX
|
||||||
AND A ; check mode for DE
|
LD XL,A ; âਡãâë ¢ë¢®¤¨¬®£® ᨬ¢®«
|
||||||
|
;
|
||||||
|
EX AF,AF'
|
||||||
|
PUSH AF ; 梥⠪®á®«¨, attr-mode
|
||||||
|
EX AF,AF'
|
||||||
;
|
;
|
||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
LD C,A
|
LD C,A
|
||||||
CALL LP_BEG_P
|
CALL LP_BEG_P
|
||||||
CALL NZ,LP_SET_CUR ; mode for DE
|
CALL C,LP_SET_CUR ; mode for DE
|
||||||
;
|
POP AF ; 梥⠪®á®«¨, attr-mode
|
||||||
|
LD (SYS_PAGE.SYS_WORK2),A ; 梥⠪®á®«¨
|
||||||
EXX
|
EXX
|
||||||
|
LD C,0
|
||||||
|
JR NC,.loop
|
||||||
|
INC C ; C' - attr flag. ¢ë¢®¤¨âì âਡãâ
|
||||||
.loop: LD A,D
|
.loop: LD A,D
|
||||||
OUT (PORT_Y),A
|
OUT (PORT_Y),A
|
||||||
EXX
|
EXX
|
||||||
@ -1679,7 +1691,12 @@ LP_PR_LINE_DIR:
|
|||||||
LD XH,A
|
LD XH,A
|
||||||
INC HL
|
INC HL
|
||||||
CP B
|
CP B
|
||||||
JP Z,.EXIT
|
JR Z,.EXIT
|
||||||
|
CP YH
|
||||||
|
JR Z,.EXIT_SpecSymbol
|
||||||
|
CP YL
|
||||||
|
JR Z,.EXIT_SpecSymbol
|
||||||
|
;
|
||||||
EXX
|
EXX
|
||||||
; ¯¥ç â ¥¬ë¥ ᨬ¢®«ë
|
; ¯¥ç â ¥¬ë¥ ᨬ¢®«ë
|
||||||
CP 14
|
CP 14
|
||||||
@ -1687,6 +1704,10 @@ LP_PR_LINE_DIR:
|
|||||||
CP 7
|
CP 7
|
||||||
JR C,.print
|
JR C,.print
|
||||||
; ã¯à ¢«ïî騥 ᨬ¢®«ë
|
; ã¯à ¢«ïî騥 ᨬ¢®«ë
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (SLOT3),A
|
||||||
|
LD A,XH
|
||||||
|
;
|
||||||
SUB 7
|
SUB 7
|
||||||
JR Z,.BELL ; A = 07 "BELL"
|
JR Z,.BELL ; A = 07 "BELL"
|
||||||
DEC A
|
DEC A
|
||||||
@ -1699,55 +1720,73 @@ LP_PR_LINE_DIR:
|
|||||||
JR Z,.VertTab ; € = 11 "Vertical Tabulation"
|
JR Z,.VertTab ; € = 11 "Vertical Tabulation"
|
||||||
DEC A
|
DEC A
|
||||||
JR Z,.CLS ; € = 12 "Form feed" - à §àë¢ áâà ¨æë, ç «® ®¢®£® «¨áâ , ¬®¦¥â à ¡®â âì ª ª VT
|
JR Z,.CLS ; € = 12 "Form feed" - à §àë¢ áâà ¨æë, ç «® ®¢®£® «¨áâ , ¬®¦¥â à ¡®â âì ª ª VT
|
||||||
DEC A
|
;DEC A
|
||||||
JR Z,.CR ; € = 13 "Carriage Return"
|
;JR Z,.CR ; € = 13 "Carriage Return"
|
||||||
; ¢ë¢®¤¨âì!
|
;>------------------------------------------------[CR]
|
||||||
;
|
.CR: LD A,(WIN_ID_0.H_BEG)
|
||||||
|
LD D,A
|
||||||
|
LD A,(WIN_ID_0.SIZE_REL)
|
||||||
|
LD B,A
|
||||||
|
JP .loop
|
||||||
|
;-------------------------------------------------[CR]
|
||||||
|
|
||||||
|
;>------------------------------------------------[PRINT]
|
||||||
.print: LD A,#50
|
.print: LD A,#50
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
LD A,XH
|
LD A,XH
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
|
; ¢ë¢®¤¨âì âਡãâ
|
||||||
|
RR C ; C' - attr flag
|
||||||
|
JR NC,.NoPutAttr
|
||||||
|
;
|
||||||
|
INC L
|
||||||
|
LD A,XL
|
||||||
|
LD (HL),A
|
||||||
|
DEC L
|
||||||
|
.NoPutAttr: RL C ; C' - attr flag
|
||||||
INC D
|
INC D
|
||||||
.next_full: CORRECT_SCR_40
|
.next_full: CORRECT_SCR_40_FORWARD
|
||||||
.next: DJNZ .loop
|
.next: DJNZ .loop
|
||||||
CALL LP_NEXT_HL_DIR
|
CALL LP_NEXT_HL_DIR
|
||||||
JP .loop
|
JP .loop
|
||||||
;-------[TAB] ;!FIXIT § ¯®«ï¥â ¯à®¡¥« ¬¨
|
;-------------------------------------------------[PRINT]
|
||||||
.TAB: LD A,SYS_PAGE
|
|
||||||
OUT (SLOT3),A
|
;>------------------------------------------------[TAB]
|
||||||
LD A,(WIN_ID_0.H_BEG)
|
.TAB: LD A,(WIN_ID_0.H_BEG)
|
||||||
SUB D
|
SUB D
|
||||||
NEG
|
NEG
|
||||||
AND %0000'0111
|
AND %0000'0111
|
||||||
NEG
|
NEG
|
||||||
ADD A,8
|
ADD A,8
|
||||||
|
CP B
|
||||||
|
JR C,.keep_A
|
||||||
|
;
|
||||||
|
LD A,B
|
||||||
|
DEC A
|
||||||
|
.keep_A: ;NEG
|
||||||
|
PUSH BC ; save C' - attr flag
|
||||||
LD C,A
|
LD C,A
|
||||||
LD A,#50
|
EX AF,AF'
|
||||||
OUT (SLOT3),A
|
JR C,.LLL
|
||||||
;
|
;
|
||||||
.loop_tab: LD (HL),' '
|
EX AF,AF'
|
||||||
INC D
|
ADD A,A ; ०¨¬ 40
|
||||||
DEC B
|
EX AF,AF'
|
||||||
JR Z,.end_Line
|
.LLL: EX AF,AF'
|
||||||
DEC C
|
|
||||||
JR NZ,.loop_tab
|
|
||||||
JR .next_full
|
|
||||||
;
|
;
|
||||||
.end_Line: LD A,SYS_PAGE
|
.tabNxt: ADD A,D
|
||||||
OUT (SLOT3),A
|
|
||||||
LD A,(WIN_ID_0.H_BEG)
|
|
||||||
LD D,A
|
LD D,A
|
||||||
LD A,(WIN_ID_0.SIZE_REL)
|
LD A,B
|
||||||
|
SUB C ; set XL
|
||||||
|
POP BC ; restore C' - attr flag
|
||||||
LD B,A
|
LD B,A
|
||||||
JP .LineFeed_go
|
JP .loop
|
||||||
;-------[TAB end]
|
|
||||||
;
|
;
|
||||||
;-------[Line Feed]
|
;-------------------------------------------------[TAB]
|
||||||
|
|
||||||
|
;>------------------------------------------------[Line Feed]
|
||||||
.VertTab: ;
|
.VertTab: ;
|
||||||
.LineFeed: LD A,SYS_PAGE
|
.LineFeed: LD A,4 ;!HARDCODE ¤«¨ ®¤®£® ®¯¨á â¥«ï ª¢ ¤à ⨪
|
||||||
OUT (SLOT3),A
|
|
||||||
;
|
|
||||||
.LineFeed_go: LD A,4 ;!HARDCODE ¤«¨ ®¤®£® ®¯¨á â¥«ï ª¢ ¤à ⨪
|
|
||||||
ADD L
|
ADD L
|
||||||
LD L,A
|
LD L,A
|
||||||
;
|
;
|
||||||
@ -1755,24 +1794,118 @@ LP_PR_LINE_DIR:
|
|||||||
CP L
|
CP L
|
||||||
CALL C,LP_NEXT_HL_DIR.end_line
|
CALL C,LP_NEXT_HL_DIR.end_line
|
||||||
JP .loop
|
JP .loop
|
||||||
;-------[Line Feed end]
|
;-------------------------------------------------[Line Feed]
|
||||||
|
|
||||||
|
;>------------------------------------------------[Form feed]
|
||||||
|
.CLS: PUSH BC ; C' - attr flag
|
||||||
|
EXX
|
||||||
|
PUSH BC
|
||||||
|
PUSH HL
|
||||||
|
PUSH DE
|
||||||
;
|
;
|
||||||
.CLS: ; ...
|
LD A,(SYS_PAGE.SYS_WORK2) ; 梥⠪®á®«¨
|
||||||
;!TODO CLS
|
LD B,A
|
||||||
|
LD DE,0
|
||||||
|
LD HL,(WIN_ID_0.USER.SIZE_H) ; get WIN XY
|
||||||
|
LD A,(WIN_ID_0.SIZE_REL)
|
||||||
|
LD L,A
|
||||||
|
LD C," "
|
||||||
|
CALL LP_CLS_WIN.CLS
|
||||||
|
;
|
||||||
|
POP DE
|
||||||
|
POP HL
|
||||||
|
POP BC
|
||||||
|
EXX
|
||||||
|
LD A,B
|
||||||
|
POP BC ; C' - attr flag
|
||||||
|
LD B,A
|
||||||
JP .loop
|
JP .loop
|
||||||
;
|
;-------------------------------------------------[Form feed]
|
||||||
.CR: LD A,SYS_PAGE
|
;------------------------------------------------------------------[#E0]
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
LP_NEXT_HL_DIR: LD A,SYS_PAGE
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
LD A,4 ;!HARDCODE ¤«¨ ®¤®£® ®¯¨á â¥«ï ª¢ ¤à ⨪
|
||||||
|
ADD L
|
||||||
|
LD L,A
|
||||||
|
LD A,(WIN_ID_0.V_END)
|
||||||
|
CP L
|
||||||
|
CALL C,.end_line
|
||||||
;
|
;
|
||||||
LD A,(WIN_ID_0.H_BEG)
|
.no_end_line: LD A,(WIN_ID_0.H_BEG)
|
||||||
LD D,A
|
LD D,A
|
||||||
LD A,(WIN_ID_0.SIZE_REL)
|
LD A,(WIN_ID_0.SIZE_REL)
|
||||||
LD B,A
|
LD B,A
|
||||||
|
RET
|
||||||
;
|
;
|
||||||
|
.end_line: LD A,L
|
||||||
|
SUB 4 ;!HARDCODE ¤«¨ ®¤®£® ®¯¨á â¥«ï ª¢ ¤à ⨪
|
||||||
|
LD L,A
|
||||||
|
PUSH HL
|
||||||
|
DEC L
|
||||||
|
PUSH BC
|
||||||
|
PUSH DE
|
||||||
|
EXX
|
||||||
|
PUSH BC
|
||||||
|
PUSH HL
|
||||||
|
PUSH DE
|
||||||
|
LD A,(WIN_ID_0.V_BEG)
|
||||||
|
LD D,A
|
||||||
|
LD A,(WIN_ID_0.USER.SIZE_V)
|
||||||
|
LD B,A
|
||||||
|
LD E,0 ; ¢áî áâப㠮ª áªà®««¨¬
|
||||||
|
CALL LP_SCROLL_UP.RUN
|
||||||
|
;
|
||||||
|
LD A,SYS_PAGE
|
||||||
|
OUT (SLOT3),A
|
||||||
|
LD C," "
|
||||||
|
LD A,(SYS_PAGE.SYS_WORK2) ; 梥⠪®á®«¨
|
||||||
|
LD B,A
|
||||||
|
LD A,(WIN_ID_0.USER.SIZE_V)
|
||||||
|
DEC A
|
||||||
|
LD D,A
|
||||||
|
LD E,0
|
||||||
|
LD HL,(WIN_ID_0.SIZE_REL)
|
||||||
|
LD H,1
|
||||||
|
LD C," "
|
||||||
|
CALL LP_CLS_WIN.CLS
|
||||||
|
;
|
||||||
|
POP DE
|
||||||
|
POP HL
|
||||||
|
POP BC
|
||||||
|
EXX
|
||||||
|
POP DE
|
||||||
|
POP BC
|
||||||
|
POP HL
|
||||||
|
RET
|
||||||
|
;
|
||||||
|
; LD HL,(WIN_ID_0.V_END)
|
||||||
|
; DEC L
|
||||||
|
; DEC L
|
||||||
|
; DEC L
|
||||||
|
; LD H,#C3
|
||||||
|
; ;
|
||||||
|
; LD A,(WIN_ID_0.H_BEG)
|
||||||
|
; LD D,A
|
||||||
|
; ;
|
||||||
; LD A,#50
|
; LD A,#50
|
||||||
; OUT (SLOT3),A
|
; OUT (SLOT3),A
|
||||||
JP .loop
|
; ;
|
||||||
;------------------------------------------------------------------[#E0]
|
; EXX
|
||||||
|
; LD A,(WIN_ID_0.SIZE_REL)
|
||||||
|
; LD B,A
|
||||||
|
; .loop_cl_line: EXX
|
||||||
|
; LD A,D
|
||||||
|
; OUT (PORT_Y),A
|
||||||
|
; LD (HL),C
|
||||||
|
; INC D
|
||||||
|
; CORRECT_SCR_40_FORWARD
|
||||||
|
; EXX
|
||||||
|
; DJNZ .loop_cl_line
|
||||||
|
; LD A,SYS_PAGE
|
||||||
|
; OUT (SLOT3),A
|
||||||
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
LP_OPEN_PG: IN A,(SLOT3)
|
LP_OPEN_PG: IN A,(SLOT3)
|
||||||
|
|||||||
@ -1025,74 +1025,61 @@ BLK_RD_WR:
|
|||||||
; DE - ®¬¥à ᥪâ®à (áç¨â âì ¯® 256b ᥪâ®à)
|
; DE - ®¬¥à ᥪâ®à (áç¨â âì ¯® 256b ᥪâ®à)
|
||||||
; B - ç¨á«® ᥪâ®à®¢
|
; B - ç¨á«® ᥪâ®à®¢
|
||||||
; A' - à §¬¥à ᥪâ®à (1 - 256b, 2 - 512 b)
|
; A' - à §¬¥à ᥪâ®à (1 - 256b, 2 - 512 b)
|
||||||
ROM_DISK:
|
ROM_DISK: EX AF,AF'
|
||||||
; á®åà 塞 á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
|
||||||
;LD A,R
|
|
||||||
EX AF,AF'
|
|
||||||
LD C,0 ; áç¥â稪
|
LD C,0 ; áç¥â稪
|
||||||
DEC A
|
DEC A
|
||||||
JR Z,.loop
|
JR Z,.loop
|
||||||
;JR Z,.start
|
;
|
||||||
DEC A
|
DEC A
|
||||||
SCF
|
SCF
|
||||||
RET NZ
|
RET NZ
|
||||||
|
;
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
ADD HL,HL
|
ADD HL,HL
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD A,B
|
LD A,B
|
||||||
ADD A,A
|
ADD A,A
|
||||||
LD B,A
|
LD B,A
|
||||||
;!!!!!
|
|
||||||
RET C
|
RET C
|
||||||
|
;
|
||||||
DI
|
DI
|
||||||
CALL .loop
|
CALL .loop
|
||||||
; ; ¢®ááâ ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
|
||||||
; EX AF,AF'
|
|
||||||
; JP PO,.noInterrupts
|
|
||||||
; EI
|
|
||||||
; .noInterrupts:
|
|
||||||
; EX AF,AF'
|
|
||||||
; ;
|
|
||||||
RET C
|
RET C
|
||||||
|
;
|
||||||
AND A
|
AND A
|
||||||
RR D
|
RR D
|
||||||
RR E
|
RR E
|
||||||
XOR A
|
XOR A
|
||||||
RET
|
RET
|
||||||
|
;
|
||||||
; .start:
|
|
||||||
; DI
|
|
||||||
; CALL .loop
|
|
||||||
; ; ¢®ááâ ¢«¨¢ ¥¬ á®áâ®ï¨¥ ¯à¥àë¢ ¨©
|
|
||||||
; EX AF,AF'
|
|
||||||
; JP PO,.noInterrupts2
|
|
||||||
; EI
|
|
||||||
; .noInterrupts2:
|
|
||||||
; EX AF,AF'
|
|
||||||
; ;
|
|
||||||
; RET
|
|
||||||
|
|
||||||
|
|
||||||
.loop: PUSH DE ; ®¬¥à ᥪâ®à
|
.loop: PUSH DE ; ®¬¥à ᥪâ®à
|
||||||
PUSH BC
|
PUSH BC
|
||||||
|
;
|
||||||
LD A,E
|
LD A,E
|
||||||
AND #3F ; ADRESS in ROM-Page
|
AND #3F ; ADRESS in ROM-Page
|
||||||
PUSH AF ; á®åà ¨âì ¤à¥á
|
PUSH AF ; á®åà ¨âì ¤à¥á
|
||||||
|
;
|
||||||
EX DE,HL ; DE - ¤à¥á ¡ãä¥à
|
EX DE,HL ; DE - ¤à¥á ¡ãä¥à
|
||||||
ADD HL,HL
|
ADD HL,HL
|
||||||
ADD HL,HL ; H - ®¬¥à ¡ ª¨
|
ADD HL,HL ; H - ®¬¥à ¡ ª¨
|
||||||
|
; [ ] ¡¥§ ¯à¨¢ï§ª¨ ஬-¤¨áª ª align 256
|
||||||
LD A,(ROM_DISK.Pages.Number)
|
;LD A,(ROM_DISK.Pages.Number)
|
||||||
INC H
|
;INC H
|
||||||
CP H
|
;CP H
|
||||||
LD L,H
|
;
|
||||||
LD H,high ROM_DISK.Pages.Number ; ROM-Disk pages!
|
LD C,H
|
||||||
|
LD B,0
|
||||||
|
LD HL,ROM_DISK.Pages
|
||||||
|
ADD HL,BC
|
||||||
|
;
|
||||||
|
LD A,(ROM_DISK.Pages.Number) ; rdlow-ok
|
||||||
|
INC C
|
||||||
|
CP C
|
||||||
|
;
|
||||||
|
;LD L,H
|
||||||
|
;LD H,high ROM_DISK.Pages.Number ; ROM-Disk pages!
|
||||||
|
;
|
||||||
LD A,(HL) ; PAGE-ROM
|
LD A,(HL) ; PAGE-ROM
|
||||||
|
|
||||||
POP HL ; ¢®ááâ ®¢¨âì ¤à¥á ¢ ROM-Page
|
POP HL ; ¢®ááâ ®¢¨âì ¤à¥á ¢ ROM-Page
|
||||||
LD L,0 ; ¥á«¨ ¤ «¥ª® § å®â¥«¨ - ¢ë室 á ®è¨¡ª®©
|
LD L,0 ; ¥á«¨ ¤ «¥ª® § å®â¥«¨ - ¢ë室 á ®è¨¡ª®©
|
||||||
JR C,.errorExit ; ROM-Disk-end
|
JR C,.errorExit ; ROM-Disk-end
|
||||||
@ -1100,8 +1087,7 @@ ROM_DISK:
|
|||||||
; HL - ¤à¥á ¢ ROM
|
; HL - ¤à¥á ¢ ROM
|
||||||
; B - ç¨á«® ᥪâ®à®¢
|
; B - ç¨á«® ᥪâ®à®¢
|
||||||
; A - ROM-Page
|
; A - ROM-Page
|
||||||
.loopRead:
|
.loopRead: PUSH HL ; ®âªã¤
|
||||||
PUSH HL ; ®âªã¤
|
|
||||||
PUSH DE ; ªã¤
|
PUSH DE ; ªã¤
|
||||||
|
|
||||||
LD HL,-.stackDepth-.readProcedure.size ; memory stack use!
|
LD HL,-.stackDepth-.readProcedure.size ; memory stack use!
|
||||||
@ -1117,8 +1103,7 @@ ROM_DISK:
|
|||||||
RET ; ¨á¯®«¨âì ¯à®£à ¬¬ã .readProcedure, á⥪¥ ¤à¥á ¡ãä¥à ¨ ROM
|
RET ; ¨á¯®«¨âì ¯à®£à ¬¬ã .readProcedure, á⥪¥ ¤à¥á ¡ãä¥à ¨ ROM
|
||||||
; DE - next address
|
; DE - next address
|
||||||
; HL - ROM address
|
; HL - ROM address
|
||||||
.readNext:
|
.readNext: POP BC ; ç¨á«® ᥪâ®à®¢
|
||||||
POP BC ; ç¨á«® ᥪâ®à®¢
|
|
||||||
|
|
||||||
INC C ; áç¥â稪 áç¨â ëå ᥪâ®à®¢
|
INC C ; áç¥â稪 áç¨â ëå ᥪâ®à®¢
|
||||||
DEC B ; ᥪâ®à ª®ç¨«¨áì?
|
DEC B ; ᥪâ®à ª®ç¨«¨áì?
|
||||||
@ -1141,8 +1126,7 @@ ROM_DISK:
|
|||||||
|
|
||||||
JP .loop ; ç âì ¢á¥ á®¢ !
|
JP .loop ; ç âì ¢á¥ á®¢ !
|
||||||
; ç⥨¥ § ª®ç¥®
|
; ç⥨¥ § ª®ç¥®
|
||||||
.normExit:
|
.normExit: POP HL ; ᥪâ®à, ®âªã¤ ¢¥«®áì ç⥨¥
|
||||||
POP HL ; ᥪâ®à, ®âªã¤ ¢¥«®áì ç⥨¥
|
|
||||||
ADD HL,BC ; ¯® ¢®§¢à âã: HL - á«¥¤. ¤à¥á
|
ADD HL,BC ; ¯® ¢®§¢à âã: HL - á«¥¤. ¤à¥á
|
||||||
EX DE,HL ; DE - á«¥¤.ᥪâ®à
|
EX DE,HL ; DE - á«¥¤.ᥪâ®à
|
||||||
AND A
|
AND A
|
||||||
@ -1154,7 +1138,7 @@ ROM_DISK:
|
|||||||
SCF
|
SCF
|
||||||
RET
|
RET
|
||||||
; ¯à®æ¥¤ãà , ¯¥à¥®á¨¬ ï á⥪ ¤«ï çâ¥¨ï ¨§ ROM-Disk
|
; ¯à®æ¥¤ãà , ¯¥à¥®á¨¬ ï á⥪ ¤«ï çâ¥¨ï ¨§ ROM-Disk
|
||||||
; ®áâ®à®¦¥¥ á PUSH, ¥á«¨ ¤® ¬®£®, ⮠㢥«¨ç¨¢ © .stackDepth
|
; ®áâ®à®¦¥¥ á PUSH, ¥á«¨ ¤® ¬®£®, ⮠㢥«¨ç¨âì .stackDepth
|
||||||
.readProcedure:
|
.readProcedure:
|
||||||
POP DE ; ªã¤
|
POP DE ; ªã¤
|
||||||
POP HL ; ®âªã¤
|
POP HL ; ®âªã¤
|
||||||
|
|||||||
@ -254,8 +254,8 @@ INIT_SYS_ALL:
|
|||||||
;
|
;
|
||||||
;;; init task's
|
;;; init task's
|
||||||
;
|
;
|
||||||
LD DE,ZG_ADDRESS ; ¤à¥á § ª®£¥¥à â®à
|
;LD DE,ZG_ADDRESS ; ¤à¥á § ª®£¥¥à â®à
|
||||||
LD (SYS_PAGE.WIN_ZG - #4000),DE
|
;LD (SYS_PAGE.WIN_ZG - #4000),DE
|
||||||
;
|
;
|
||||||
;-----------[new code start]------------; !!!!! ¯®á¬®âà¥âì-¯à¨ç¥á âì
|
;-----------[new code start]------------; !!!!! ¯®á¬®âà¥âì-¯à¨ç¥á âì
|
||||||
INIT_VSyncAndWaits:
|
INIT_VSyncAndWaits:
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
;
|
;
|
||||||
; MODULE ROM_PART
|
; MODULE ROM_PART
|
||||||
|
DISPLAY "\r\n/=====================[ROM part]=====================\\"
|
||||||
;------------[Begin of ROM]-------------
|
;------------[Begin of ROM]-------------
|
||||||
ROM_START:
|
ROM_START:
|
||||||
DI
|
DI
|
||||||
@ -7,17 +8,17 @@ ROM_START:
|
|||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
|
|
||||||
;--------------[checksum]---------------
|
;--------------[checksum]---------------
|
||||||
BLOCK 4-$,#FF
|
_mInfoBLOCK 4-$,#FF
|
||||||
Check_Sum:
|
Check_Sum:
|
||||||
DB #FF,#FF,#FF,#FF ; ¬¥áâ® ¤«ï ª®â஫쮩 á㬬ë
|
DB #FF,#FF,#FF,#FF ; ¬¥áâ® ¤«ï ª®â஫쮩 á㬬ë
|
||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
BLOCK #10-$,#FF
|
_mInfoBLOCK #10-$,#FF
|
||||||
RET
|
RET
|
||||||
;---------------------------------------
|
;---------------------------------------
|
||||||
|
|
||||||
;!TODO ¯à¨ªàãâ¨âì ª ROM.BIOS
|
;!TODO ¯à¨ªàãâ¨âì ª ROM.BIOS
|
||||||
;----------------[int]------------------
|
;----------------[int]------------------
|
||||||
BLOCK #38-$,#FF
|
_mInfoBLOCK #38-$,#FF
|
||||||
; INT: PUSH BC
|
; INT: PUSH BC
|
||||||
; PUSH AF
|
; PUSH AF
|
||||||
|
|
||||||
@ -434,5 +435,13 @@ RET_TO_TRDOS:
|
|||||||
_mInfoBLOCK #4000-$,#FF
|
_mInfoBLOCK #4000-$,#FF
|
||||||
;=======================================
|
;=======================================
|
||||||
|
|
||||||
|
IFNDEF PREBUILD
|
||||||
|
DISPLAY ' -------------------[Main.asm]-------------------'
|
||||||
|
DISPLAY 'End code address: ',/A,MAIN_END_CODE_ADDRESS
|
||||||
|
DISPLAY 'Code size: ',/A,MAIN_END_CODE_ADDRESS + 1 - COMPILE_ADDR.MAIN
|
||||||
|
DISPLAY 'End buffers address: ',/A,memBUFFER.End - 1
|
||||||
|
DISPLAY 'Free memory: ',/A,#C000 - (memBUFFER.End-1) - STACK.Size
|
||||||
|
DISPLAY 'Unused bytes before INT_POINTER: ',/A,INT_POINTER-before_intPointer
|
||||||
|
ENDIF
|
||||||
; ENDMODULE ;ROM_PART
|
; ENDMODULE ;ROM_PART
|
||||||
;
|
;
|
||||||
@ -724,27 +724,27 @@ Ent EQU #0D
|
|||||||
;
|
;
|
||||||
;================================
|
;================================
|
||||||
|
|
||||||
BEEP: LD A,#10
|
; BEEP: LD A,#10
|
||||||
OUT (ZX_Beeper),A
|
; OUT (ZX_Beeper),A
|
||||||
LD B,D
|
; LD B,D
|
||||||
LD C,E
|
; LD C,E
|
||||||
.loop1: DEC BC
|
; .loop1: DEC BC
|
||||||
LD A,B
|
; LD A,B
|
||||||
OR C
|
; OR C
|
||||||
JR NZ,.loop1
|
; JR NZ,.loop1
|
||||||
XOR A ;LD A,#00
|
; XOR A ;LD A,#00
|
||||||
OUT (ZX_Beeper),A
|
; OUT (ZX_Beeper),A
|
||||||
LD B,D
|
; LD B,D
|
||||||
LD C,E
|
; LD C,E
|
||||||
.loop2: DEC BC
|
; .loop2: DEC BC
|
||||||
LD A,B
|
; LD A,B
|
||||||
OR C
|
; OR C
|
||||||
JR NZ,.loop2
|
; JR NZ,.loop2
|
||||||
DEC HL
|
; DEC HL
|
||||||
LD A,H
|
; LD A,H
|
||||||
OR L
|
; OR L
|
||||||
JR NZ,BEEP
|
; JR NZ,BEEP
|
||||||
RET
|
; RET
|
||||||
|
|
||||||
;COM_A EQU #19 Z84.SIO.Ch_A.Ctrl
|
;COM_A EQU #19 Z84.SIO.Ch_A.Ctrl
|
||||||
;DAT_A EQU #18 Z84.SIO.Ch_A.Data
|
;DAT_A EQU #18 Z84.SIO.Ch_A.Data
|
||||||
|
|||||||
@ -631,13 +631,12 @@ START:
|
|||||||
CALL ZXMODE_SETUP
|
CALL ZXMODE_SETUP
|
||||||
CALL XY_SCREEN
|
CALL XY_SCREEN
|
||||||
|
|
||||||
;R06
|
;R06 ;[Check Quick Start ROM]
|
||||||
LD BC,CMOS_CELL.BootUpParams.Mask.QuickStartROM ;#010E
|
LD BC,CMOS_CELL.BootUpParams.Mask.QuickStartROM ;#010E
|
||||||
CALL GET_CMOS_VALUE
|
CALL GET_CMOS_VALUE
|
||||||
POP BC
|
POP BC
|
||||||
INC B
|
RR C
|
||||||
DEC B
|
JR NC,IGNORE_QuickStartROM ; १ã«ìâ ⠯஢¥àª¨ Space ¨§ exp.asm [Check SPACE]
|
||||||
JR NZ,IGNORE_QuickStartROM ; १ã«ìâ ⠯஢¥àª¨ Space ¨§ exp.asm [space_check]
|
|
||||||
PUSH AF
|
PUSH AF
|
||||||
LD C,SLOT3
|
LD C,SLOT3
|
||||||
IN B,(C)
|
IN B,(C)
|
||||||
@ -1646,23 +1645,9 @@ SETLAND:
|
|||||||
LDIR
|
LDIR
|
||||||
RET
|
RET
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
|
||||||
INCLUDE 'IM2_INT.asm'
|
|
||||||
//////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
POSTMSG:
|
|
||||||
CALL FindStringAddr
|
|
||||||
JP PRINTZ
|
|
||||||
|
|
||||||
POSTMSC:
|
|
||||||
CALL FindStringAddr
|
|
||||||
LD A,E
|
|
||||||
JP CPRINTZ
|
|
||||||
|
|
||||||
;
|
;
|
||||||
; print boot drive number
|
; print boot drive number
|
||||||
PRINT_CHANEL:
|
PRINT_CHANEL: AND #0F
|
||||||
AND #0F
|
|
||||||
LD C,A
|
LD C,A
|
||||||
;
|
;
|
||||||
LD A,msgStrings.parPriIdeMA
|
LD A,msgStrings.parPriIdeMA
|
||||||
@ -1677,8 +1662,7 @@ PRINT_CHANEL:
|
|||||||
JR Z,.print_chanel
|
JR Z,.print_chanel
|
||||||
;
|
;
|
||||||
LD A,msgStrings.parSecIdeSl
|
LD A,msgStrings.parSecIdeSl
|
||||||
.print_chanel:
|
.print_chanel: CALL FindStringAddr
|
||||||
CALL FindStringAddr
|
|
||||||
;CALL LP_GET_PLACE
|
;CALL LP_GET_PLACE
|
||||||
;LD A,ScreenPOS.SUBNAME.POS
|
;LD A,ScreenPOS.SUBNAME.POS
|
||||||
;SUB E
|
;SUB E
|
||||||
@ -1688,6 +1672,19 @@ PRINT_CHANEL:
|
|||||||
JP LP_PRINT_LINE6
|
JP LP_PRINT_LINE6
|
||||||
;
|
;
|
||||||
|
|
||||||
|
POSTMSC: CALL FindStringAddr
|
||||||
|
LD A,E
|
||||||
|
JP CPRINTZ
|
||||||
|
;
|
||||||
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
INCLUDE 'IM2_INT.asm'
|
||||||
|
//////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
POSTMSG: CALL FindStringAddr
|
||||||
|
JP PRINTZ
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------[]
|
;----------------------------------------------------------------------[]
|
||||||
;!TODO ᤥ« âì ¢ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ ਠâë:
|
;!TODO ᤥ« âì ¢ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ ਠâë:
|
||||||
;[x] 0 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 ª ª ¢ 3.04
|
;[x] 0 - <20>¥ £à㧨âì <20>‡“ ᯥªâà㬠, ¨¨â¨âì áâà ¨æã #41 ª ª ¢ 3.04
|
||||||
@ -1870,12 +1867,13 @@ STACK EQU #C000
|
|||||||
INCLUDE 'src/bios/logo/Set_Pictures.asm'
|
INCLUDE 'src/bios/logo/Set_Pictures.asm'
|
||||||
DISPLAY '-----[Set_Pictures Prebuild done ]-----'
|
DISPLAY '-----[Set_Pictures Prebuild done ]-----'
|
||||||
ELSE
|
ELSE
|
||||||
DISPLAY '------------------[Main.asm]------------------'
|
MAIN_END_CODE_ADDRESS EQU $-1
|
||||||
DISPLAY 'End code address: ',/A,$-1
|
; DISPLAY ' -------------------[Main.asm]-------------------'
|
||||||
DISPLAY 'Code size: ',/A,$-COMPILE_ADDR.MAIN
|
; DISPLAY 'End code address: ',/A,$-1
|
||||||
DISPLAY 'End buffers address: ',/A,memBUFFER.End-1
|
; DISPLAY 'Code size: ',/A,$-COMPILE_ADDR.MAIN
|
||||||
DISPLAY 'Free memory: ',/A,#C000-(memBUFFER.End-1)-STACK.Size
|
; DISPLAY 'End buffers address: ',/A,memBUFFER.End-1
|
||||||
DISPLAY 'Unused bytes before INT_POINTER: ',/A,INT_POINTER-before_intPointer
|
; DISPLAY 'Free memory: ',/A,#C000-(memBUFFER.End-1)-STACK.Size
|
||||||
|
; DISPLAY 'Unused bytes before INT_POINTER: ',/A,INT_POINTER-before_intPointer
|
||||||
ENDIF
|
ENDIF
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
@ -25,7 +25,7 @@ BIOS_ver_hex EQU EXP_ID.VER*256+EXP_ID.MOD
|
|||||||
;-[Version of disk subsystem "VER.MOD"]-
|
;-[Version of disk subsystem "VER.MOD"]-
|
||||||
ROM_ID:
|
ROM_ID:
|
||||||
.VER EQU 2 ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥ïâì âãâ!
|
.VER EQU 2 ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥ïâì âãâ!
|
||||||
.MOD EQU 55 ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥ïâì âãâ!
|
.MOD EQU 56 ; <EFBFBD>®¬¥à ¢¥àᨨ ¬¥ïâì âãâ!
|
||||||
Disk_subsystem_ver_hex EQU ROM_ID.VER*256+ROM_ID.MOD
|
Disk_subsystem_ver_hex EQU ROM_ID.VER*256+ROM_ID.MOD
|
||||||
|
|
||||||
DEFINE Disk_subsystem_ver_txt '0'+ROM_ID.VER, '.', '0'+ROM_ID.MOD/10, '0'+ROM_ID.MOD-(ROM_ID.MOD/10)*10
|
DEFINE Disk_subsystem_ver_txt '0'+ROM_ID.VER, '.', '0'+ROM_ID.MOD/10, '0'+ROM_ID.MOD-(ROM_ID.MOD/10)*10
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user