mirror of
https://github.com/MikhaelKaa/zx_cartridge.git
synced 2026-03-16 14:37:57 +03:00
Batty its work!
This commit is contained in:
parent
7aaf4a7b21
commit
6865968f76
BIN
Content/Batty/b48v.bin
Normal file
BIN
Content/Batty/b48v.bin
Normal file
Binary file not shown.
@ -6,19 +6,19 @@ TAP_FILE="batty.tap"
|
||||
|
||||
echo "Извлекаем блоки из $TAP_FILE..."
|
||||
|
||||
# Извлекаем каждый блок в отдельный файл
|
||||
tzxlist -d 0 "$TAP_FILE"
|
||||
tzxlist -d 1 "$TAP_FILE"
|
||||
tzxlist -d 2 "$TAP_FILE"
|
||||
tzxlist -d 3 "$TAP_FILE"
|
||||
|
||||
# Переименовываем в понятные имена
|
||||
mv 00000000.dat loader0.bin # загрузчик
|
||||
mv 00000001.dat loader1.bin # загрузчик
|
||||
mv 00000002.dat screen.scr # картинка
|
||||
mv 00000003.dat main.bin # код игры
|
||||
rm *.dsc
|
||||
rm *.hdr
|
||||
|
||||
# Показываем результат
|
||||
rm *.zx0
|
||||
./../tools/zx0/build/zx0 screen.scr
|
||||
./../tools/zx0/build/zx0 main.bin
|
||||
|
||||
# main.bin -> 0x6800 (26624) точка входа в main
|
||||
|
||||
ls -la
|
||||
@ -4,6 +4,7 @@ build: clean
|
||||
mkdir -p build
|
||||
@${SJASMPLUS} ./ram_part.asm --syntax=F
|
||||
@${SJASMPLUS} ./main.asm --syntax=F
|
||||
# @${SJASMPLUS} ./test.asm --syntax=F
|
||||
|
||||
clean:
|
||||
# @rm -f -r ./assets/*.zx0
|
||||
|
||||
@ -11,10 +11,21 @@ start:
|
||||
|
||||
ORG 100
|
||||
main:
|
||||
ld bc, 0x7ffd
|
||||
ld a, 0b00010000
|
||||
ld (0x5B5C), a
|
||||
out (c), a
|
||||
|
||||
ld bc, 0xdf7f
|
||||
ld a, 0b00000001
|
||||
out (c), a
|
||||
|
||||
ld hl, 16384
|
||||
ld de, 16385
|
||||
ld bc, 49151
|
||||
ld (hl), 0
|
||||
ldir
|
||||
|
||||
ld hl, batty_scr
|
||||
ld de, 0x4000
|
||||
call dzx0_standard
|
||||
@ -23,19 +34,24 @@ main:
|
||||
ld de, 0x6800
|
||||
call dzx0_standard
|
||||
|
||||
ld hl, bvars
|
||||
ld de, 0x5c00
|
||||
ld bc, bvars_end - bvars
|
||||
ldir
|
||||
|
||||
ld hl, ram_part
|
||||
ld de, 0x6700
|
||||
ld bc, ram_part_end - ram_part
|
||||
ldir
|
||||
|
||||
ld bc, 65535
|
||||
call delay
|
||||
ld bc, 65535
|
||||
call delay
|
||||
ld bc, 65535
|
||||
call delay
|
||||
ld bc, 65535
|
||||
call delay
|
||||
; ld bc, 65535
|
||||
; call delay
|
||||
; ld bc, 65535
|
||||
; call delay
|
||||
; ld bc, 65535
|
||||
; call delay
|
||||
; ld bc, 65535
|
||||
; call delay
|
||||
|
||||
jp 0x6700
|
||||
|
||||
@ -43,22 +59,29 @@ main:
|
||||
|
||||
; Процедура задержки
|
||||
; bc - время
|
||||
delay:
|
||||
dec bc
|
||||
ld a, b
|
||||
or c
|
||||
jr nz, delay
|
||||
ret
|
||||
; delay:
|
||||
; dec bc
|
||||
; ld a, b
|
||||
; or c
|
||||
; jr nz, delay
|
||||
; ret
|
||||
|
||||
INCLUDE "./tools/zx0/z80/dzx0_standard.asm"
|
||||
|
||||
batty_scr:
|
||||
INCBIN "./Batty/screen.scr.zx0"
|
||||
|
||||
batty_bin:
|
||||
INCBIN "./Batty/main.bin.zx0"
|
||||
|
||||
ram_part:
|
||||
INCBIN "./build/ram_part_6700.bin"
|
||||
ram_part_end
|
||||
|
||||
bvars:
|
||||
INCBIN "./Batty/b48v.bin"
|
||||
bvars_end
|
||||
|
||||
end:
|
||||
; Выводим размер бинарника.
|
||||
display "Cartridge BIOS code size: ", /d, end - start
|
||||
|
||||
@ -9,6 +9,17 @@ start:
|
||||
ld a, 0b10000000
|
||||
out (c), a
|
||||
|
||||
ld sp, 0x6000
|
||||
|
||||
ld iy, 23610
|
||||
|
||||
wait_any_key:
|
||||
ld bc, 0x00fe
|
||||
in a, (c)
|
||||
and 0x1f
|
||||
cp 0x1f
|
||||
jr z, wait_any_key
|
||||
|
||||
jp 0x6800
|
||||
|
||||
end:
|
||||
|
||||
48
Content/test.asm
Normal file
48
Content/test.asm
Normal file
@ -0,0 +1,48 @@
|
||||
; Простейший тест переключения банков для карика
|
||||
; Банк 0 всегда в 0000-1FFF, переключаемый в 2000-3FFF
|
||||
; Цикл: переключить банк, прочитать байт из 2000h, повторить
|
||||
|
||||
DEVICE ZXSPECTRUM48
|
||||
|
||||
ORG 0
|
||||
start:
|
||||
di
|
||||
jp main
|
||||
|
||||
; векторы RST (просто возврат)
|
||||
ORG 0x08
|
||||
ret
|
||||
ORG 0x10
|
||||
ret
|
||||
ORG 0x18
|
||||
ret
|
||||
ORG 0x20
|
||||
ret
|
||||
ORG 0x28
|
||||
ret
|
||||
ORG 0x30
|
||||
ret
|
||||
ORG 0x38
|
||||
ret
|
||||
|
||||
ORG 0x100
|
||||
main:
|
||||
ld bc, 0xdf7f ; порт выбора банка
|
||||
ld d, 0 ; начальный банк
|
||||
loop:
|
||||
ld a, d
|
||||
out (c), a ; переключить банк
|
||||
nop ; небольшая пауза
|
||||
nop
|
||||
ld hl, 0x2000
|
||||
ld a, (hl) ; прочитать первый байт банка
|
||||
inc d ; следующий банк
|
||||
jr loop
|
||||
|
||||
end:
|
||||
; Выводим размер бинарника.
|
||||
display "test code size: ", /d, end - start
|
||||
display "test code start: ", /d, start
|
||||
display "test code end: ", /d, end
|
||||
|
||||
SAVEBIN "build/test_0000.bin", start, 16384
|
||||
Loading…
Reference in New Issue
Block a user