Rev 801 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
| ?url?
; LAST UPDATE: 08.09.2022 savelij
X4DUMP EQU 0X0C
Y4DUMP EQU 0X05
EDIT_CMOS DI
LD A,%01001111
CALL CLEAR_TXTSCR
LD H,CMOS_BYTE_00
CALL READCMOS
AND M_TYPE_FONT
LD (TYPEFONT),A
LD DE,0
LD BC,0X5019
CALL RAMKA4TXTSCR
LD DE,0X2201
LD HL,TXT_EDITCMOS2
CALL PRTT_MSG
LD DE,0X1217
LD HL,TXT_EDITCMOS1
CALL PRTT_MSG
LD IX,0
CALL INVERS_CUR
EC02 CALL LOAD_CMOS
CALL PRINT_DUMP
CALL HELP_REG
CALL TXTMODE_ON
EC01 EI
HALT
LD H,0X0C
CALL READCMOS
BIT 4,A
CALL NZ,PRINT0STROKA
BIT 5,(IY+1)
JP Z,EC01
RES 5,(IY+1)
LD A,(0X5C08)
CP "l"
JR Z,EC02
CP "x"
JR Z,EC06
CP "s"
JR NZ,EC03
CALL SAVE_CMOS
JR EC01
EC03 CP 9
CALL Z,CUR_RIGHT
CP 8
CALL Z,CUR_LEFT
CP 0X0B
CALL Z,CUR_UP
CP 0X0A
CALL Z,CUR_DOWN
CP "0"
JR C,EC01
CP ":"
JR C,EC05
RES 5,A
EC04 CP "A"
JR C,EC01
CP "G"
JR NC,EC01
EC05 CALL INPUT_HALFBYTE
JR EC01
EC06 CALL TXTMODE_OFF
LD A,0X10
CALL SET_7FFD
JP RESTART
;
;D-X E-Y B-H C-V
RAMKA4TXTSCR DEC B
DEC B
DEC C
DEC C
PUSH DE
PUSH BC
LD A,"É"
CALL PRTSYMTXTMODE
R4TXTS1 LD A,"Í"
CALL PRTSYMTXTMODE
DJNZ R4TXTS1
LD A,"»"
CALL PRTSYMTXTMODE
DEC D
INC E
R4TXTS2 LD A,"º"
CALL PRTSYMTXTMODE
DEC D
INC E
DEC C
JR NZ,R4TXTS2
POP BC
POP DE
INC E
R4TXTS3 LD A,"º"
CALL PRTSYMTXTMODE
DEC D
INC E
DEC C
JR NZ,R4TXTS3
LD A,"È"
CALL PRTSYMTXTMODE
R4TXTS4 LD A,"Í"
CALL PRTSYMTXTMODE
DJNZ R4TXTS4
LD A,"¼"
JP PRTSYMTXTMODE
INPUT_HALFBYTE SUB "0"
CP 0X0A
JR C,IHB1
SUB 7
IHB1 LD E,A
LD A,IXH
LD L,A
LD H,0XC0
LD A,IXL
AND A
JR NZ,LOW_HALF
LD A,(HL)
AND 0X0F
LD D,A
LD A,E
RRCA
RRCA
RRCA
RRCA
OR D
JR LOW_HALF1
LOW_HALF LD A,(HL)
AND 0XF0
OR E
LOW_HALF1 LD (HL),A
LD A,L
PUSH AF
LD D,A
LD E,(HL)
EX DE,HL
CALL WRITECMOS
POP AF
CALL PRINT_STROKA
JP CUR_RIGHT
CUR_UP PUSH AF
CALL INVERS_CUR
LD A,IXH
SUB 0X10
CP 0XF0
JR C,CUR_UP1
AND 0X0F
OR 0XE0
CUR_UP1 LD IXH,A
JR ECUR_RIGHT
CUR_DOWN PUSH AF
CALL INVERS_CUR
LD A,IXH
ADD A,0X10
CP 0XF0
JR C,CUR_DOWN1
AND 0X0F
CUR_DOWN1 LD IXH,A
JR ECUR_RIGHT
CUR_RIGHT PUSH AF
CALL INVERS_CUR
INC IXL
LD A,IXL
CP 2
JR C,ECUR_RIGHT
INC IXH
LD A,IXH
CP 0XF0
JR C,CUR_RIGHT1
LD IXH,0
CUR_RIGHT1 LD IXL,0
ECUR_RIGHT CALL HELP_REG
CALL INVERS_CUR
POP AF
RET
CUR_LEFT PUSH AF
CALL INVERS_CUR
DEC IXL
JP P,ECUR_RIGHT
LD IXL,1
DEC IXH
LD A,IXH
CP 0XF0
JR C,ECUR_RIGHT
LD IX,CRCCMOSHIGH*0X100+1
JR ECUR_RIGHT
HELP_REG LD A,IXH
LD HL,EMPTY_STROKA
CP 0X12
JR NC,HELP_REG1
LD L,A
LD H,0
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD DE,TXT_HELPREG
ADD HL,DE
HELP_REG1 LD DE,0X1203
JP PRTT_MSG
INVERS_CUR LD A,0X1B
CALL SET_7FFD
LD A,IXH
AND 0XF0
RRCA
RRCA
RRCA
RRCA
ADD A,Y4DUMP
LD L,A
LD H,0
LD D,H
REPT 6
ADD HL,HL
ENDM
LD A,IXH
AND 0X0F
LD E,A
ADD A,A
ADD A,E
LD E,A
LD A,IXL
ADD A,X4DUMP+7
ADD A,E
LD E,A
SRL E
ADD HL,DE
AND 1
RRCA
RRCA
RRCA
OR 0XC1
LD D,A
LD E,0XC0
ADD HL,DE
LD A,(HL)
XOR %00000100
LD (HL),A
LD A,0X1F
JP SET_7FFD
;
CLEAR_TXTSCR PUSH AF
LD A,0X1F
CALL SET_7FFD
LD HL,0XC1C0
LD A," "
CALL CLS_TXTSCR
LD HL,0XE1C0
CALL CLS_TXTSCR
LD A,0X1B
CALL SET_7FFD
LD HL,0XC1C0
POP AF
CALL CLS_TXTSCR
LD HL,0XE1C0
CALL CLS_TXTSCR
LD A,0X1F
JP SET_7FFD
;
CLS_TXTSCR LD D,H
LD E,L
LD BC,0X63F
LD (HL),A
INC DE
LDIR
RET
;
PRTT_MSG LD A,(HL)
INC HL
AND A
RET Z
CALL PRTSYMTXTMODE
JR PRTT_MSG
PRINT0STROKA LD H,0
CALL READCMOS
LD (0XC000),A
LD H,2
CALL READCMOS
LD (0XC002),A
LD H,4
CALL READCMOS
LD (0XC004),A
XOR A
LD L,A
PUSH IX
LD IX,0
CALL PRINT_STROKA1
POP IX
RET
PRINT_STROKA LD A,IXH
AND 0XF0
LD L,A
PRINT_STROKA1 LD B,1
LD H,0
RRCA
RRCA
RRCA
RRCA
ADD A,Y4DUMP
LD E,A
LD D,X4DUMP
JR PRINT1STROKA
PRINT_DUMP
; LD DE,(X4DUMP+6)*0X100+Y4DUMP-2
; XOR A
; LD B,0X10
;PRT_ADRB PUSH AF
; CALL PRTT_A_
; LD A," "
; CALL PRTSYMTXTMODE
; POP AF
; DJNZ PRT_ADRB
LD B,0X0F
LD DE,X4DUMP*0X100+Y4DUMP
LD HL,0
PRINT1STROKA CALL PRTT_SMESH
LD A,0XC0
OR H
LD H,A
CALL PRTT_STROKA
LD A,H
AND 0X3F
LD H,A
INC E
LD D,X4DUMP
DJNZ PRINT1STROKA
RET
PRTT_STROKA LD C,0X10
PRTT_STROKA1 LD A,(HL)
INC HL
CALL PRTT_A_
LD A," "
CALL PRTSYMTXTMODE
DEC C
JR NZ,PRTT_STROKA1
RET
PRTT_SMESH CALL PRTT_HL_
LD A,":"
CALL PRTSYMTXTMODE
LD A," "
JR PRTSYMTXTMODE
PRTT_HL_ LD A,H
CALL PRTT_A_
LD A,L
PRTT_A_ PUSH AF
RRCA
RRCA
RRCA
RRCA
CALL PRTT_A_1
POP AF
PRTT_A_1 AND 0X0F
CP 0X0A
CCF
ADC A,"0"
DAA
AND 0X7F
;
;D-X E-Y
PRTSYMTXTMODE PUSH DE
PUSH HL
LD L,A
LD A,0
TYPEFONT EQU $-1
AND A
LD A,L
JR NZ,.LOOP
CP 0X80
JR C,.LOOP
LD HL,CONV_CP866_ATM
PUSH BC
RES 7,A
LD B,0
LD C,A
ADD HL,BC
LD A,(HL)
POP BC
.LOOP PUSH AF
LD L,E
LD A,D
LD H,0
LD D,H
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
LD E,A
SRL E
ADD HL,DE
AND 1
RRCA
RRCA
RRCA
OR 0XC1
LD D,A
LD E,0XC0
ADD HL,DE
POP AF
LD (HL),A
POP HL
POP DE
INC D
RET
SET_C_A OUT (C),A
RET
LOAD_CMOS LD HL,0XC000
LD D,0
EDITCMOS1 EX DE,HL
CALL READCMOS
EX DE,HL
LD (HL),E
INC HL
INC D
LD A,0XF0
CP D
JR NZ,EDITCMOS1
RET
SAVE_CMOS LD HL,0XC000
LD D,0
SAVECMOS1 LD E,(HL)
EX DE,HL
CALL WRITECMOS
EX DE,HL
INC HL
INC D
LD A,0XF0
CP D
JR NZ,SAVECMOS1
RET
;
: H-
; L-
READCMOS DI
PUSH BC
LD BC,PENT_CONF
LD A,CMOS_ON ;
OUT (C),A
LD B,HIGH (CMOS_SET_ADR)
OUT (C),H
LD B,HIGH (CMOS_RD_WR)
IN L,(C)
LD A,CMOS_OFF ;
LD B,HIGH (PENT_CONF)
OUT (C),A
POP BC
LD A,L
AND A
RET
;
: H-
; L-
WRITECMOS
RST8 _CMOS_RW,_WRITE_CMOS
RET
;
FPGA BOOTLOADER,
GET_VERS_EVO LD C,L
LD H,0XF0
CALL WRITECMOS ;
0XF0
CALL READCMOS ;
CP C ;
,
RET Z ;
(
FPGA ).
INC A ;
0XFF,
RET Z ;
DI
DEC A ;
PUSH DE
LD (DE),A ;
INC DE
LD B,0X0F ;
15
GVE1 INC H
CALL READCMOS ;
LD (DE),A
INC DE
DJNZ GVE1 ;
POP DE ;
12
LD H,D
LD L,E
LD B,0X0C ;
0 (
)
GVE2 LD A,(DE)
AND A
JR Z,GVE3
INC DE
DJNZ GVE2
GVE3 LD BC,0X0C ;
2
ADD HL,BC
LD C,(HL)
INC HL
LD B,(HL)
EX DE,HL
LD (HL)," " ;
-
INC HL
;
UNVERS LD A,C
AND 0X1F ; 5 -
CALL A2TXT ;
SRL B
RR C ;
LD A,C ;
RRCA
RRCA
RRCA
RRCA ;
AND 0X0F ; 4
LD (HL),"." ;
INC HL
CALL A2TXT ;
LD (HL),"." ;
INC HL
LD (HL),"2"
INC HL
LD (HL),"0" ;
INC HL
LD A,B ;
AND 0X3F ; 6
CALL A2TXT ;
BIT 6,B ;
6 ( 7)
RET NZ ;JR NZ,GVE4 ;
EX DE,HL ;
,
LD HL,TXT_BETA
LD BC,5
LDIR
EX DE,HL
RET
;
,
PRINTTIME LD A,(ERS_FLAGS)
AND M_CLOCK_ON
RET Z ;
,
LD H,0X0C
CALL READCMOS
AND 0X10
RET Z ;
,
LD H,CMOS_BYTE_01
CALL READCMOS
AND M_CLOCK_VIEW
JR NZ,VIDEOMODE ;
,
DI
EXX
LD BC,TXT_TIME ;
LD H,4
CALL READCMOS ;
LD (SCRSAV.CURR+2),A
CALL BYTE2TXT ;
LD A,(BC)
XOR ':'-' ' ;
LD (BC),A
INC BC
LD H,2
CALL READCMOS ;
LD (SCRSAV.CURR+1),A
CALL BYTE2TXT ;
LD A,(BC)
XOR ':'-' ' ;
LD (BC),A
INC BC
LD H,0
CALL READCMOS ;
LD (SCRSAV.CURR),A
CALL BYTE2TXT
LD BC,TXT_DATA ;
LD H,7
CALL READCMOS
CALL BYTE2TXT
INC BC
LD H,8
CALL READCMOS
CALL BYTE2TXT
INC BC
LD H,9
CALL READCMOS
CALL BYTE2TXT
LD HL,BUFF_TIME ;
RST8 _PRINT_MESSAGE
EXX
VIDEOMODE DI
LD HL,0XF003
LD BC,PENT_CONF
LD A,CMOS_ON ;
OUT (C),A
LD B,HIGH (CMOS_SET_ADR)
OUT (C),H
LD B,HIGH (CMOS_RD_WR)
OUT (C),L
LD A,CMOS_OFF ;
LD B,HIGH (PENT_CONF)
OUT (C),A
CALL READCMOS
LD DE,TV_VGA
PUSH AF
AND %00110000
RRCA
RRCA
LD C,A
LD B,0
LD HL,TXT_HZ
ADD HL,BC
LDI
LDI
LDI
LDI
INC DE
POP AF
BIT 0,A
LD HL,TXT_TVVGA
JR Z,VMODE1
INC HL
INC HL
INC HL
VMODE1 LDI
LDI
LDI
LD HL,TXT_VMODE ;
RST8 _PRINT_MESSAGE
RET
;
"A"
A2TXT PUSH HL
LD L,A
LD H,0
LD DE,10
XOR A
DEC A
INC A
SBC HL,DE
JR NC,$-3
ADD HL,DE
ADD A,"0"
LD D,A
LD A,L
ADD A,"0"
POP HL
LD (HL),D
INC HL
LD (HL),A
INC HL
RET
BYTE2TXT LD L,A
LD H,"0"
RRCA
RRCA
RRCA
RRCA
AND 0X0F
ADD A,H
LD (BC),A
INC BC
LD A,L
AND 0X0F
ADD A,H
LD (BC),A
INC BC
RET
TXTMODE_ON
PEC_ON M_SHADOW_BF
LD BC,0XFF77
LD A,0XA6
CALL SET_C_A
PEC_OFF M_SHADOW_BF
RET
TXTMODE_OFF
PEC_ON M_SHADOW_BF
LD BC,0XFF77
LD A,0XA3
CALL SET_C_A
PEC_OFF M_SHADOW_BF
RET
CHECK_SCREENSAVER
LD A,(SCRSAV.TIMEOUT)
AND A
RET Z
PUSH AF
LD HL,SCRSAV.CURR
LD DE,(SCRSAV.START)
LD BC,(SCRSAV.START+2)
CALL BCDEHLM
POP AF
CP D
RET NZ
LD A,B
OR E
RET NZ
CALL START_SONGLN
RESET_SCREENSAVER
LD DE,SCRSAV.START
LD H,0
CALL READCMOS
LD (DE),A
INC DE
LD H,2
CALL READCMOS
LD (DE),A
INC DE
LD H,4
CALL READCMOS
LD (DE),A
INC DE
XOR A
LD (DE),A
RET