LP_PR_LINE_DIR: осталось BELL и Form feed

This commit is contained in:
Tolik 2025-03-26 01:44:05 +10:00
parent ba3112f006
commit f8f75dc091
4 changed files with 118 additions and 152 deletions

@ -1 +1 @@
Subproject commit 7c03abc82040df54cec2bc6701b0f602fa08fd26 Subproject commit 9143dcb7f8fd9cd3ae0bc179b94fced5efd8667f

View File

@ -141,7 +141,7 @@ TAB_FNS:
DB low EMM.MergeMemBlocks ; #9E ᫨ﭨ¥ ¤¢ãå ¡«®ª®¢ DB low EMM.MergeMemBlocks ; #9E ᫨ﭨ¥ ¤¢ãå ¡«®ª®¢
DB low EMM.FullInit ; #9F ¨­¨æ¨ «¨§ æ¨ï ¢á¥© ¯ ¬ïâ¨, á¨á⥬­ëå ¯¥à¥¬¥­­ëå DB low EMM.FullInit ; #9F ¨­¨æ¨ «¨§ æ¨ï ¢á¥© ¯ ¬ïâ¨, á¨á⥬­ëå ¯¥à¥¬¥­­ëå
; Ax ; Ax
DB low PIC_FN0 ; #A0 ŽŠ<E28099>ˆ… ŽŠ<C5BD> DB low PIC_FN0_OpenWin ; #A0 ŽŠ<E28099>ˆ… ŽŠ<C5BD>
DB low PIC_FN1 ; #A1 ‚›‚…‘’ˆ ’Ž—Š“ DB low PIC_FN1 ; #A1 ‚›‚…‘’ˆ ’Ž—Š“
DB low PIC_FN2 ; #A2 ‚›‚Ž„ ˆ<E280B9>ˆˆ COPY DB low PIC_FN2 ; #A2 ‚›‚Ž„ ˆ<E280B9>ˆˆ COPY
DB low PIC_FN3 ; #A3 ‚›‚Ž„ ˆ<E280B9>ˆˆ FILL DB low PIC_FN3 ; #A3 ‚›‚Ž„ ˆ<E280B9>ˆˆ FILL
@ -333,7 +333,7 @@ TAB_FNS:
DB high EMM.MergeMemBlocks DB high EMM.MergeMemBlocks
DB high EMM.FullInit DB high EMM.FullInit
; Ax ; Ax
DB high PIC_FN0 DB high PIC_FN0_OpenWin
DB high PIC_FN1 DB high PIC_FN1
DB high PIC_FN2 DB high PIC_FN2
DB high PIC_FN3 DB high PIC_FN3

View File

