LP_PR_LINE_DIR готова

This commit is contained in:
Tolik 2025-03-28 03:25:47 +10:00
parent f8f75dc091
commit 9430a99f2b
9 changed files with 554 additions and 416 deletions

@ -1 +1 @@
Subproject commit 9143dcb7f8fd9cd3ae0bc179b94fced5efd8667f
Subproject commit a9f5915a3275f5ffbafa0994bb97c5846aab826c

View File

@ -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
;=======================================
@ -1304,48 +1319,39 @@ RESTARTS_PROG: ; !TODO LDConf
;-----------------------------------------------------------------------;
;----------------------------[Setup Starter]----------------------------;
MODULE Setup_Starter
; ¯à®£à ¬¬ , à §¬¥é ¥¬ ï ¯®  ¤à¥áã 0C000h
; ¤«ï § ¯ã᪠ 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
MODULE 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
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'
; ¢ 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)
RRA ; CF=0 ª« ¢¨è  ­ ¦ â 
;----------------------[]
DI
POP HL ;  ¤à¥á ¢®§¢à â  ¢ EXP ¨§ SETUP
; LD SP,#8000 ;!HARDCODE
; PUSH HL
; PUSH AF
JP SETUP_MAIN
ENT
OUT (C),H
DI
POP HL ;  ¤à¥á ¢®§¢à â  ¢ EXP ¨§ SETUP
JP SETUP_MAIN
ENT
Size EQU $-Setup_Starter.Start
ENDMODULE
ENDMODULE
;-----------------------------------------------------------------------;
;-----------------------------------------------------------------------;
;>$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$< >$<;
@ -1490,29 +1496,37 @@ kbd_loop2:
AND A
RET
;----------------------------------------------------------------------;
;
;----------------------------------------------------------------------;
; DE - ç áâ®â 
; HL - ¯à®¤®«¦¨â¥«ì­®áâì
BEEP: LD A,#10
CALL .beep_loop
;
;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
;----------------------------------------------------------------------;
;#######################################################################;
;#######################################################################;
;-----------------------------------------------------------------------;
; 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
;-----------------------------------------------------------------------;
;#######################################################################;
;

View File

