mirror of
https://github.com/Tolik-Trek/ZX-SP-ROMs.git
synced 2026-06-15 09:21:45 +03:00
release 25/06/2025
This commit is contained in:
parent
1d9480f20d
commit
d9052b6952
22
SP_TRDOS.ASM
22
SP_TRDOS.ASM
@ -6,21 +6,19 @@
|
|||||||
;!TODO ¨á¯®«ì§®¢ âì ¢¥è¨¥ ¯®àâë #E0 ¨ #E3 ¤«ï á®åà ¥¨ï ॣ¨áâ஢ ¯à¨ ¯¥à¥å¢ ⥠¢á直å #3D2F
|
;!TODO ¨á¯®«ì§®¢ âì ¢¥è¨¥ ¯®àâë #E0 ¨ #E3 ¤«ï á®åà ¥¨ï ॣ¨áâ஢ ¯à¨ ¯¥à¥å¢ ⥠¢á直å #3D2F
|
||||||
|
|
||||||
; [ ] boot loader from TR-DOS vROM
|
; [ ] 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
|
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
|
if compiling_boot then
|
||||||
print("--[ BOOT Build OK ]--")
|
print("--[ BOOT Build OK ]--")
|
||||||
--sj.insert_define("_BOOT_COMPILED_", "1")
|
|
||||||
else
|
else
|
||||||
print("--[ BOOT Build ERROR!!! ]--")
|
print("--[ BOOT Build ERROR!!! ]--")
|
||||||
--sj.insert_define("_BOOT_COMPILED_", "0")
|
|
||||||
os.exit(1)
|
os.exit(1)
|
||||||
end
|
end
|
||||||
ENDLUA
|
ENDLUA
|
||||||
; IF _BOOT_COMPILED_ = 0
|
|
||||||
; assert 1, Error whith boot.asm
|
|
||||||
; ENDIF
|
|
||||||
|
|
||||||
DEVICE ZXSPECTRUM128
|
DEVICE ZXSPECTRUM128
|
||||||
ORG 0
|
ORG 0
|
||||||
@ -595,7 +593,11 @@ vROM_BOOT: LD HL,(ZX_VARS.ADR_RET)
|
|||||||
.continue: LD HL,(ZX_VARS.FL_START)
|
.continue: LD HL,(ZX_VARS.FL_START)
|
||||||
LD (ZX_VARS.ADR_RET),HL ; ¢®ááâ ¢«¨¢ ¥¬ ADR_RET
|
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
|
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_START),HL ; ¤«¨ ¯à®£à ¬¬ë á ¯¥à¥¬¥ë¬¨.
|
||||||
LD (ZX_VARS.FL_LEN),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 HL,BOOT_PART_2
|
||||||
LD BC,BOOT_PART_2.SIZE
|
LD BC,BOOT_PART_2.SIZE
|
||||||
LDIR
|
LDIR
|
||||||
|
IFN DEFtrd_boot_small
|
||||||
LD HL,BOOT_PART_3
|
LD HL,BOOT_PART_3
|
||||||
LD BC,BOOT_PART_3.SIZE
|
LD BC,BOOT_PART_3.SIZE
|
||||||
LDIR
|
LDIR
|
||||||
|
ENDIF
|
||||||
|
|
||||||
;LD HL,.StartAddr + BOOT_PART_1.SIZE + BOOT_PART_2.SIZE - 3
|
|
||||||
LD HL,vROM_Boot.StartLineNum
|
LD HL,vROM_Boot.StartLineNum
|
||||||
LD (ZX_VARS.E_LINE),HL
|
LD (ZX_VARS.E_LINE),HL
|
||||||
;
|
;
|
||||||
@ -1226,9 +1229,10 @@ WG93_EXE_:
|
|||||||
;**************************************
|
;**************************************
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||||||
; [x] 13/06/2025 boot loader from TR-DOS vROM
|
; [x] 13/06/2025 boot loader from TR-DOS vROM
|
||||||
|
IFN DEFtrd_boot_small
|
||||||
BOOT_PART_3: INCBIN 'build/boot.bin',429
|
BOOT_PART_3: INCBIN 'build/boot.bin',429
|
||||||
.SIZE EQU $-BOOT_PART_3
|
.SIZE EQU $-BOOT_PART_3
|
||||||
|
ENDIF
|
||||||
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
|
||||||
;**************************************
|
;**************************************
|
||||||
|
|
||||||
|
|||||||
@ -239,7 +239,12 @@ RESTORE_CURRENT_DIR:
|
|||||||
RET
|
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
|
.SIZE EQU $-BOOT_PART_2
|
||||||
;ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ
|
;ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ
|
||||||
DISPLAY "TR_HDD_4.ASZ size: ",/A,$-File_Start
|
DISPLAY "TR_HDD_4.ASZ size: ",/A,$-File_Start
|
||||||
|
|||||||
@ -1,7 +1,214 @@
|
|||||||
; device zxspectrum48
|
IF DEFtrd_boot_small
|
||||||
|
|
||||||
|
;======================================================================;
|
||||||
INCLUDE 'inc/rom_routines.inc'
|
INCLUDE 'inc/rom_routines.inc'
|
||||||
INCLUDE 'Shared_Includes/constants/ZX_VARS.inc'
|
INCLUDE 'Shared_Includes/constants/ZX_VARS.inc'
|
||||||
INCLUDE 'Shared_Includes/constants/zx_char_codes.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
|
collor_A EQU 0x03
|
||||||
@ -11,6 +218,15 @@ collor_M EQU 0x08
|
|||||||
collor_T EQU 0x07
|
collor_T EQU 0x07
|
||||||
org_addr EQU #5d3b
|
org_addr EQU #5d3b
|
||||||
|
|
||||||
|
;=======================================================================
|
||||||
|
DiskName EQU catBuff + #08F5
|
||||||
|
.size EQU 8
|
||||||
|
|
||||||
|
Columns EQU 3
|
||||||
|
|
||||||
|
vROMbootSize EQU bstart
|
||||||
|
;=======================================================================
|
||||||
|
|
||||||
|
|
||||||
ORG org_addr
|
ORG org_addr
|
||||||
|
|
||||||
@ -62,7 +278,7 @@ main: LD A,(.CurrentPage)
|
|||||||
LD (var_collor),A
|
LD (var_collor),A
|
||||||
LD HL,#50CC
|
LD HL,#50CC
|
||||||
LD (var_printPos),HL
|
LD (var_printPos),HL
|
||||||
LD HL,catBuff + #08F5
|
LD HL,DiskName
|
||||||
|
|
||||||
|
|
||||||
LD B,8
|
LD B,8
|
||||||
@ -381,3 +597,5 @@ catBuff EQU #6000 ;$ + (-$&0x0f)
|
|||||||
EXPORT StartLineNum
|
EXPORT StartLineNum
|
||||||
EXPORT org_addr
|
EXPORT org_addr
|
||||||
;
|
;
|
||||||
|
|
||||||
|
ENDIF
|
||||||
Loading…
Reference in New Issue
Block a user