release 25/06/2025

This commit is contained in:
Tolik 2025-06-25 23:03:52 +10:00
parent 1d9480f20d
commit d9052b6952
3 changed files with 241 additions and 14 deletions

View File

@ -6,21 +6,19 @@
;!TODO ¨á¯®«ì§®¢ âì ¢­¥è­¨¥ ¯®àâë #E0 ¨ #E3 ¤«ï á®åà ­¥­¨ï ॣ¨áâ஢ ¯à¨ ¯¥à¥å¢ â¥ ¢á直å #3D2F
; [ ] boot loader from TR-DOS vROM
;SHELLEXEC "sjasmplus --nologo --syntax=f --fullpath --color=on --exp=trdos/boot/boot.inc --lst=Build/boot.lst --raw=Build/boot.bin trdos/boot/boot.asm"
DEFINE DEFtrd_boot_small 0
LUA PASS1
compiling_boot = (os.execute("sjasmplus --nologo --syntax=f --fullpath --color=on --exp=trdos/boot/boot.inc --lst=Build/boot.lst --raw=Build/boot.bin trdos/boot/boot.asm"))
-- --define
local sjasmplus_run = "sjasmplus --nologo --syntax=f --fullpath --color=on --exp=trdos/boot/boot.inc --lst=Build/boot.lst --raw=Build/boot.bin trdos/boot/boot.asm --define DEFtrd_boot_small=" .. sj.get_define("DEFtrd_boot_small")
compiling_boot = (os.execute(sjasmplus_run))
if compiling_boot then
print("--[ BOOT Build OK ]--")
--sj.insert_define("_BOOT_COMPILED_", "1")
else
print("--[ BOOT Build ERROR!!! ]--")
--sj.insert_define("_BOOT_COMPILED_", "0")
os.exit(1)
end
ENDLUA
; IF _BOOT_COMPILED_ = 0
; assert 1, Error whith boot.asm
; ENDIF
DEVICE ZXSPECTRUM128
ORG 0
@ -595,7 +593,11 @@ vROM_BOOT: LD HL,(ZX_VARS.ADR_RET)
.continue: LD HL,(ZX_VARS.FL_START)
LD (ZX_VARS.ADR_RET),HL ; ¢®ááâ ­ ¢«¨¢ ¥¬ ADR_RET
;
IF DEFtrd_boot_small
LD HL,BOOT_PART_1.SIZE + BOOT_PART_2.SIZE
ELSE
LD HL,BOOT_PART_1.SIZE + BOOT_PART_2.SIZE + BOOT_PART_3.SIZE
ENDIF
LD (ZX_VARS.FL_START),HL ; ¤«¨­  ¯à®£à ¬¬ë á ¯¥à¥¬¥­­ë¬¨.
LD (ZX_VARS.FL_LEN),HL ; ¤«¨­  ¯à®£à ¬¬ë á ¯¥à¥¬¥­­ë¬¨.
;
@ -611,11 +613,12 @@ vROM_BOOT: LD HL,(ZX_VARS.ADR_RET)
LD HL,BOOT_PART_2
LD BC,BOOT_PART_2.SIZE
LDIR
IFN DEFtrd_boot_small
LD HL,BOOT_PART_3
LD BC,BOOT_PART_3.SIZE
LDIR
ENDIF
;LD HL,.StartAddr + BOOT_PART_1.SIZE + BOOT_PART_2.SIZE - 3
LD HL,vROM_Boot.StartLineNum
LD (ZX_VARS.E_LINE),HL
;
@ -1226,9 +1229,10 @@ WG93_EXE_:
;**************************************
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
; [x] 13/06/2025 boot loader from TR-DOS vROM
IFN DEFtrd_boot_small
BOOT_PART_3: INCBIN 'build/boot.bin',429
.SIZE EQU $-BOOT_PART_3
ENDIF
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
;**************************************

View File

@ -239,7 +239,12 @@ RESTORE_CURRENT_DIR:
RET
;
;ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ
BOOT_PART_2: INCBIN 'build/boot.bin',248,181
BOOT_PART_2:
IF DEFtrd_boot_small
INCBIN 'build/boot.bin',248
ELSE
INCBIN 'build/boot.bin',248,181
ENDIF
.SIZE EQU $-BOOT_PART_2
;ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ
DISPLAY "TR_HDD_4.ASZ size: ",/A,$-File_Start

View File