@ -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,15 +467,25 @@ 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 ¨á¯®«ì§®¢ âì ¯¥à¥¬¥­­ë¥ ®ª­ 
PUSH DE
.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
EXX
@ -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
; ­¨£¤¥ ­¥ ¡ë«® ®¯¨á ­®
CALL LP_SIZE
; DE - à §¬¥àë ®ª­ 
;
XOR A ;!TODO ­®¬¥à ®ª­ 
RET
;
@ -1278,12 +1221,14 @@ LP_SCROLL_UP: DEC E
CALL LP_OPEN_PG
;
LD B,E
LD E,0 ; ¢áî áâப㠮ª­  áªà®««¨¬
LD E,0 ; ¢áî áâப㠮ª­  áªà®««¨¬
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
; ®â«¨ç¨¥ ®â 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,72 +1500,62 @@ 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
;
LD A,C
ADD A,B
.COPY_loop:
DEC A
OUT (PORT_Y),A
LD E,(HL)
INC L
LD D,(HL)
DEC L
PUSH DE
DJNZ .COPY_loop
;
INC HL
INC HL
INC HL
INC HL
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
LD A,C
ADD A,B
.COPY_loop: DEC A
OUT (PORT_Y),A
LD E,(HL)
INC L
LD D,(HL)
DEC L
PUSH DE
DJNZ .COPY_loop
;
INC HL
INC HL
INC HL
INC HL
EXX
DEC H
JR NZ,.COPY_loop2
;
;
LD A,SYS_PAGE
OUT (SLOT3),A
LD SP,(SYS_PAGE.SYS_WORK1)
;
;
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: ; ...
; ...
;>------------------------------------------------[BELL]
.BELL: EXX
PUSH HL
PUSH BC
;
LD DE,1200
LD HL,4
CALL BEEP
;
POP BC
POP HL
EXX
JR .loop
;!TODO ­¥¤®¤¥« ­ 
.BACK: LD A,SYS_PAGE
OUT (SLOT3),A
;
LD A,(WIN_ID_0.H_BEG)
;-------------------------------------------------[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
; HL -  ¤à¥á á ¢ë¢®¤¨¬®© áâப®©
; B - à §¤¥«¨â¥«ì
; A - mode
; A -  âਡãâë ¢ë¢®¤¨¬®£® ᨬ¢®«  ¥á«¨ CF'
; CF - XY-mode
; DE - ¬¥á⮠ᨬ¢®«  ¢ ®ª­¥, ¥á«¨ CF=1
; HL -  ¤à¥á á ¢ë¢®¤¨¬®© áâப®©
; B - à §¤¥«¨â¥«ì
; 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,80 +1720,192 @@ 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
;
EX AF,AF'
ADD A,A ; ०¨¬ 40
EX AF,AF'
.LLL: EX AF,AF'
;
.loop_tab: LD (HL),' '
INC D
DEC B
JR Z,.end_Line
DEC C
JR NZ,.loop_tab
JR .next_full
;
.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]
;
;-------[Line Feed]
.VertTab: ;
.LineFeed: LD A,SYS_PAGE
OUT (SLOT3),A
JP .loop
;
.LineFeed_go: LD A,4 ;!HARDCODE ¤«¨­  ®¤­®£® ®¯¨á â¥«ï ª¢ ¤à â¨ª 
;-------------------------------------------------[TAB]
;>------------------------------------------------[Line Feed]
.VertTab: ;
.LineFeed: LD A,4 ;!HARDCODE ¤«¨­  ®¤­®£® ®¯¨á â¥«ï ª¢ ¤à â¨ª 
ADD L
LD L,A
;
LD A,(WIN_ID_0.V_END)
CP L
CALL C,LP_NEXT_HL_DIR.end_line
JP .loop
;-------[Line Feed end]
;
.CLS: ; ...
;!TODO CLS
JP .loop
;
.CR: LD A,SYS_PAGE
;-------------------------------------------------[Line Feed]
;>------------------------------------------------[Form feed]
.CLS: PUSH BC ; C' - attr flag
EXX
PUSH BC
PUSH HL
PUSH DE
;
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
;-------------------------------------------------[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
;
;LD A,#50
;OUT (SLOT3),A
JP .loop
;------------------------------------------------------------------[#E0]
.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
; ;
; 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)

View File

@ -1025,83 +1025,69 @@ 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
; DE - ¡ãä¥à
; HL -  ¤à¥á ¢ ROM
; B - ç¨á«® ᥪâ®à®¢
; A - ROM-Page
.loopRead:
PUSH HL ; ®âªã¤ 
; DE - ¡ãä¥à
; HL -  ¤à¥á ¢ ROM
; B - ç¨á«® ᥪâ®à®¢
; A - ROM-Page
.loopRead: PUSH HL ; ®âªã¤ 
PUSH DE ; ªã¤ 
LD HL,-.stackDepth-.readProcedure.size ; memory stack use!
@ -1115,10 +1101,9 @@ ROM_DISK:
LDIR ; ¯à®£à ¬¬  ­  á⥪¥
LD BC,#100 ; ¤«¨­  ᥪâ®à 
RET ; ¨á¯®«­¨âì ¯à®£à ¬¬ã .readProcedure, ­  á⥪¥  ¤à¥á  ¡ãä¥à  ¨ ROM
; DE - next address
; HL - ROM address
.readNext:
POP BC ; ç¨á«® ᥪâ®à®¢
; DE - next address
; HL - ROM address
.readNext: POP BC ; ç¨á«® ᥪâ®à®¢
INC C ; áç¥â稪 áç¨â ­­ëå ᥪâ®à®¢
DEC B ; ᥪâ®à  ª®­ç¨«¨áì?
@ -1141,20 +1126,19 @@ ROM_DISK:
JP .loop ; ­ ç âì ¢á¥ á­®¢ !
; ç⥭¨¥ § ª®­ç¥­®
.normExit:
POP HL ; ᥪâ®à, ®âªã¤  ¢¥«®áì ç⥭¨¥
.normExit: POP HL ; ᥪâ®à, ®âªã¤  ¢¥«®áì ç⥭¨¥
ADD HL,BC ; ¯® ¢®§¢à âã: HL - á«¥¤. ¤à¥á
EX DE,HL ; DE - á«¥¤.ᥪâ®à
AND A
RET
; ®è¨¡ª 
.errorExit: ; !TODO ᤥ« âì, ç⮡ ­  ¢ë室¥ ¯®ª §ë¢ «®áì ª®«¨ç¥á⢮ ¯à®ç¨â ­­ëå ᥪâ®à®¢
.errorExit: ; !TODO ᤥ« âì, ç⮡ ­  ¢ë室¥ ¯®ª §ë¢ «®áì ª®«¨ç¥á⢮ ¯à®ç¨â ­­ëå ᥪâ®à®¢
POP BC
POP DE
SCF
RET
; ¯à®æ¥¤ãà , ¯¥à¥­®á¨¬ ï ­  á⥪ ¤«ï ç⥭¨ï ¨§ ROM-Disk
; ®áâ®à®¦­¥¥ á PUSH, ¥á«¨ ­ ¤® ¬­®£®, ⮠㢥«¨ç¨¢ © .stackDepth
; ®áâ®à®¦­¥¥ á PUSH, ¥á«¨ ­ ¤® ¬­®£®, ⮠㢥«¨ç¨âì .stackDepth
.readProcedure:
POP DE ; ªã¤ 
POP HL ; ®âªã¤ 

View File

@ -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:

View File

@ -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
;

View File

@ -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

View File

@ -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,47 +1645,45 @@ SETLAND:
LDIR
RET
;
; print boot drive number
PRINT_CHANEL: AND #0F
LD C,A
;
LD A,msgStrings.parPriIdeMA
JR Z,.print_chanel
;
LD A,msgStrings.parPriIdeSl
DEC C
JR Z,.print_chanel
;
LD A,msgStrings.parSecIdeMA
DEC C
JR Z,.print_chanel
;
LD A,msgStrings.parSecIdeSl
.print_chanel: CALL FindStringAddr
;CALL LP_GET_PLACE
;LD A,ScreenPOS.SUBNAME.POS
;SUB E
;LD B,A
LD B,0
LD D,#FF
JP LP_PRINT_LINE6
;
POSTMSC: CALL FindStringAddr
LD A,E
JP CPRINTZ
;
//////////////////////////////////////////////////////////////////////
INCLUDE 'IM2_INT.asm'
//////////////////////////////////////////////////////////////////////
POSTMSG:
CALL FindStringAddr
JP PRINTZ
POSTMSG: CALL FindStringAddr
JP PRINTZ
POSTMSC:
CALL FindStringAddr
LD A,E
JP CPRINTZ
;
; print boot drive number
PRINT_CHANEL:
AND #0F
LD C,A
;
LD A,msgStrings.parPriIdeMA
JR Z,.print_chanel
;
LD A,msgStrings.parPriIdeSl
DEC C
JR Z,.print_chanel
;
LD A,msgStrings.parSecIdeMA
DEC C
JR Z,.print_chanel
;
LD A,msgStrings.parSecIdeSl
.print_chanel:
CALL FindStringAddr
;CALL LP_GET_PLACE
;LD A,ScreenPOS.SUBNAME.POS
;SUB E
;LD B,A
LD B,0
LD D,#FF
JP LP_PRINT_LINE6
;
;----------------------------------------------------------------------[]
;!TODO ᤥ« âì ¢ë¡®à ¢ Setup, çâ® £à㧨âì ¢ v<>‡“ ¯à¨ áâ àâ¥. ‚ à¨ ­âë:
@ -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
;

View File

@ -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