исправлен баг порчи шрифтов после использования графического окна в старой (спектрумовской) адресации в экране 1

This commit is contained in:
Tolik 2025-03-14 01:19:42 +10:00
parent 78c229e75a
commit 82638cabee
4 changed files with 30 additions and 23 deletions

View File

@ -36,14 +36,14 @@ SETVMOD: CP %1000'0000
; “áâ ­®¢ª  £à ä. ०¨¬®¢
.GRAPH: CALL SAVETXT
AND #7F
JR Z,.G320_16 ; !TODO ? - ¯®ª  ®âà ¡ â뢠¥â ª ª ®è¨¡ª 
JR Z,.G320_16c ; !TODO § ¬¥­¨âì ­  áãé¥áâ¢ãî騩 ०¨¬
DEC A
JR Z,.G320_56
JR Z,.G320_256c
DEC A
JR Z,.G640_16
JR Z,.G640_16c
;DEC A
;JP Z,.G640_56 ; !TODO ? - ¯®ª  ®âà ¡ â뢠¥â ª ª ®è¨¡ª 
.G320_16: LD A,DSS_Error.sys.INVALID_VIDEO_MODE
;JP Z,.G640_256c ; !TODO § ¬¥­¨âì ­  áãé¥áâ¢ãî騩 ०¨¬
.G320_16c: LD A,DSS_Error.sys.INVALID_VIDEO_MODE
SCF
RET
;
@ -71,7 +71,7 @@ SETVMOD: CP %1000'0000
XOR A
RET
;
.G320_56: PUSH BC
.G320_256c: PUSH BC
LD HL,TAB_320x256_0
LD E,#11
CALL SETMODE
@ -79,7 +79,7 @@ SETVMOD: CP %1000'0000
LD E,#00
JP .SETMODE_END
;
.G640_16: PUSH BC
.G640_16c: PUSH BC
LD HL,TAB_640x256_0
LD E,#11
CALL SETMODE
@ -96,10 +96,10 @@ VMODE: DB #03
;
;02h - TEXT 40 x 32 (16 colors)
;03h - TEXT 80 x 32 (16 colors)
;80h - GRAF 320 x 256 (16 colors)
;80h - GRAF 320 x 256 (16 colors) ;!TODO § ­ïâì ¤à㣨¬
;81h - GRAF 320 x 256 (256 colors)
;82h - GRAF 640 x 256 (16 colors)
;83h - GRAF 640 x 256 (256 colors) UNUSED
;83h - GRAF 640 x 256 (256 colors) ;!TODO § ­ïâì ¤à㣨¬
;-----------------------------------------------------------------------
SETMODE: PUSH DE
LD DE,SYS_PAGE.SHARED_BUFFER_32b ; £àï§­ë© å ª. ª¨¤ ¥â ¤ ­­ë¥ ¢ ¡ãä¥à á«ã¦¥¡­®© áâà ­¨æë ¡¨®á .
@ -140,20 +140,25 @@ SETMODE: PUSH DE
;+7 Y ¯®«®¦. ¢ ¯®«¥ £à ä¨ª¨ (¢ §­ ª®¬¥áâ å)
ScreenDescriptorTable EQU $
; 80x32. ⥪á⮢®¥, §­ ª®¬¥áâ® 16x8, #0B - ­®¬¥à §­ ª®£¥­.
TAB_80x32 DB #28,#20,#00,#00,#1B,#00,#00,#00 ;1
TAB_80x32 DB 40,32,0,0,%0001'1011,0,0,0 ;1
; 40x32. ⥪á⮢®¥, §­ ª®¬¥áâ® 8x8, #0B - ­®¬¥à §­ ª®£¥­.
TAB_40x32 DB #28,#20,#00,#00,#3B,#00,#00,#00 ;2
TAB_40x32 DB 40,32,0,0,%0011'1011,0,0,0 ;2
; 640x256. £à ä¨ç¥áª®¥, 0-© íªà ­
TAB_640x256_0 DB #28,#20,#00,#00,#00,#00,#00,#00 ;3
TAB_640x256_0 DB 40,32,0,0,%0000'0000,0,0,0 ;3
; 320x256. £à ä¨ç¥áª®¥, 0-© íªà ­
TAB_320x256_0 DB #28,#20,#00,#00,#20,#00,#00,#00 ;4
TAB_320x256_0 DB 40,32,0,0,%0010'0000,0,0,0 ;4
; 640x256. £à ä¨ç¥áª®¥, 1-© íªà ­
TAB_640x256_1 DB #28,#20,#00,#00,#40,#00,#28,#00 ;5
TAB_640x256_1 DB 40,32,0,0,%0100'0000,0,40,0 ;5
; 320x256. £à ä¨ç¥áª®¥, 1-© íªà ­
TAB_320x256_1 DB #28,#20,#00,#00,#60,#00,#28,#00 ;6
TAB_320x256_1 DB 40,32,0,0,%0110'0000,0,40,0 ;6
ScreenDescriptorTable.Size EQU ($ - ScreenDescriptorTable)/6
;.......................................................................
;
/*
PIC_320X256_1:
DB 40,32,0,0,32,0,8,0
DB 0, 0,0,0, 0,0,0,0
*/
;-----------------------------------------------------------------------
; ‘®åà ­¨âì íªà ­ ⥪áâ. ०¨¬ .

View File

@ -184,11 +184,13 @@ ECHOKEY: ;R01
ELSE ;------------------------------;
delay_curs: EQU 11 ; ç áâ®â  ¬¨£ ­¨ï ªãàá®à 
INS_CUR_ZG: EQU #19
CURSOR_ZG: EQU #1A
NORM_ZG: EQU #1B
;------; !FIXIT ¡à âì §­ ç¥­¨ï ¤«ï §­ ª®£¥­¥à â®à  ¨§ ¡¨®á ?
delay_curs: EQU 11 ; ç áâ®â  ¬¨£ ­¨ï ªãàá®à 
INS_CUR_ZG: EQU #9B ; [x] 14/03/2025 ¡ë« ¡ £ ¤«ï £à ä¨ç¥áª¨å íªà ­®¢ ०¨¬  ᯥªâà㬠
CURSOR_ZG: EQU #5B ; [x] 14/03/2025 ¡ë« ¡ £ ¤«ï £à ä¨ç¥áª¨å íªà ­®¢ ०¨¬  ᯥªâà㬠
NORM_ZG: EQU #1B
;------;
ECHOKEY: CALL Cursor_On ; ¢ª«. ªãàá®à, ãáâ ­®¢¨âì 䮪ãá ­  "Input Line"
EI
@ -314,8 +316,8 @@ SETUP_CURSORS:
ldir
ld de,.buffer ; §­ ª®£¥­.
ld c,BIOS.WIN_SET_ZG ; ãáâ. §­ ª®£¥­.
rst ToBIOS
ret
jp ToBIOS
;ret
;
ENDIF ;------------------------------;

View File

@ -1 +1 @@
26
27

@ -1 +1 @@
Subproject commit d22e7b9aae7efe3d24bdf767e057abc51e37ea2d
Subproject commit 7c03abc82040df54cec2bc6701b0f602fa08fd26