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