Rev 838 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
| ?url?
; LAST UPDATE: 09.11.2022 savelij
ITSELECTOR LD HL,FLAGS
RES B_MOUSE_PRESENT,(HL) ;
SET B_VIDEO_MODE,(HL) ;
LD HL,KEYBOARDS
LD (ADR_INT),HL ;
LD (OLD_STACK),SP
JR SELECTOR
ISELECTOR LD HL,FLAGS
RES B_VIDEO_MODE,(HL)
CALL DETECTMOUSE
LD (OLD_STACK),SP
SELECTOR EI
LD A,(FLAGS)
AND M_MOUSE_PRESENT ;
JR Z,_RULNMO
;FIX
MKEYPR EI
LD A,0XFA
IN A,(0XDF)
CPL
AND 7
JR NZ,MKEYPR
_RULNMO CALL SAVE2X2 ;
CALL SET_ADR_ATR ;
LD HL,FLAGS_KEY
RES 5,(HL) ;
JR MAINLOP
;
UP CALL CURSOR_UP ;
-1
JR SET_POS1
;
RIGHT BIT 1,(IX+6) ;
PUSH AF ;
CALL NZ,PAGEDN ;
,
POP AF ;
JR NZ,SET_POS1 ;
LD A,(IX+0X0A)
AND A
JR Z,SET_POS
DEC A ;
JR SET_POS ;
;
DOWN CALL CURSOR_DOWN ;
+1
JR SET_POS1
;
LEFT BIT 1,(IX+6) ;
PUSH AF ;
CALL NZ,PAGEUP ;
,
POP AF ;
JR NZ,SET_POS1 ;
XOR A ;
SET_POS BIT 7,(IX+7)
JR Z,SET_POS3
LD L,(IX+8)
LD H,(IX+9)
LD (HL),A
INC HL
LD (HL),A
INC HL
LD (HL),0
JR SET_POS1
SET_POS3 LD (IX+7),A ;
LD (IX+8),A
LD (IX+9),0 ;
SET_POS1 CALL COLOR_CURSOR ;
MAINLOP LD HL,FLAGS_KEY
RES 5,(HL) ;
LD A,(FLAGS)
AND M_MOUSE_PRESENT ;
JP Z,MAINNMO
LD HL,(ARXY) ;
PUSH HL
CALL MOUSE ;
POP BC
AND A
SBC HL,BC
JR Z,NO_SELECT ;
CALL MOUOPT ;
NO_SELECT LD BC,0XFADF
IN A,(C) ;
AND 7
CP 6
JR Z,PRESS_MOUSE ;
CP 5
JP Z,RESTART ;
CALL PRINTTIME ;
EI
CALL REST2X2 ;
CALL DRAW_MOUSE ;
JR MAINQMO ;
PRESS_MOUSE CALL OPMSPL
AND A
JR Z,CP_MOUSE4
LD (LAST_K),A
CALL TIMELP
JR SELECT_KEY
CP_MOUSE4 CALL MOUOPT ;
JR C,MAINNMO ;
LD E,(IX+7) ;
BIT 7,E
JR Z,CP_MOUSE5
LD L,(IX+8)
LD H,(IX+9)
LD E,(HL)
CP_MOUSE5 LD D,0
LD HL,(PRESSEDKEY) ;
ADD HL,DE ;
LD DE,LAST_K
LDI ;
JR ENTER
MAINNMO CALL PRINTTIME ;
,
EI
HALT
MAINQMO LD A,(FLAGS_KEY)
BIT 5,A ;
JP Z,MAINLOP ;
ROMCALL BREAK_KEY,ROM_RST82 ;
BREAK
JR C,SELECT_KEY ;
BREAK
RESTART DI
CALL TRESTORE_CLINE
LD A,1
RET
SELECT_KEY DI
LD HL,SET_POS1
PUSH HL
LD HL,LAST_K
LD A,(HL) ;
LD B,0
LD HL,MAIN_KEYS
LD C,(HL) ;
LD D,C
INC HL
CPIR
JR NZ,NOMAINKEYS ;
,
; - ,
LD HL,ADREXEKEYS
LD A,D ;
-1
SUB C ;
DEC A
ADD A,A
ADD A,L
LD L,A
ADC A,H
SUB L
LD H,A
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
JP (HL)
;
NOMAINKEYS LD L,(IX+0X12)
LD H,(IX+0X13) ;
LD C,A
LD A,H
OR L
JP Z,MAINLOP ;
,
LD A,C
LD C,(IX+2)
LD E,(HL)
INC HL
DEC C ;
DEC C ; -2
LD D,C
LD B,0
CPIR ;
JR NZ,OSTAT_KEYS
LD A,D ;
SUB C
DEC A ;
-1
BIT 7,(IX+7)
JR Z,ENTER1
LD L,(IX+8)
LD H,(IX+9)
LD (HL),A
INC HL
LD (HL),A
JR ENTER
ENTER1 LD (IX+7),A ;
LD (IX+8),A ;
ENTER LD A,(FLAGS)
AND M_MOUSE_PRESENT
CALL NZ,TIMELP ;
CALL REST2X2 ;
LD A,(IX+7) ;
BIT 7,A
JR Z,JUMP2HL1
LD L,(IX+8)
LD H,(IX+9)
LD A,(HL)
JUMP2HL1 LD L,(IX+0X0E)
LD H,(IX+0X0F) ;
1
JUMP2HL ADD A,A
ADD A,L
LD L,A
ADC A,H
SUB L
LD H,A
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
JP (HL)
OSTAT_KEYS EX AF,AF'
LD A,E
SUB D
JP Z,MAINLOP
LD C,A
EX AF,AF'
CPIR
JP NZ,MAINLOP
LD A,E
SUB C
DEC A
JR JUMP2HL1
TIMELP CALL PRINTTIME
LD A,0XFA
IN A,(0XDF) ;
CPL
AND 7
JR NZ,TIMELP ;
RET
CURSOR_UP LD C,(IX+8)
LD B,(IX+9)
BIT 7,(IX+7)
JR Z,CURSOR_UP3
LD L,(IX+8)
LD H,(IX+9)
INC HL
LD C,(HL)
INC HL
LD B,(HL)
CURSOR_UP3 LD A,B
OR C
RET Z
DEC BC
BIT 7,(IX+7)
JR Z,CURSOR_UP2
LD (HL),B
DEC HL
LD (HL),C
DEC HL
LD A,(HL)
AND A
JR Z,CURSOR_UP1
DEC (HL)
RET
CURSOR_UP2 LD (IX+8),C
LD (IX+9),B
LD A,(IX+7)
AND A
JR Z,CURSOR_UP1
DEC (IX+7)
RET
CURSOR_UP1 CALL REST2X2
CALL RESTORE_CLINE
CALL SCRDN
LD E,(IX+1)
INC E
DOWN1 LD D,(IX+0)
INC D
INC D
EVOPORT WIN_P3,RAM_TEMP2
LD L,(IX+8)
LD H,(IX+9)
BIT 7,(IX+7)
JR Z,DOWN3
DEC D
INC HL
LD A,(HL)
INC HL
LD H,(HL)
LD L,A
DOWN3 LD BC,CPU3
ADD HL,HL
ADD HL,BC
LD C,(HL)
INC HL
LD B,(HL)
PUSH DE
ROMCALL POSTF06,ROM_RST83
ROMCALL READ_DIR,ROM_RST83
LD DE,FILES_EXT
ROMCALL CP_EXT,ROM_RST83
EX AF,AF'
LD BC,0X0B
ADD HL,BC
LD A,(HL)
SBC HL,BC
AND 0X10
LD A,BLUE<<3+WHITE+BR_INK
LD (OUT_NAME_FILE+1),A ;
JR NZ,DOWN7
EX AF,AF'
LD L,A
INC A
JR Z,DOWN6
LD A,L
DOWN6 LD HL,COLOR_EXT
ADD A,L
LD L,A
ADC A,H
SUB L
LD A,(HL)
ADD A,BLUE<<3+BR_INK
LD (OUT_NAME_FILE+1),A
DOWN7 LD HL,BUF_256
ROMCALL GET_LONGNAME,ROM_RST83
POP DE
CALL FILENAME8_3
JP SET_ADR_ATR
CURSOR_DOWN LD L,(IX+0X0A)
LD H,(IX+0X0B) ;
BIT 6,(IX+7)
JR Z,CURSOR_DOWN6
LD L,(IX+8) ;
LD H,(IX+9) ;
INC HL
INC HL
INC HL
LD A,(HL)
INC HL
LD H,(HL)
LD L,A ;
CURSOR_DOWN6 LD A,H
OR L
RET Z
BIT 7,(IX+7)
JR Z,CURSOR_DOWN2
LD E,(IX+8)
LD D,(IX+9) ;
EX DE,HL
INC HL
LD C,(HL)
INC HL
LD B,(HL)
EX DE,HL
JR CURSOR_DOWN3
CURSOR_DOWN2 LD C,(IX+8)
LD B,(IX+9)
CURSOR_DOWN3 SCF
SBC HL,BC
RET Z
INC BC
BIT 7,(IX+7)
JR Z,CURSOR_DOWN4
EX DE,HL
LD (HL),B
DEC HL
LD (HL),C
DEC HL
LD A,(IX+2)
SUB 3
CP (HL)
JR Z,CURSOR_DOWN1
INC (HL)
RET
CURSOR_DOWN4 LD (IX+8),C
LD (IX+9),B
LD A,(IX+2)
SUB 3
CP (IX+7)
JR Z,CURSOR_DOWN1
INC (IX+7)
RET
CURSOR_DOWN1 CALL REST2X2
CALL RESTORE_CLINE
CALL SCRUP
LD A,(IX+1)
ADD A,(IX+2)
SUB 2
LD E,A
JP DOWN1
GET_XY LD L,(IX+8)
LD H,(IX+9) ;
BIT 7,(IX+7)
JR Z,GETXY1
;
INC HL
LD E,(HL)
INC HL
LD D,(HL) ;
EX DE,HL
BIT 6,(IX+7)
JR Z,GETXY1
;
EX DE,HL
INC HL
LD A,(HL)
INC HL
LD H,(HL)
LD L,A ;
EX DE,HL
JR GETXY2
GETXY1 LD E,(IX+0X0A)
LD D,(IX+0X0B) ;-
GETXY2 LD A,(IX+2)
SUB 3
LD C,A ;
LD B,0
LD A,D
OR E
LD A,C
RET
;
PAGEUP CALL GET_XY
RET Z
XOR A
SBC HL,BC
EX DE,HL
JR NC,PDUN0
PDU0 LD D,A
LD E,A
JR PDUN0
;
PAGEDN CALL GET_XY
RET Z
EX DE,HL
AND A
SBC HL,BC
ADD HL,BC
EX DE,HL
JR NC,PDN00
DEC DE
LD A,E
JR PDUN0
PDN00 ADD HL,BC
EX DE,HL
SBC HL,DE
ADD HL,DE
JR Z,PDUN1
JR NC,PDUN0
PDUN1 EX DE,HL
DEC DE
PDUN0 BIT 7,(IX+7)
JR Z,PDUN2
LD L,(IX+8)
LD H,(IX+9)
LD (HL),A
INC HL
LD (HL),E
INC HL
LD (HL),D
JR PDUN3
PDUN2 LD (IX+7),A
LD (IX+8),E
LD (IX+9),D
PDUN3 CALL RESTORE_CLINE
JP OUT_TEK_DIR
PRINTTIME DI
LD H,0X0C
CALL READCMOS
AND 0X10
RET Z ;
,
LD BC,TXT_TIME ;
LD H,4
CALL READCMOS ;
CALL BYTE2TXT ;
LD A,(BC)
XOR 0X1A ;
LD (BC),A
INC BC
LD H,2
CALL READCMOS ;
CALL BYTE2TXT ;
LD A,(BC)
XOR ':'-' ' ;
LD (BC),A
INC BC
LD H,0
CALL READCMOS ;
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 ;
JP ITPRINT_MESSAGE
;
"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
; MAGIC
CONTINUE_PROG DI
LD SP,(OLD_STACK)
XOR A
RET
;
MAGIC
RESTART_MAIN DI
LD SP,(OLD_STACK)
LD A,1
RET
;
TRACER_DBG DI
LD SP,(OLD_STACK)
LD A,2
RET
SETUP LD IX,SETUP_MENU
CALL ITWINW
JP SET_ADR_ATR
;
TURBO
CMOS
NMI
;0-7MHZ 1-3,5MHZ 2-14,0MHZ
SET_TURBO DI
LD H,CMOS_BYTE_01
CALL READCMOS
LD E,L ;TURBO AND MEMORY MODE
LD H,CMOS_BYTE_00
CALL READCMOS
LD D,L ;TURBO 14
RLCA
LD C,A
LD A,E
RLCA
LD A,C
RLA
AND 3
INC A ;
TURBO
CP 3
JR C,SETTURBO1
XOR A ;
0,
14MHZ
SETTURBO1 LD C,A
PUSH BC
AND A
RES 7,E ;TURBO 7 0
RES 7,D ;TURBO 14=7MHZ 0
JR Z,SETTURBO3
DEC A
SET 7,E ;TURBO 7 1
RES 7,D ;TURBO 14=3,5 0
JR Z,SETTURBO3
RES 7,E ;TURBO 7 0
SET 7,D ;TURBO 14=14 1
SETTURBO3 LD H,CMOS_BYTE_00
LD L,D
PUSH DE
CALL IWRITECMOS
POP DE
LD H,CMOS_BYTE_01
LD L,E
CALL IWRITECMOS
POP BC
LD A,C
AND A
LD DE,%0000000000000000 ;7MHZ
JR Z,SETTURBO4
DEC A
LD DE,%0001000000000000 ;3,5MHZ
JR Z,SETTURBO4
LD DE,%0000000000001000 ;14MHZ
SETTURBO4 LD A,(B_PORT77)
AND %11110111
OR E
LD (B_PORT77),A
LD A,(N_EFF7)
AND %11101111
OR D
LD (N_EFF7),A
SETANDPRINT CALL SETUP4SEL
LD HL,TXT_SETUPMENU
JP ITPRINT_MESSAGE
;
CMOS
NMI
SET_MEMORY DI
LD H,CMOS_BYTE_01
CALL READCMOS
AND 3
INC A
CP 3
JR C,SETMEMORY1
XOR A
SETMEMORY1 LD C,A
LD A,L
AND %11111100
OR C
LD L,A
CALL IWRITECMOS
JR SETANDPRINT
;
/
HONEY COMANDER
SET_REZIDENT DI
LD H,CMOS_BYTE_01
CALL READCMOS
XOR M_REZIDENT
LD L,A
CALL IWRITECMOS
JR SETANDPRINT
KILL_REZID DI
LD H,CMOS_BYTE_03
CALL READCMOS
XOR M_KILL_REZIDENT
LD L,A
CALL IWRITECMOS
JR SETANDPRINT
;
SETUP4SEL DI
LD H,CMOS_BYTE_01
CALL READCMOS
LD E,L ;TURBO AND MEMORY MODE
LD H,CMOS_BYTE_00
CALL READCMOS
LD D,L ;TURBO 14
RLCA
LD C,A
LD A,E
RLCA
LD A,C
RLA
AND 3
CP 3
JR C,SETUP4SEL1
DEC A
SETUP4SEL1 ADD A,A
ADD A,A
LD HL,TXT_TURBO
LD C,A
LD B,0
ADD HL,BC
PUSH DE
LD DE,TURBO_MODE
LDI
LDI
LDI
LDI
EX DE,HL
LD (HL),2
POP DE
PUSH DE
LD A,E
AND 3
LD C,A
LD B,0
LD HL,TXT_MEMORY
ADD HL,BC
ADD HL,BC
ADD HL,BC
LD DE,MEMORY_MODE
LDI
LDI
LDI
EX DE,HL
LD (HL),2
POP DE
;
HONEY COMANDER
LD A,E
AND M_REZIDENT
LD HL,TXT_ONOFF
JR NZ,.ON
LD HL,TXT_ONOFF+3
.ON LD DE,REZIDENT_MODE
LDI
LDI
LDI
EX DE,HL
LD (HL),2
LD H,CMOS_BYTE_03
CALL READCMOS
AND M_KILL_REZIDENT
LD HL,TXT_ONOFF
JR NZ,.ON1
LD HL,TXT_ONOFF+3
.ON1 LD DE,TXT_KILLREZID
LDI
LDI
LDI
EX DE,HL
LD (HL),2
RET
;
ANY_KEYS XOR A
IN A,(0XFE)
CPL
AND 0X1F
JR Z,ANY_KEYS
ANYKEYS1 XOR A
IN A,(0XFE)
CPL
AND 0X1F
JR NZ,ANYKEYS1
RET