@ -1,7 +1,214 @@
; device zxspectrum48
IF DEFtrd_boot_small
;======================================================================;
INCLUDE 'inc/rom_routines.inc'
INCLUDE 'Shared_Includes/constants/ZX_VARS.inc'
INCLUDE 'Shared_Includes/constants/zx_char_codes.inc'
INCLUDE 'Shared_Includes/constants/standart_colors.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
;======================================================================;
; Variables
;======================================================================;
ColumnNumber EQU #70E0
Columns EQU 3
;======================================================================;
;======================================================================;
ORG org_addr
bstart: DW #100 ; line number = 1
DW l1end - l1begin ; line length
l1begin: DB ZX_Token.border, ZX_Token.not, ZX_Token.pi, ":"
DB ZX_Token.randomize, ZX_Token.usr, ZX_Token.val, '"',"23907",'"'
DB ":", ZX_Token.rem, ":", ZX_Token.run
DB '"'
BootName: DB ZX_Char.tab, 10, 32
DB "MAXBOOT v9.1"
.size EQU $-BootName
DB '"', ZX_Char.carriage_return
;======================================================================;
;#70F6 - disk name
;======================================================================;
START_BOOT: ;Permanent current colours, etc, as set up by colour statements.
LD (iy+#53),COLORS.ZX.CYAN ;5d63 fd 36 53 05 . 6 S .
l5d67h: CALL BASIC_FN.x48.cls ;5d67 cd 6b 0d . k .
ADD HL,BC ;5d6a 09 .
; HL = 6801
; read 9 sectors
LD BC,#0905 ;5d6b 01 05 09 . . .
PUSH HL ;5d6e e5 .
CALL #3D13 ;5d6f cd 13 3d . . =
;PR-STRING
LD DE,BootName ;5d72 11 52 5d . R ]
LD C,BootName.size ;5d75 0e 0f . .
CALL #203C ;5d77 cd 3c 20 . <
;CHAN_OPEN
; Open channel 2 (main screen)
LD A,#02 ;5d7a 3e 02 > .
CALL #1601 ;5d7c cd 01 16 . . .
;
POP HL ;5d7f e1 .
LD D,H ;5d80 54 T
LD E,L ;5d81 5d ]
loopDir: LD BC,8 ; ᬥ饭¨¥ ­  ⨯ ä ©«  ;5d82 01 08 00 . . .
DEC (HL) ;5d85 35 5
JR Z,.nextFile ;5d86 28 28 ( (
INC (HL) ;5d88 34 4
JR Z,.EXIT ;5d89 28 2a ( *
;
PUSH HL ;5d8b e5 .
ADD HL,BC ;5d8c 09 .
LD A,(HL) ;5d8d 7e ~
POP HL ;5d8e e1 .
CP "B" ;5d8f fe 42 . B
JR NZ,.nextFile ;5d91 20 1d .
PUSH HL ;5d93 e5 .
;PRINT-A
LD A," " ;5d94 3e 20 >
RST #10 ;5d96 d7 .
; (#5C51) == #5D2B
; (#5D2B) == #09F4
; ¢ë¢®¤ ¨¬¥­¨ ä ©« 
.loopPrint: LD A,(HL) ;5d97 7e ~
RST #10 ;5d98 d7 .
LDI ;5d99 ed a0 . .
JP PE,.loopPrint ;5d9b ea 97 5d . . ]
; ¯®¤áçñâ ª®«®­®ª ¤«ï ¯à ¢¨«ì­®£® ¢ë¢®¤  ¨¬ñ­ ä ©«®¢
LD HL,ColumnNumber ;5d9e 21 e0 70 ! . p
INC (HL) ;5da1 34 4
LD A,(HL) ;5da2 7e ~
.loopColumn: SUB Columns ;5da3 d6 03 . .
JR Z,.ColumnThree ;5da5 28 05 ( .
JR NC,.loopColumn ;5da7 30 fa 0 .
LD A," " ;5da9 3e 20 >
RST #10 ;5dab d7 .
.ColumnThree: LD A," " ;5dac 3e 20 >
RST #10 ;5dae d7 .
;
POP HL ;5daf e1 .
.nextFile: LD C,#10 ;5db0 0e 10 . .
ADD HL,BC ;5db2 09 .
JR loopDir ;5db3 18 cd . .
.EXIT: ;
;;;;;;;;;;;;;;;;;
; B = 0
; <20>¨á®¢ «ª  ªãàá®à   âਡãâ ¬¨. <20>¥à¥¬¥é¥­¨¥ ªãàá®à 
MAIN_LOOP: LD C,B ;5db5 48 H
l5db6h: LD HL,#57F5 ;5db6 21 f5 57 ! . W
LD DE,#000B ;5db9 11 0b 00 . . .
LD A,D ;5dbc 7a z
l5dbdh: LD B,#03 ;5dbd 06 03 . .
l5dbfh: ADD HL,DE ;5dbf 19 .
CP C ;5dc0 b9 .
JR Z,l5dc9h ;5dc1 28 06 ( .
INC A ;5dc3 3c <
DJNZ l5dbfh ;5dc4 10 f9 . .
DEC HL ;5dc6 2b +
JR l5dbdh ;5dc7 18 f4 . .
;
l5dc9h: LD B,#0A ;5dc9 06 0a . .
LD DE,(#70DE) ;5dcb ed 5b de 70 . [ . p
LD (#70DE),HL ;5dcf 22 de 70 " . p
LD A,#05 ;5dd2 3e 05 > .
l5dd4h: LD (DE),A ;5dd4 12 .
INC DE ;5dd5 13 .
LD (HL),#1E ;5dd6 36 1e 6 .
INC HL ;5dd8 23 #
DJNZ l5dd4h ;5dd9 10 f9 . .
LD HL,#5C08 ;5ddb 21 08 5c ! . \
LD (HL),H ;5dde 74 t
l5ddfh: LD A,(HL) ;5ddf 7e ~
OR #20 ;5de0 f6 20 .
SUB #20 ;5de2 d6 20 .
JR Z,l5d67h ;5de4 28 81 ( .
SUB L ;5de6 95 .
LD B,#02 ;5de7 06 02 . .
l5de9h: JR Z,l5e0fh ;5de9 28 24 ( $
DEC A ;5deb 3d =
JR Z,l5e13h ;5dec 28 25 ( %
DEC A ;5dee 3d =
JR Z,l5e11h ;5def 28 20 (
DEC A ;5df1 3d =
JR Z,l5e0dh ;5df2 28 19 ( .
SUB B ;5df4 90 .
JR Z,RUN_BASIC ;5df5 28 2d ( -
SUB #03 ;5df7 d6 03 . .
JR Z,RUN_BASIC ;5df9 28 29 ( )
SUB #06 ;5dfb d6 06 . .
DJNZ l5de9h ;5dfd 10 ea . .
SUB #1E ;5dff d6 1e . .
JR Z,l5e11h ;5e01 28 0e ( .
SUB #0E ;5e03 d6 0e . .
JR Z,l5e0fh ;5e05 28 08 ( .
DEC A ;5e07 3d =
JR Z,l5e13h ;5e08 28 09 ( .
DEC A ;5e0a 3d =
JR NZ,l5ddfh ;5e0b 20 d2 .
l5e0dh: SUB #02 ;5e0d d6 02 . .
l5e0fh: SUB #04 ;5e0f d6 04 . .
l5e11h: ADD A,#02 ;5e11 c6 02 . .
l5e13h: ADD A,C ;5e13 81 .
LD BC,(ColumnNumber) ;5e14 ed 4b e0 70 . K . p
DEC C ;5e18 0d .
INC A ;5e19 3c <
JP M,l5db6h ;5e1a fa b6 5d . . ]
INC C ;5e1d 0c .
CP C ;5e1e b9 .
LD C,A ;5e1f 4f O
JR C,l5db6h ;5e20 38 94 8 .
JR MAIN_LOOP ;5e22 18 91 . .
;
; § ¯ã᪠¢ á¨ª 
; A = 0
RUN_BASIC: LD B,A ;5e24 47 G
LD A,C ;5e25 79 y
INC A ;5e26 3c <
LD C,L ;5e27 4d M
LD HL,#67F9 ;5e28 21 f9 67 ! . g
.loop: ADD HL,BC ;5e2b 09 .
DEC A ;5e2c 3d =
JR NZ,.loop ;5e2d 20 fc .
;
LD DE,BootName ;5e2f 11 52 5d . R ]
LDIR ;5e32 ed b0 . .
JP #3D03 ;5e34 c3 03 3d . . =
;ADD A,B ;5e37 80 .
;XOR D ;5e38 aa .
;DEFB 001h,000h ;5e39 01 00 . .
StartLineNum: DB 0
DW 0
;DB #80
l1end:
EXPORT StartLineNum
EXPORT org_addr
ELSE
;======================================================================;
INCLUDE 'inc/rom_routines.inc'
INCLUDE 'Shared_Includes/constants/ZX_VARS.inc'
INCLUDE 'Shared_Includes/constants/zx_char_codes.inc'
INCLUDE 'Shared_Includes/constants/standart_colors.inc'
;======================================================================;
;=======================================================================
collor_A EQU 0x03
@ -11,6 +218,15 @@ collor_M EQU 0x08
collor_T EQU 0x07
org_addr EQU #5d3b
;=======================================================================
DiskName EQU catBuff + #08F5
.size EQU 8
Columns EQU 3
vROMbootSize EQU bstart
;=======================================================================
ORG org_addr
@ -62,7 +278,7 @@ main: LD A,(.CurrentPage)
LD (var_collor),A
LD HL,#50CC
LD (var_printPos),HL
LD HL,catBuff + #08F5
LD HL,DiskName
LD B,8
@ -381,3 +597,5 @@ catBuff EQU #6000 ;$ + (-$&0x0f)
EXPORT StartLineNum
EXPORT org_addr
;
ENDIF