@ -70,18 +70,20 @@
.LLL: EX AF,AF' .LLL: EX AF,AF'
ENDM ; ENDM ;
MACRO CORRECT_SCR_40_BACK
EX AF,AF'
JR C,.LLL
DEC D ; ०¨¬ 40
.LLL: EX AF,AF'
ENDM ;
MACRO DJNZ_NEXT_HL MACRO DJNZ_NEXT_HL
DJNZ .LLL DJNZ .LLL
CALL LP_NEXT_HL CALL LP_NEXT_HL
.LLL: ; .LLL: ;
ENDM ENDM
MACRO DJNZ_NEXT_HL_ADDR addr
DJNZ addr
CALL LP_NEXT_HL_DIR
ENDM
;********************************* ;*********************************
;* LOW LEVEL PRINTER * ;* LOW LEVEL PRINTER *
@ -208,8 +210,6 @@ LP_PRINT_ATR: CALL LP_BEG_P
DJNZ_NEXT_HL DJNZ_NEXT_HL
EXX EXX
DJNZ .loop DJNZ .loop
;LD A,SYS_PAGE
;OUT (SLOT3),A
JP LP_END_P JP LP_END_P
;------------------------------------------------------------------[#83] ;------------------------------------------------------------------[#83]
; ;
@ -241,8 +241,6 @@ LP_PRINT_LINE: CALL LP_BEG_P
DJNZ_NEXT_HL DJNZ_NEXT_HL
EXX EXX
DJNZ .loop DJNZ .loop
;LD A,SYS_PAGE
;OUT (SLOT3),A
JP LP_END_P JP LP_END_P
;------------------------------------------------------------------[#85] ;------------------------------------------------------------------[#85]
; ;
@ -287,8 +285,8 @@ LP_PRINT_LINE3: CALL LP_BEG_P
INC HL INC HL
CP D CP D
JR NZ,.NoEnd JR NZ,.NoEnd
;
DEC HL DEC HL
;LD A,' ' ;!TEST
EXX EXX
LD C,' ' LD C,' '
JP LP_PRINT_ALL.cont JP LP_PRINT_ALL.cont
@ -323,8 +321,8 @@ LP_PRINT_LINE4: CALL LP_BEG_P
INC HL INC HL
CP D CP D
JR NZ,.NoEndSymbol JR NZ,.NoEndSymbol
;
DEC HL DEC HL
;LD A,' ' ;!TEST
EXX EXX
LD C,' ' LD C,' '
JP LP_PRINT_SYM.cont JP LP_PRINT_SYM.cont
@ -345,10 +343,12 @@ LP_PRINT_LINE4: CALL LP_BEG_P
LP_PRINT_LINE5: CALL LP_BEG_P LP_PRINT_LINE5: CALL LP_BEG_P
LD A,#50 LD A,#50
OUT (SLOT3),A OUT (SLOT3),A
EXX
LD C,PORT_Y
EXX
; ;
.loop: EXX .loop: EXX
LD A,D OUT (C),D
OUT (PORT_Y),A
EXX EXX
LD A,(HL) LD A,(HL)
INC HL INC HL
@ -398,10 +398,12 @@ LP_END_P: LD A,SYS_PAGE
LP_PRINT_LINE6: CALL LP_BEG_P LP_PRINT_LINE6: CALL LP_BEG_P
LD A,#50 LD A,#50
OUT (SLOT3),A OUT (SLOT3),A
EXX
LD C,PORT_Y
EXX
; ;
.loop: EXX .loop: EXX
LD A,D OUT (C),D
OUT (PORT_Y),A
EXX EXX
LD A,(HL) LD A,(HL)
INC HL INC HL
@ -438,15 +440,6 @@ LP_GET_PLACE: CALL LP_BEG_P
NEG NEG
EXX EXX
ADD A,D ADD A,D
;
EX AF,AF'
JR C,.LLL
EX AF,AF'
AND A
RRA ; ०¨¬ txt 40
EX AF,AF'
.LLL: EX AF,AF'
;
EXX EXX
LD E,A LD E,A
LD A,(WIN_ID_0.V_BEG) LD A,(WIN_ID_0.V_BEG)
@ -459,6 +452,12 @@ LP_GET_PLACE: CALL LP_BEG_P
RRCA RRCA
AND %0011'1111 AND %0011'1111
LD D,A LD D,A
; ०¨¬ txt 40
EX AF,AF'
JR C,.no_txt40
SRL E
AND A
.no_txt40: EX AF,AF'
JP LP_END_P.short JP LP_END_P.short
;------------------------------------------------------------------[#8E] ;------------------------------------------------------------------[#8E]
; ;
@ -471,16 +470,15 @@ LP_CLS_WIN2: LD C,A
;--------------------------------------------------------[#8D] ;--------------------------------------------------------[#8D]
;--------------------------------------------------------[#89] ;--------------------------------------------------------[#89]
LP_CLS_WIN: LD C,' ' LP_CLS_WIN: LD C,' '
;JR CLS_WIN ;---------------- -----------------------------[#89]
;----------------- ---------------------------[#89]
CLS_WIN: CALL LP_BEG_P CLS_WIN: CALL LP_BEG_P
LD (SYS_PAGE.SYS_WORK1),BC ; á®åà ­¨âì æ¢¥â LD (SYS_PAGE.SYS_WORK1),BC ; á®åà ­¨âì æ¢¥â ; !TODO ¨á¯®«ì§®¢ âì ¯¥à¥¬¥­­ë¥ ®ª­ 
PUSH DE PUSH DE
; ;
.loop1: CALL LP_SET_CUR .loop1: CALL LP_SET_CUR
PUSH DE PUSH DE
EXX EXX
LD BC,(SYS_PAGE.SYS_WORK1) LD BC,(SYS_PAGE.SYS_WORK1) ; !TODO ¨á¯®«ì§®¢ âì ¯¥à¥¬¥­­ë¥ ®ª­ 
EXX EXX
LD B,L LD B,L
LD A,#50 LD A,#50
@ -611,10 +609,11 @@ LP_SIZE: CALL LP_OPEN_PG
AND %0010'0000 AND %0010'0000
CALL LP_CLOSE_PG CALL LP_CLOSE_PG
RET NZ RET NZ
; ; txt 40
LD A,E ; LD A,E
ADD A,A ; ADD A,A
LD E,A ; LD E,A
SLA E
RET RET
; ;
@ -641,7 +640,7 @@ LP_SET_CUR: ; LP_AT_D:
ADD A,L ADD A,L
LD L,A LD L,A
INC L INC L
LD H,#C3 LD H,#C3 ;!HARDCODE ­ ç «® ®¯¨á â¥«¥© ¢ SLOT3
EXX EXX
;RET ;RET
; ;
@ -664,15 +663,8 @@ LP_SET_CUR: ; LP_AT_D:
; ;
EX AF,AF' EX AF,AF'
JR C,.LLL JR C,.LLL
SLA D ; ०¨¬ txt 40 SLA D ; ०¨¬ txt 40. ­¥ ¤®«¦­® áâ ¢¨âì CF
.LLL: EX AF,AF' .LLL: EX AF,AF'
;LD A,(WIN_ID_0.USER.MODE)
;AND %0010'0000
;JR Z,.skip_Dx2
;LD A,D
;ADD A,A
;LD D,A
;
.skip_Dx2: LD A,(WIN_ID_0.H_BEG) .skip_Dx2: LD A,(WIN_ID_0.H_BEG)
ADD A,D ADD A,D
LD D,A LD D,A
@ -680,7 +672,6 @@ LP_SET_CUR: ; LP_AT_D:
RET RET
;************************************************************* ;*************************************************************
LP_NEXT_HL_DIR: LD A,SYS_PAGE LP_NEXT_HL_DIR: LD A,SYS_PAGE
OUT (SLOT3),A OUT (SLOT3),A
LD A,4 ;!HARDCODE ¤«¨­  ®¤­®£® ®¯¨á â¥«ï ª¢ ¤à â¨ª  LD A,4 ;!HARDCODE ¤«¨­  ®¤­®£® ®¯¨á â¥«ï ª¢ ¤à â¨ª 
@ -700,12 +691,14 @@ LP_NEXT_HL_DIR: LD A,SYS_PAGE
SUB 4 ;!HARDCODE ¤«¨­  ®¤­®£® ®¯¨á â¥«ï ª¢ ¤à â¨ª  SUB 4 ;!HARDCODE ¤«¨­  ®¤­®£® ®¯¨á â¥«ï ª¢ ¤à â¨ª 
LD L,A LD L,A
PUSH HL PUSH HL
DEC HL
PUSH BC PUSH BC
PUSH DE PUSH DE
EXX EXX
PUSH BC PUSH BC
PUSH DE
PUSH HL PUSH HL
LD A,(WIN_ID_0.V_BEG)
LD D,A
LD A,(WIN_ID_0.USER.SIZE_V) LD A,(WIN_ID_0.USER.SIZE_V)
LD B,A LD B,A
LD E,0 ; ¢áî áâப㠮ª­  áªà®««¨¬ LD E,0 ; ¢áî áâப㠮ª­  áªà®««¨¬
@ -713,6 +706,8 @@ LP_NEXT_HL_DIR: LD A,SYS_PAGE
EXX EXX
LD C," " LD C," "
; ;
LD A,SYS_PAGE
OUT (SLOT3),A
LD HL,(WIN_ID_0.V_END) LD HL,(WIN_ID_0.V_END)
DEC L DEC L
DEC L DEC L
@ -728,7 +723,6 @@ LP_NEXT_HL_DIR: LD A,SYS_PAGE
EXX EXX
LD A,(WIN_ID_0.SIZE_REL) LD A,(WIN_ID_0.SIZE_REL)
LD B,A LD B,A
;
.loop_cl_line: EXX .loop_cl_line: EXX
LD A,D LD A,D
OUT (PORT_Y),A OUT (PORT_Y),A
@ -739,7 +733,6 @@ LP_NEXT_HL_DIR: LD A,SYS_PAGE
DJNZ .loop_cl_line DJNZ .loop_cl_line
; ;
POP HL POP HL
POP DE
POP BC POP BC
EXX EXX
POP DE POP DE
@ -771,7 +764,7 @@ LP_NEXT_HL: LD A,SYS_PAGE
; ;
.end_line: LD HL,(WIN_ID_0.V_BEG) .end_line: LD HL,(WIN_ID_0.V_BEG)
INC L INC L
LD H,#C3 ;!HARDCODE LD H,#C3 ;!HARDCODE ­ ç «® ®¯¨á â¥«¥© ¢ SLOT3
JP .no_end_line JP .no_end_line
; !®¦¨¤ ¥âáï, çâ® ¯®àâïâáï ⮫쪮  «ìâ¥à­ â¨¢­ë¥ ॣ¨áâàë ¨ â¥, çâ® ª ª ¯ à ¬¥âàë ­  ¢å®¤¥ ; !®¦¨¤ ¥âáï, çâ® ¯®àâïâáï ⮫쪮  «ìâ¥à­ â¨¢­ë¥ ॣ¨áâàë ¨ â¥, çâ® ª ª ¯ à ¬¥âàë ­  ¢å®¤¥
@ -794,21 +787,21 @@ LP_INI_P: EX AF,AF'
CALL LP_OPEN_PG CALL LP_OPEN_PG
LD A,(WIN_ID_0.USER.MODE) LD A,(WIN_ID_0.USER.MODE)
CP #C0 CP #C0
JR NC,LP_INI_NO_ZG ; ®âªàë⨥ ¡®à¤¥à ... JR NC,.NO_ZG ; ®âªàë⨥ ¡®à¤¥à ...
LD A,(WIN_ID_0.USER.MODE_S) LD A,(WIN_ID_0.USER.MODE_S)
AND %0000'0001 AND %0000'0001
JR NZ,LP_INI_NO_ZG ; ®âªàë⨥ Spectrum-Screen JR NZ,.NO_ZG ; ®âªàë⨥ Spectrum-Screen
; ;
LD A,(WIN_ID_0.USER.MODE) LD A,(WIN_ID_0.USER.MODE)
BIT 4,A BIT 4,A
JR Z,LP_INI_NO_ZG ; ®âªàë⨥ £à ä¨ç¥áª®£® íªà ­  JR Z,.NO_ZG ; ®âªàë⨥ £à ä¨ç¥áª®£® íªà ­ 
LD DE,(SYS_PAGE.WIN_ZG) ; §­ ª®£¥­¥à â®à LD DE,(SYS_PAGE.WIN_ZG) ; §­ ª®£¥­¥à â®à
EXX EXX
EX AF,AF' EX AF,AF'
CALL WIN_SET_ZG.SET ;LP_SET_ZG1 CALL WIN_SET_ZG.SET ;LP_SET_ZG1 ;!TODO á⮨⠫¨ ª ¦¤ë© à § § ª¨¤ë¢ âì èà¨äâ?
EXX
EX AF,AF' EX AF,AF'
LP_INI_NO_ZG: LD A,(WIN_ID_0.H_BEG) EXX
.NO_ZG: LD A,(WIN_ID_0.H_BEG)
LD D,A LD D,A
LD A,(WIN_ID_0.V_BEG) LD A,(WIN_ID_0.V_BEG)
LD L,A LD L,A
@ -818,16 +811,12 @@ LP_INI_NO_ZG: LD A,(WIN_ID_0.H_BEG)
LD A,(WIN_ID_0.USER.MODE) LD A,(WIN_ID_0.USER.MODE)
BIT 5,A BIT 5,A
LD A,(WIN_ID_0.USER.SIZE_H) LD A,(WIN_ID_0.USER.SIZE_H)
JR NZ,LP_INI_40 JR NZ,.TXT_40
; TXT_80
ADD A,A ADD A,A
SCF SCF
LP_INI_40: LD B,A .TXT_40: LD B,A
LD (WIN_ID_0.SIZE_REL),A LD (WIN_ID_0.SIZE_REL),A
;LD DE,(SYS_PAGE.WIN_MODE_SC) ; ¬¥áâ® ¯® £®à¨§®­â «¨ ¨ áâà ­¨æ  ¬®¤ë
;LD HL,(SYS_PAGE.WIN_MODE_SH) ; ¬¥áâ® ¯® ¢¥à⨪ «¨ á  ¤à¥á®¬
;INC HL
;LD B,0
;CALL LP_TAB_H2
EX AF,AF' EX AF,AF'
EXX EXX
JP LP_END_P JP LP_END_P
@ -870,29 +859,29 @@ LP_SC_TAB: DW LP_SET_32 ; 0 - ᯥ
; !TODO ; !TODO
; LP_SET_MNU: ; LP_SET_MNU:
; LD IX,LP_SCR_MNU ; LD IX,LP_SCR_MNU
; JP LP_SET_MODE ; JP PIC_FN0_OpenWin
LP_SET_32: LD HL,#4104 LP_SET_32: LD HL,#4104
.X: LD IX,LP_SCR_32 .X: LD IX,LP_SCR_32
JP LP_SET_MODE JP PIC_FN0_OpenWin
LP_SET_64: LD HL,#4104 LP_SET_64: LD HL,#4104
.X: LD IX,LP_SCR_64 .X: LD IX,LP_SCR_64
JP LP_SET_MODE JP PIC_FN0_OpenWin
LP_SET_40: LD HL,#4000 LP_SET_40: LD HL,#4000
.X: LD IX,LP_SCR_40 .X: LD IX,LP_SCR_40
JP LP_SET_MODE JP PIC_FN0_OpenWin
LP_SET_80: LD HL,#4000 LP_SET_80: LD HL,#4000
.X: LD IX,LP_SCR_80 .X: LD IX,LP_SCR_80
JP LP_SET_MODE JP PIC_FN0_OpenWin
PIC_SET_S1: LD IX,PIC_320X256_1 PIC_SET_S1: LD IX,PIC_320X256_1
JP LP_SET_MODE JP PIC_FN0_OpenWin
PIC_SET_S2: LD IX,PIC_320X256_2 PIC_SET_S2: LD IX,PIC_320X256_2
JP LP_SET_MODE JP PIC_FN0_OpenWin
;------------------------------------------------------------------[#80] ;------------------------------------------------------------------[#80]
; ;
@ -934,8 +923,9 @@ WIN_OPEN: CALL .Prepare
; HL = X + Y*64 + #4000 + #1000*RGMOD. ¬¥áâ® ­  íªà ­¥ ¯® §­ ª®¬¥áâ ¬ ; HL = X + Y*64 + #4000 + #1000*RGMOD. ¬¥áâ® ­  íªà ­¥ ¯® §­ ª®¬¥áâ ¬
; IX - ®¯¨á â¥«ì ®ª­  ; IX - ®¯¨á â¥«ì ®ª­ 
; E - bit0: ­®¬¥à íªà ­  ; E - bit0: ­®¬¥à íªà ­ 
PIC_FN0: ;LP_SET_MODE:
LP_SET_MODE: ; 䨭⠤«ï ᮢ¬¥á⨬®á⨠ᮠáâ à묨 ¯à®£ ¬¨, £¤¥ ¯¥à¥¤ ¢ «¨áì ¤à㣨¥ ¯ à ¬¥âàë PIC_FN0_OpenWin:
; 䨭⠤«ï ᮢ¬¥á⨬®á⨠ᮠáâ à묨 ¯à®£ ¬¨, £¤¥ ¯¥à¥¤ ¢ «¨áì ¤à㣨¥ ¯ à ¬¥âàë
LD A,H LD A,H
AND %00001'0000 ; ¯¥à¥¬¥áâ¨âì ¡¨â 4 ¢ ॣ¨áâà E AND %00001'0000 ; ¯¥à¥¬¥áâ¨âì ¡¨â 4 ¢ ॣ¨áâà E
XOR E XOR E
@ -950,10 +940,10 @@ LP_SET_MODE: ; 䨭
LD A,H LD A,H
AND #3F AND #3F
LD H,A LD H,A
;
CALL WIN_OPEN.Prepare CALL WIN_OPEN.Prepare
LD (IX + Window_Variables.USER.PLACE_H),L LD (IX + Window_Variables.USER.PLACE_H),L
LD (IX + Window_Variables.USER.PLACE_V),H LD (IX + Window_Variables.USER.PLACE_V),H
;
WIN_OPEN_W1: LD A,L WIN_OPEN_W1: LD A,L
ADD A,A ADD A,A
INC A ; ¢ëç¨á«¥­¨¥ PORT_Y INC A ; ¢ëç¨á«¥­¨¥ PORT_Y
@ -1293,9 +1283,15 @@ LP_SCROLL_UP: DEC E
.EXIT: JP LP_CLOSE_PG .EXIT: JP LP_CLOSE_PG
; ;
; ;
.RUN: PUSH BC .RUN: CALL LP_SET_CUR ; ¢ëç¨á«¨âì ¯¥à¥¬¥­­ë¥ ¤«ï áâப¨
CALL LP_SET_CUR ; ¢ëç¨á«¨âì ¯¥à¥¬¥­­ë¥ ¤«ï áâப¨ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!TODO
POP BC ; ®â«¨ç¨¥ ®â LP_SCROLL_DN
LD A,(WIN_ID_0.V_END)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LD C,A
LD A,#50
OUT (SLOT3),A ; ®âªàëâì áâà ­¨æã ¤«ï ¯¥à¥­®á 
;
.loop2: EXX .loop2: EXX
PUSH HL PUSH HL
EXX EXX
@ -1309,7 +1305,7 @@ LP_SCROLL_UP: DEC E
ADD L ADD L
LD L,A LD L,A
; ;
LD A,(WIN_ID_0.V_END) LD A,C
CP L CP L
RET C ; ¥á«¨ ª®­¥æ, â® ¢ë室 RET C ; ¥á«¨ ª®­¥æ, â® ¢ë室
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@ -1324,8 +1320,6 @@ LP_SCROLL_UP: DEC E
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 ; ¯®«ãç¨âì ¯®àâ ­ ç «  áâப¨
EXX EXX
@ -1339,8 +1333,6 @@ LP_SCROLL_UP: DEC E
LDD LDD
JP PE,.loop1 JP PE,.loop1
; ;
LD A,SYS_PAGE
OUT (SLOT3),A
POP BC POP BC
DJNZ .loop2 DJNZ .loop2
RET RET
@ -1363,9 +1355,15 @@ LP_SCROLL_DN: DEC E ;!FIXIT
.EXIT: JP LP_CLOSE_PG .EXIT: JP LP_CLOSE_PG
; ;
; ;
.RUN: PUSH BC .RUN: CALL LP_SET_CUR
CALL LP_SET_CUR ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!TODO
POP BC ; ®â«¨ç¨¥ ®â LP_SCROLL_UD
LD A,(WIN_ID_0.V_BEG)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LD C,A
LD A,#50
OUT (SLOT3),A ; ®âªàëâì áâà ­¨æã ¤«ï ¯¥à¥­®á 
;
.loop2: EXX .loop2: EXX
PUSH HL PUSH HL
EXX EXX
@ -1374,13 +1372,12 @@ LP_SCROLL_DN: DEC E ;!FIXIT
LD E,L LD E,L
LD D,H LD D,H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!TODO ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;!TODO
; ¬®¦­® ᮢ¬¥áâ¨âì. ¯à¨§­ ª ­ ¯à ¢«¥­¨ï ¢ ॣ C
; ®â«¨ç¨¥ ®â LP_SCROLL_UD ; ®â«¨ç¨¥ ®â LP_SCROLL_UD
LD A,L LD A,L
SUB 4 SUB 4
LD L,A LD L,A
; ;
LD A,(WIN_ID_0.V_BEG) LD A,C
CP L ; .CONT: L >= A CP L ; .CONT: L >= A
JR Z,.CONT JR Z,.CONT
RET NC ; ¥á«¨ ª®­¥æ, â® ¢ë室 RET NC ; ¥á«¨ ª®­¥æ, â® ¢ë室
@ -1396,8 +1393,6 @@ LP_SCROLL_DN: DEC E ;!FIXIT
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 ; ¯®«ãç¨âì ¯®àâ ­ ç «  áâப¨
EXX EXX
@ -1411,8 +1406,6 @@ LP_SCROLL_DN: DEC E ;!FIXIT
LDD LDD
JP PE,.loop1 JP PE,.loop1
; ;
LD A,SYS_PAGE
OUT (SLOT3),A
POP BC POP BC
DJNZ .loop2 DJNZ .loop2
RET RET
@ -1653,24 +1646,27 @@ LP_PR_LINE_DIR:
; ;
LD A,(WIN_ID_0.H_BEG) LD A,(WIN_ID_0.H_BEG)
CP D CP D
JR Z,.next_full ;!FIXIT ¢®§¬®¦­®, çâ® ­¥ á JR Z,.loop
INC B INC B
DEC D DEC D
JR .next_full ;!FIXIT ¢®§¬®¦­®, çâ® ­¥ á CORRECT_SCR_40_BACK
JP .loop
; ;
.EXIT: POP IX .EXIT: POP IX
JP LP_END_P JP LP_END_P
;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;
; DE - ¬¥á⮠ᨬ¢®«  ¢ ®ª­¥ ; DE - ¬¥á⮠ᨬ¢®«  ¢ ®ª­¥, ¥á«¨ A != 0
; HL -  ¤à¥á á ¢ë¢®¤¨¬®© áâப®© ; HL -  ¤à¥á á ¢ë¢®¤¨¬®© áâப®©
; B - à §¤¥«¨â¥«ì ; B - à §¤¥«¨â¥«ì
; A - mode
;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;
.START: PUSH IX .START: PUSH IX
AND A ; check mode for DE
;
IN A,(SLOT3) IN A,(SLOT3)
LD C,A LD C,A
CALL LP_BEG_P CALL LP_BEG_P
; LD A,#50 CALL NZ,LP_SET_CUR ; mode for DE
; OUT (SLOT3),A
; ;
EXX EXX
.loop: LD A,D .loop: LD A,D
@ -1713,8 +1709,9 @@ LP_PR_LINE_DIR:
LD (HL),A LD (HL),A
INC D INC D
.next_full: CORRECT_SCR_40 .next_full: CORRECT_SCR_40
.next: DJNZ_NEXT_HL_ADDR .loop .next: DJNZ .loop
JR .loop CALL LP_NEXT_HL_DIR
JP .loop
;-------[TAB] ;!FIXIT § ¯®«­ï¥â ¯à®¡¥« ¬¨ ;-------[TAB] ;!FIXIT § ¯®«­ï¥â ¯à®¡¥« ¬¨
.TAB: LD A,SYS_PAGE .TAB: LD A,SYS_PAGE
OUT (SLOT3),A OUT (SLOT3),A
@ -1757,37 +1754,6 @@ LP_PR_LINE_DIR:
LD A,(WIN_ID_0.V_END) LD A,(WIN_ID_0.V_END)
CP L CP L
CALL C,LP_NEXT_HL_DIR.end_line CALL C,LP_NEXT_HL_DIR.end_line
;!TEST BIOS SCROLL
;-------------------------------------------------------------\
; LD A,L
; SUB 4 ;!HARDCODE ¤«¨­  ®¤­®£® ®¯¨á â¥«ï ª¢ ¤à â¨ª 
; LD L,A
; PUSH HL
; PUSH BC
; PUSH DE
; EXX
; PUSH BC
; PUSH DE
; PUSH HL
; ;EXX
; LD A,(WIN_ID_0.USER.SIZE_V)
; LD B,A
; CALL LP_SCROLL_UP.RUN
; ;EXX
; POP HL
; POP DE
; POP BC
; EXX
; POP DE
; POP BC
; POP HL
;-------------------------------------------------------------/
;LD HL,(WIN_ID_0.H_BEG - 1)
;LD L,A ; WIN_ID_0.V_END - ¢¥à­ãâìáï ­ ¢¥àå ¡¥§ áªà®«« !!!
;
;!TODO CALL clear_last_line_1F
; .SetPage_Loop: LD A,#50
; OUT (SLOT3),A
JP .loop JP .loop
;-------[Line Feed end] ;-------[Line Feed end]
; ;

View File

@ -340,7 +340,7 @@ SET_PAL_INIT:
; <20>¨á®¢ ­¨¥ «¨­¨¨. ; <20>¨á®¢ ­¨¥ «¨­¨¨.
; d… - ¢¥à⨪ «ì, HL - £®à¨§®­â «ì ; d… - ¢¥à⨪ «ì, HL - £®à¨§®­â «ì
; H' - ¢ëá®â , C'/DE',B' - add_parameters ; H' - ¢ëá®â , C'/DE',B' - add_parameters
; A - color ; A - color ;!FIXIT § ¬¥­¨âì áà §ã ­  D?
PIC_FN7: PIC_FN7:
LD D,A LD D,A
IN A,(SLOT1) IN A,(SLOT1)
@ -351,9 +351,9 @@ PIC_FN7:
OUT (SLOT1),A OUT (SLOT1),A
BIT 0,B BIT 0,B
LD BC,#40+#4000 LD BC,#40+#4000 ;!HARDCODE screen
JR Z,.no_2nd JR Z,.no_2nd
LD BC,#40+320+#4000 LD BC,#40+320+#4000 ;!HARDCODE screen
.no_2nd: .no_2nd:
ADD HL,BC ADD HL,BC
LD A,E LD A,E
@ -408,9 +408,9 @@ PIC_FN8:
OUT (SLOT1),A OUT (SLOT1),A
BIT 0,B BIT 0,B
LD BC,#40+#4000 LD BC,#40+#4000 ;!HARDCODE screen
JR Z,.no_2nd JR Z,.no_2nd
LD BC,#40+320+#4000 LD BC,#40+320+#4000 ;!HARDCODE screen
.no_2nd: .no_2nd:
ADD HL,BC ADD HL,BC
LD A,E LD A,E