mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-01 05:31:52 +00:00
riven: more work on getting hd load to work
This commit is contained in:
parent
563ac02a3e
commit
e714cdf8be
@ -19,28 +19,6 @@ all: riven_disk00.dsk \
|
|||||||
|
|
||||||
####
|
####
|
||||||
|
|
||||||
|
|
||||||
#prorwts_ca65.o: prorwts_ca65.s
|
|
||||||
# ca65 -o prorwts_ca65.o prorwts_ca65.s -l prorwts_ca65.lst
|
|
||||||
|
|
||||||
###
|
|
||||||
|
|
||||||
#riven_hgr.2mg: \
|
|
||||||
# disk01_files/LEVEL_ARRIVAL
|
|
||||||
# $(CADIUS) CREATEVOLUME riven_hgr.2mg Riven 32MB
|
|
||||||
# $(CADIUS) CREATEFOLDER riven_hgr.2mg /Riven/DISK01
|
|
||||||
# $(CADIUS) CREATEFOLDER riven_hgr.2mg /Riven/DISK39
|
|
||||||
# $(CADIUS) CREATEFOLDER riven_hgr.2mg /Riven/DISK40
|
|
||||||
# $(CADIUS) CREATEFOLDER riven_hgr.2mg /Riven/DISK41
|
|
||||||
# $(CADIUS) CREATEFOLDER riven_hgr.2mg /Riven/DISK43
|
|
||||||
# $(CADIUS) ADDFILE riven_hgr.2mg /Riven/DISK01/ disk01_files/LEVEL_ARRIVAL
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
###
|
|
||||||
|
|
||||||
riven_disk00.dsk: QBOOT QLOAD TITLE_00 \
|
riven_disk00.dsk: QBOOT QLOAD TITLE_00 \
|
||||||
disk00_files/DISK00 \
|
disk00_files/DISK00 \
|
||||||
disk00_files/ATRUS \
|
disk00_files/ATRUS \
|
||||||
@ -334,7 +312,7 @@ graphics_title/riven_title.hgr.zx02:
|
|||||||
####
|
####
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *~ *.o *.lst generate_common \
|
rm -f *~ *.o *.lst dts_block generate_common \
|
||||||
QBOOT QLOAD QLOAD_HD \
|
QBOOT QLOAD QLOAD_HD \
|
||||||
TITLE_00 TITLE_01 TITLE_39 TITLE_40 TITLE_41 TITLE_43
|
TITLE_00 TITLE_01 TITLE_39 TITLE_40 TITLE_41 TITLE_43
|
||||||
cd disk00_files && make clean
|
cd disk00_files && make clean
|
||||||
@ -394,12 +372,34 @@ submit: riven_disk00.dsk riven_disk01.dsk \
|
|||||||
riven_disk40.dsk riven_disk41.dsk riven_disk43.dsk
|
riven_disk40.dsk riven_disk41.dsk riven_disk43.dsk
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
dts_block: dts_block.o
|
||||||
|
$(CC) $(LFLAGS) -o dts_block dts_block.o
|
||||||
|
|
||||||
|
dts_block.o: dts_block.c
|
||||||
|
$(CC) $(CFLAGS) -c dts_block.c
|
||||||
|
|
||||||
####
|
####
|
||||||
|
|
||||||
riven_hgr.2mg: PROBOOTHD QLOAD_HD
|
riven_hgr.2mg: dts_block PROBOOTHD QLOAD_HD \
|
||||||
|
TITLE_00 \
|
||||||
|
disk00_files/DISK00 \
|
||||||
|
disk00_files/ATRUS \
|
||||||
|
disk00_files/CYAN \
|
||||||
|
disk00_files/CAPTURED \
|
||||||
|
disk00_files/CHO \
|
||||||
|
disk00_files/LEVEL_START
|
||||||
$(PRODOSDIR)/mkprodosfs riven_hgr.2mg -n Riven -b 65535 -2
|
$(PRODOSDIR)/mkprodosfs riven_hgr.2mg -n Riven -b 65535 -2
|
||||||
$(PRODOS_RAW) riven_hgr.2mg 0 PROBOOTHD 0 0
|
$(PRODOS_RAW) riven_hgr.2mg 0 PROBOOTHD 0 0
|
||||||
$(PRODOS_RAW) riven_hgr.2mg 1024 QLOAD_HD 0 0
|
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 1 0` QLOAD_HD 0 0
|
||||||
|
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 0 2` disk00_files/DISK00 0 0
|
||||||
|
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 0 8` TITLE_00 0 0
|
||||||
|
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 2 0` disk00_files/CYAN 0 0
|
||||||
|
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 10 0` disk00_files/ATRUS 0 0
|
||||||
|
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 18 0` disk00_files/CAPTURED 0 0
|
||||||
|
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 26 0` disk00_files/CHO 0 0
|
||||||
|
$(PRODOS_RAW) riven_hgr.2mg `./dts_block 0 31 0` disk00_files/LEVEL_START 0 0
|
||||||
|
|
||||||
###
|
###
|
||||||
|
|
||||||
|
@ -12,15 +12,17 @@ API for loading:
|
|||||||
+ Prodos/HD based
|
+ Prodos/HD based
|
||||||
|
|
||||||
+ proboothd boots disk
|
+ proboothd boots disk
|
||||||
+ loads QLOAD equivalent to 1600
|
+ loads QLOAD to 1600
|
||||||
|
|
||||||
|
|
||||||
|
DDDD DDDT | TTTT TSSS
|
||||||
|
|
||||||
|
((disk+1)<<9)+(T<<3)+(S>>1)
|
||||||
|
|
||||||
|
((disk*512) + (T*8) + (S/2)
|
||||||
|
|
||||||
instead: block based
|
|
||||||
256k for each 140k disk, offset from there?
|
256k for each 140k disk, offset from there?
|
||||||
up to 128 disks
|
up to 128 disks
|
||||||
disk#*256k
|
|
||||||
disk#*512
|
|
||||||
top block# = disk*2+(top bit of track*16
|
|
||||||
bottom block# = (track*16)
|
|
||||||
|
|
||||||
|
|
||||||
only one copy of qload/title
|
only one copy of qload/title
|
||||||
|
18
games/riven_hgr/dts_block.c
Normal file
18
games/riven_hgr/dts_block.c
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
|
||||||
|
int disk,track,sector;
|
||||||
|
int block;
|
||||||
|
|
||||||
|
disk=atoi(argv[1]);
|
||||||
|
track=atoi(argv[2]);
|
||||||
|
sector=atoi(argv[3]);
|
||||||
|
|
||||||
|
block=((disk+1)<<9)|(track<<3)|(sector>>1);
|
||||||
|
|
||||||
|
printf("%d",block);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -1,31 +1,14 @@
|
|||||||
;license:BSD-3-Clause
|
;license:BSD-3-Clause
|
||||||
|
|
||||||
; based on minimal open/read binary file in ProDOS filesystem
|
; vaguely based on the minimal open/read binary file in ProDOS filesystem
|
||||||
; from 4cade
|
; from 4cade
|
||||||
;
|
;
|
||||||
;copyright (c) Peter Ferrie 2016-2019
|
;copyright (c) Peter Ferrie 2016-2019
|
||||||
|
|
||||||
.include "hardware.inc"
|
.include "hardware.inc"
|
||||||
|
.include "zp.inc"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; zpage usage, arbitrary selection except for the "ProDOS constant" ones
|
|
||||||
|
|
||||||
; this is the structure for a smartport command, at least
|
|
||||||
; for a read (command=1)
|
|
||||||
|
|
||||||
|
|
||||||
COMMAND = $42 ; ProDOS constant
|
|
||||||
UNIT = $43 ; ProDOS constant
|
|
||||||
ADRLO = $44 ; ProDOS constant
|
|
||||||
ADRHI = $45 ; ProDOS constant
|
|
||||||
BLOKLO = $46 ; ProDOS constant
|
|
||||||
BLOKHI = $47 ; ProDOS constant
|
|
||||||
|
|
||||||
; A2L = $3e
|
|
||||||
; A2H = $3f
|
|
||||||
; sizehi = $53
|
|
||||||
|
|
||||||
; start of boot sector, presumably how many sectors to load
|
; start of boot sector, presumably how many sectors to load
|
||||||
; 512 bytes on prodos/hard-disk(???)
|
; 512 bytes on prodos/hard-disk(???)
|
||||||
|
|
||||||
@ -73,8 +56,6 @@ proboot_start:
|
|||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; set up ProDOS shim
|
; set up ProDOS shim
|
||||||
|
|
||||||
; from IIgs smartport firmware manual
|
; from IIgs smartport firmware manual
|
||||||
@ -92,7 +73,6 @@ setup_loop:
|
|||||||
lsr
|
lsr
|
||||||
and #7
|
and #7
|
||||||
ora #$c0
|
ora #$c0
|
||||||
; sta $be30, Y ; ????
|
|
||||||
sta slot_smc+2
|
sta slot_smc+2
|
||||||
sta entry_smc+2 ; set up smartport/prodos entry point
|
sta entry_smc+2 ; set up smartport/prodos entry point
|
||||||
|
|
||||||
@ -100,20 +80,8 @@ slot_smc:
|
|||||||
lda $cfff
|
lda $cfff
|
||||||
sta entry_smc+1 ; set up rest of smartport/prodos entry
|
sta entry_smc+1 ; set up rest of smartport/prodos entry
|
||||||
|
|
||||||
; lda fakeMLI_e-$100, Y
|
|
||||||
; sta $be00+fakeMLI_e-fakeMLI, Y
|
|
||||||
; iny
|
|
||||||
; bne setup_loop ; ?????
|
|
||||||
|
|
||||||
; Y is 0 here
|
|
||||||
; ldy #0
|
|
||||||
; sty ADRLO
|
|
||||||
; stx $bf30 ; ?????
|
|
||||||
; sty $200 ; ?????
|
|
||||||
|
|
||||||
opendir:
|
|
||||||
|
|
||||||
|
|
||||||
|
;opendir:
|
||||||
|
|
||||||
; we want to load 5 blocks from 1024 to $1600
|
; we want to load 5 blocks from 1024 to $1600
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -41,6 +41,19 @@ MASK = $2E
|
|||||||
COLOR_MASK = $2F
|
COLOR_MASK = $2F
|
||||||
COLOR = $30
|
COLOR = $30
|
||||||
|
|
||||||
|
|
||||||
|
; this is the structure for a ProDOS smartport command, at least
|
||||||
|
; for a read (command=1)
|
||||||
|
|
||||||
|
COMMAND = $42 ; ProDOS constant
|
||||||
|
UNIT = $43 ; ProDOS constant
|
||||||
|
ADRLO = $44 ; ProDOS constant
|
||||||
|
ADRHI = $45 ; ProDOS constant
|
||||||
|
BLOKLO = $46 ; ProDOS constant
|
||||||
|
BLOKHI = $47 ; ProDOS constant
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
SEEDL = $4e
|
SEEDL = $4e
|
||||||
SEEDH = $4f
|
SEEDH = $4f
|
||||||
XMAX = $50
|
XMAX = $50
|
||||||
|
Loading…
Reference in New Issue
Block a user