mirror of
https://github.com/Tolik-Trek/ZX-SP-ROMs.git
synced 2026-06-15 17:31:45 +03:00
fixed "enter" bug in boot
This commit is contained in:
parent
ff7566be45
commit
62b5f27378
@ -16,14 +16,17 @@ org_addr EQU #5d3b
|
||||
|
||||
bstart: DW #100 ; line number = 1
|
||||
DW l1end-l1begin ; line length
|
||||
l1begin: DB ZX_Token.randomize,ZX_Token.usr,#30 ; 'rand' 'usr' 0
|
||||
DB #0e,#00,#00 : DW start : DB #00,#0d ; start address
|
||||
l1begin: DB ZX_Token.randomize,ZX_Token.usr,"0" ; 'rand' 'usr' 0
|
||||
DB ZX_Char.number
|
||||
DB #00,#00 : DW start : DB #00 ; start address
|
||||
DB ZX_Char.carriage_return
|
||||
l1end: DW #200 ; line number = 2
|
||||
DW l2end-l2begin ; line length
|
||||
l2begin: DB #f9,#c0,#30 ; ':' 'rand' 'usr' 0
|
||||
DB #0e,#00,#00 : DW 15619 : DB #00 ; start address
|
||||
DB #3a,#ea,#3a,#f7,#22
|
||||
filename: DB "boot ",#22,#3a ; ':' 'rem' run
|
||||
l2begin: DB ZX_Token.randomize,ZX_Token.usr,"0" ; ':' 'rand' 'usr' 0
|
||||
DB ZX_Char.number
|
||||
DB #00,#00 : DW 15619 : DB #00 ; start address
|
||||
DB ":",ZX_Token.rem,":",ZX_Token.run,'"'
|
||||
filename: DB "boot ",'"',":" ; ':' 'rem' run
|
||||
;=======================================================================
|
||||
|
||||
;org #5d65
|
||||
@ -54,7 +57,8 @@ main.PagesCounter:
|
||||
;
|
||||
main: LD A,(.CurrentPage)
|
||||
LD (.PagesCounter),A
|
||||
.nextLoop: LD A,collor_T
|
||||
.nextLoop: CALL PRINT_HELP
|
||||
LD A,collor_T
|
||||
LD (var_collor),A
|
||||
LD HL,#50CC
|
||||
LD (var_printPos),HL
|
||||
@ -123,13 +127,14 @@ PRINT_NEXT_BUTTONS:
|
||||
LD A,(main.PagesCounter)
|
||||
LD (keys.nxtPage),A
|
||||
DEC A
|
||||
JR Z,.noChange
|
||||
;JR Z,.noChange
|
||||
JR Z,keys
|
||||
LD (main.PagesCounter),A
|
||||
LD (main.buffPointer),HL
|
||||
.noChange: PUSH AF
|
||||
CALL PRINT_HELP
|
||||
POP AF
|
||||
JP Z,keys
|
||||
.noChange: ;PUSH AF
|
||||
;CALL PRINT_HELP
|
||||
;POP AF
|
||||
;JP Z,keys
|
||||
JR keys.toMain
|
||||
|
||||
PRINT_HELP: LD HL,#5040
|
||||
@ -149,7 +154,7 @@ PRINT_HELP: LD HL,#5040
|
||||
;
|
||||
DirShowDone: XOR A
|
||||
LD (keys.nxtPage),A
|
||||
CALL PRINT_HELP
|
||||
;CALL PRINT_HELP
|
||||
keys: RES 5,(iy+1)
|
||||
.w1: BIT 5,(iy+1)
|
||||
JR Z,.w1
|
||||
@ -234,7 +239,9 @@ keys: RES 5,(iy+1)
|
||||
|
||||
|
||||
|
||||
exit:
|
||||
exit: LD A,C
|
||||
CP "a"
|
||||
JP Z,NewDisk
|
||||
memSP+1: LD SP,0
|
||||
RET
|
||||
|
||||
@ -374,340 +381,3 @@ catBuff EQU #6000 ;$ + (-$&0x0f)
|
||||
EXPORT StartLineNum
|
||||
EXPORT org_addr
|
||||
;
|
||||
|
||||
/*
|
||||
; device zxspectrum48
|
||||
INCLUDE 'inc/rom_routines.inc'
|
||||
INCLUDE 'Shared_Includes/constants/ZX_VARS.inc'
|
||||
INCLUDE 'Shared_Includes/constants/zx_char_codes.inc'
|
||||
|
||||
;=======================================================================
|
||||
collor_A EQU 0x03
|
||||
collor_B EQU 0x02
|
||||
collor_N EQU 0x04
|
||||
collor_M EQU 0x08
|
||||
collor_T EQU 0x07
|
||||
org_addr EQU #5d3b
|
||||
|
||||
|
||||
ORG org_addr
|
||||
|
||||
bstart: DW #100 ; line number = 1
|
||||
DW l1end-l1begin ; line length
|
||||
l1begin: DB ZX_Token.randomize,ZX_Token.usr,#30 ; 'rand' 'usr' 0
|
||||
DB #0e,#00,#00 : DW start : DB #00,#0d ; start address
|
||||
l1end: DW #200 ; line number = 2
|
||||
DW l2end-l2begin ; line length
|
||||
l2begin: DB #f9,#c0,#30 ; ':' 'rand' 'usr' 0
|
||||
DB #0e,#00,#00 : DW 15619 : DB #00 ; start address
|
||||
DB #3a,#ea,#3a,#f7,#22
|
||||
filename: DB "boot ",#22,#3a ; ':' 'rem' run
|
||||
;=======================================================================
|
||||
|
||||
;org #5d65
|
||||
start: LD (memSP),SP
|
||||
NewDisk: CALL clear_screen
|
||||
; XOR A
|
||||
; ;OUT (0xfe),A
|
||||
; LD (ZX_VARS.ATTR_P),A
|
||||
; LD (ZX_VARS.BORDER),A
|
||||
; CALL BASIC_FN.x48.cls
|
||||
;
|
||||
LD BC,0x0905
|
||||
LD DE,0
|
||||
LD HL,catBuff
|
||||
;.3 nop
|
||||
CALL 0x3d13
|
||||
LD A,"a"
|
||||
LD (main.markPos),A
|
||||
main: LD A,collor_T
|
||||
LD (var_collor),A
|
||||
LD HL,0x50cc
|
||||
LD (var_printPos),HL
|
||||
LD HL,catBuff+0x08f5
|
||||
.p1: LD A,(HL)
|
||||
PUSH HL
|
||||
CALL printChar
|
||||
POP HL
|
||||
INC L
|
||||
LD A,L
|
||||
CP low (catBuff+0x08fd)
|
||||
JR NZ,.p1
|
||||
|
||||
LD HL,0x4000
|
||||
LD (var_printPos),HL
|
||||
; ¢ëç¨âë¢ ¨¥ ª â «®£
|
||||
.buffPointer+1: LD HL,catBuff
|
||||
.markPos+2: LD BC,"aa"
|
||||
.l1: LD A,(HL)
|
||||
DEC A
|
||||
JR Z,.n1
|
||||
;
|
||||
JP M,keys
|
||||
;
|
||||
LD A,L
|
||||
AND #F0
|
||||
ADD A,8
|
||||
LD L,A
|
||||
LD A,(HL)
|
||||
CP "B"
|
||||
RES 3,L
|
||||
JR NZ,.n1
|
||||
; ¤¢¥ á¯¥æ ª®¯ª¨
|
||||
LD A,C ; C - ⥪ã騩 ä ©«
|
||||
CP "y"
|
||||
JP NC,PRINT_NEXT_BUTTONS ; "::PREV::" "::NEXT::"
|
||||
;
|
||||
; basic file
|
||||
CP B ; ¢ë¡à ë© ä ©«
|
||||
LD A,collor_A
|
||||
JR NZ,.s1
|
||||
; ¢ë¤¥«¥¨¥ ä ©« ¨ ª®¯¨à®¢ ¨¥ ¥£® ¢ áâப㠧 ¯ãáª
|
||||
XOR collor_M
|
||||
;CALL choose_color
|
||||
;JR C,.s1
|
||||
;
|
||||
LD DE,filename
|
||||
PUSH BC
|
||||
LD BC,8
|
||||
LDIR
|
||||
POP BC
|
||||
RES 3,L
|
||||
;
|
||||
.s1: CALL prn_txt
|
||||
.s3: INC C
|
||||
.n1: LD A,L
|
||||
AND #F0
|
||||
LD L,A
|
||||
LD DE,#10
|
||||
ADD HL,DE
|
||||
JR .l1
|
||||
;
|
||||
;
|
||||
;
|
||||
ALIGN #10
|
||||
TXT_BUTTONS:
|
||||
.prev: DB '<< PgDn '
|
||||
.next: DB '>> PgUp '
|
||||
;
|
||||
;
|
||||
keys: RES 5,(iy+1)
|
||||
.w1: BIT 5,(iy+1)
|
||||
JR Z,.w1
|
||||
LD A,(iy-0x32)
|
||||
;
|
||||
CP B
|
||||
JR Z,exit
|
||||
CP 0x0d ; enter
|
||||
JR Z,exit
|
||||
CP " " ; space
|
||||
JP Z,NewDisk
|
||||
;
|
||||
CP #04 ; pgUp
|
||||
LD DE,-384
|
||||
JR Z,.nxtPage
|
||||
;
|
||||
.pgdn: CP #05 ; pgDn
|
||||
LD DE,384
|
||||
JR Z,.nxtPage
|
||||
;
|
||||
.left: CP #08 ; left
|
||||
JR NZ,.sl
|
||||
DEC B
|
||||
JR .c1
|
||||
;
|
||||
.sl: CP #0B ; up
|
||||
JR NZ,.sd
|
||||
DEC B
|
||||
DEC B
|
||||
DEC B
|
||||
JR .c1
|
||||
;
|
||||
.sd: CP #0A ; down
|
||||
JR NZ,.su
|
||||
INC B
|
||||
INC B
|
||||
INC B
|
||||
JR .c1
|
||||
;
|
||||
.su: CP #09 ; right
|
||||
JR NZ,.sr
|
||||
INC B
|
||||
JR .c1
|
||||
;
|
||||
.sr: CP "a"
|
||||
JR C,keys
|
||||
CP C
|
||||
JR NC,keys
|
||||
LD B,A
|
||||
;
|
||||
.c1: LD A,B
|
||||
CP "a"
|
||||
JR NC,.sf1
|
||||
LD A,"a"
|
||||
.sf1: CP C
|
||||
JR C,.sf2
|
||||
LD A,C
|
||||
DEC A
|
||||
.sf2: LD (main.markPos),A
|
||||
.toMain: JP main
|
||||
|
||||
; DE - +24 or -24
|
||||
.nxtPage: LD HL,(main.buffPointer)
|
||||
ADD HL,DE
|
||||
BIT 3,H
|
||||
JR NZ,keys
|
||||
.EnablePages+1: AND 0
|
||||
JR Z,keys
|
||||
;
|
||||
XOR A
|
||||
LD (.EnablePages),A ; A=0 - Disable Pages
|
||||
LD (main.buffPointer),HL
|
||||
CALL clear_screen
|
||||
JR .toMain
|
||||
; var_files db 0
|
||||
|
||||
exit:
|
||||
memSP+1: LD SP,0
|
||||
RET
|
||||
|
||||
|
||||
|
||||
PRINT_NEXT_BUTTONS:
|
||||
LD HL,#5040
|
||||
LD (var_printPos),HL
|
||||
LD A,collor_N
|
||||
LD (keys.EnablePages),A ; A!=0 - Enable Pages
|
||||
LD HL,TXT_BUTTONS.prev
|
||||
CALL prn_txt
|
||||
;
|
||||
LD A,collor_N
|
||||
INC C
|
||||
CALL prn_txt
|
||||
;
|
||||
JP keys
|
||||
|
||||
|
||||
printChar: LD H,A
|
||||
ADD A,A
|
||||
ADD A,A
|
||||
ADD A,A
|
||||
LD L,A
|
||||
LD A,H
|
||||
RLCA
|
||||
RLCA
|
||||
RLCA
|
||||
AND 0x07
|
||||
ADD A,0x3c
|
||||
LD H,A
|
||||
var_printPos+1: LD DE,0x4000
|
||||
|
||||
.l1: LD A,(HL)
|
||||
RRCA
|
||||
OR (HL)
|
||||
INC HL
|
||||
LD (DE),A
|
||||
INC D
|
||||
LD (DE),A
|
||||
INC D
|
||||
LD A,D
|
||||
AND 0x07
|
||||
JR NZ,.l1
|
||||
LD A,D
|
||||
SUB 0x08
|
||||
LD D,A
|
||||
LD A,E
|
||||
ADD A,0x20
|
||||
LD E,A
|
||||
AND 0x20
|
||||
JR NZ,.l1
|
||||
LD HL,(var_printPos)
|
||||
LD A,H
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
ADD A,0x50
|
||||
LD H,A
|
||||
var_collor+1: LD A,0
|
||||
LD (HL),A
|
||||
SET 5,L
|
||||
XOR collor_A ^ collor_B
|
||||
LD (HL),A
|
||||
;
|
||||
LD HL,var_printPos
|
||||
LD A,(HL)
|
||||
ADD A,0x21
|
||||
AND 0xdf
|
||||
LD (HL),A
|
||||
RET NZ
|
||||
INC HL
|
||||
LD A,(HL)
|
||||
ADD A,0x08
|
||||
LD (HL),A
|
||||
RET
|
||||
;
|
||||
;
|
||||
|
||||
clear_screen: XOR A
|
||||
OUT (0xfe),A
|
||||
LD (ZX_VARS.ATTR_P),A
|
||||
LD (ZX_VARS.BORDER),A
|
||||
JP BASIC_FN.x48.cls
|
||||
;
|
||||
|
||||
|
||||
; A - current file
|
||||
; choose_color: CP B ; ¢ë¡à ë© ä ©«. #C7
|
||||
; LD A,collor_A
|
||||
; SCF
|
||||
; RET NZ
|
||||
; XOR collor_M
|
||||
; RET
|
||||
|
||||
|
||||
; A - COLOR
|
||||
; C - char of text button
|
||||
; HL - Text
|
||||
prn_txt: LD (var_collor),A
|
||||
LD A,C
|
||||
PUSH HL
|
||||
CALL printChar
|
||||
LD A," "
|
||||
CALL printChar
|
||||
POP HL
|
||||
;
|
||||
.loop: LD A,(HL)
|
||||
INC HL
|
||||
PUSH HL
|
||||
CALL printChar
|
||||
POP HL
|
||||
LD A,L
|
||||
AND 0x07
|
||||
JR NZ,.loop
|
||||
;
|
||||
LD A,(var_printPos)
|
||||
AND 0x1f
|
||||
RET Z
|
||||
LD A," "
|
||||
PUSH HL
|
||||
CALL printChar
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
StartLineNum: DB 0
|
||||
DW 0
|
||||
;DB #80
|
||||
l2end:
|
||||
;bend:
|
||||
DISPLAY "printChar ",/A,$-printChar
|
||||
DISPLAY "code ",/A,$-start
|
||||
;ds -$&0x0f
|
||||
;ALIGN #10
|
||||
;filename EQU $
|
||||
catBuff EQU #6000 ;$ + (-$&0x0f)
|
||||
|
||||
ASSERT l2end < catBuff,"ERROR!!! Code leaks to catBuff"
|
||||
EXPORT StartLineNum
|
||||
EXPORT org_addr
|
||||
;
|
||||
*/
|
||||
@ -1,2 +1,2 @@
|
||||
StartLineNum: EQU 0x00005F30
|
||||
StartLineNum: EQU 0x00005F2E
|
||||
org_addr: EQU 0x00005D3B
|
||||
|
||||
Loading…
Reference in New Issue
Block a user