This commit is contained in:
4am 2019-09-20 19:27:21 -04:00
commit db5961b606
5 changed files with 53 additions and 69 deletions

View File

@ -1,8 +0,0 @@
a = new ActiveXObject("scripting.filesystemobject")
for (b = new Enumerator(a.GetFolder(WScript.Arguments(0)).files); !b.atEnd(); b.moveNext())
{
if (a.GetExtensionName(b.item()).toLowerCase() == "po")
{
new ActiveXObject("WScript.Shell").run("cadius.exe EXTRACTVOLUME " + '"' + b.item() + '"' + " build/X/", 0)
}
}

View File

@ -9,14 +9,14 @@
; D000..E5F4 - persistent data structures (per-game cheat categories, ; D000..E5F4 - persistent data structures (per-game cheat categories,
; gGlobalPrefsStore, gGamesListStore) ; gGlobalPrefsStore, gGamesListStore)
; ...unused... ; ...unused...
; EAAE..FFF9 - main program code ; EA5C..FFF9 - main program code
; FFFA..FFFF - NMI, reset, IRQ vectors ; FFFA..FFFF - NMI, reset, IRQ vectors
; ;
; LC RAM BANK 2 ; LC RAM BANK 2
; D000..D3FF - ProRWTS data ; D000..D3FF - ProRWTS data
; D400..D5FF - ProRWTS code ; D400..D5FF - ProRWTS code
; D600..D9FF - HGR font data ; D600..D9FF - HGR font data
; DA00..DF83 - HGR font code & ProRWTS glue code ; DA00..DF2F - HGR font code & ProRWTS glue code
; ...unused... ; ...unused...
; DFF0..DFFF - backup of stack (during gameplay and self-running demos) ; DFF0..DFFF - backup of stack (during gameplay and self-running demos)
;------------------------------------------------------------------------------ ;------------------------------------------------------------------------------

View File

@ -215,10 +215,10 @@ gCurrentlyVisibleSlideshowIndex=*+1
Launch Launch
jsr SwitchToBank2 jsr SwitchToBank2
jsr SaveOrRestoreScreenHoles ; save screen hole contents jsr SaveOrRestoreScreenHoles ; save screen hole contents
ldx #$F1 ldy #$F1
- lda $100,x - lda $100,y
sta $DF00,x ; back up stack sta $DF00,y ; back up stack
inx iny
bne - bne -
tsx ; back up stack pointer tsx ; back up stack pointer
stx $DFF0 stx $DFF0
@ -230,5 +230,10 @@ Launch
sta $bf00,x sta $bf00,x
dex dex
bpl - bpl -
tya
ldy #$18
- sta $bf57,y
dey
bne -
jmp $106 ; jump to pre-launch code jmp $106 ; jump to pre-launch code
} }

View File

@ -21,11 +21,8 @@ ProDOS_enter
!set CloseHandles = @imp_close !set CloseHandles = @imp_close
stx ProDOS_savedX+1 stx ProDOS_savedX+1
sty ProDOS_savedY+1 sty ProDOS_savedY+1
pha
jsr @swap_zp jsr @swap_zp
pla pla
tax
pla
tay tay
pla pla
sta @fetchaddr+1 sta @fetchaddr+1
@ -43,14 +40,11 @@ ProDOS_enter
pha pha
tya tya
pha pha
php
txa
pha
@request @request
lda #$d1 lda #$d1
cmp #$80 cmp #$80
beq @do_readblock beq @do_readblock
cmp #$81 ;I don't remember if I used this, but it's cheap to add cmp #$81
beq @do_writeblock beq @do_writeblock
cmp #$c4 cmp #$c4
beq @do_getattrib beq @do_getattrib
@ -69,9 +63,9 @@ ProDOS_enter
cmp #$ce cmp #$ce
beq @do_seek beq @do_seek
cmp #$d1 cmp #$d1
beq @do_eof ;;bne @do_fatal
;;any others?? @do_eof
jmp ProDOS_fatal jmp @imp_eof
@do_readblock @do_readblock
@do_writeblock @do_writeblock
jmp @imp_rdwrblock jmp @imp_rdwrblock
@ -92,8 +86,8 @@ ProDOS_enter
jmp @restore_zp jmp @restore_zp
@do_seek @do_seek
jmp @imp_seek jmp @imp_seek
@do_eof @do_fatal
jmp @imp_eof ;;jmp ProDOS_fatal
@imp_rdwrblock @imp_rdwrblock
and #$7f and #$7f
@ -345,15 +339,6 @@ ProDOS_enter
@restore_zp @restore_zp
jsr @swap_zp jsr @swap_zp
pla
lsr
lsr
lsr
lsr
and #8
plp
adc #0
tax
jmp ProDOS_exit jmp ProDOS_exit
@handle @handle
@ -492,54 +477,52 @@ promote
!pseudopc $bf00 { !pseudopc $bf00 {
php php
sei sei
lda $c012 bit $c083
!byte $24 !byte $24
!if * != $bf06 { !if * != $bf06 {
!error "$BF06 misplaced (",*,")" !error "$BF06 misplaced (",*,")"
} }
rts ;clock interface, must be RTS on real ProDOS if program uses $20x rts ;clock interface, must be RTS on real ProDOS if program uses $20x
asl
lda $c011
bit $c083 bit $c083
jmp ProDOS_LC jmp ProDOS_enter
!text "4Q" ProDOS_exit
ProDOS_savedX
ldx #$d1
plp
clc
bcc ProDOS_savedY
!if * != $bf13 { !if * != $bf13 {
!error "$BF13 misplaced (",*,")" !error "$BF13 misplaced (",*,")"
} }
!byte $c1 !byte $c1
!word $c2d1, $c3d1, $c4d1, $c5d1, $c6d1, $c7d1 !word $c2d1, $c3d1, $c4d1, $c5d1, $c6d1, $c7d1
ProDOS_LC
bit $c083
jmp ProDOS_enter
ProDOS_exit
sta $c082, x
ProDOS_savedX
ldx #$d1
ProDOS_savedY ProDOS_savedY
ldy #$d1 ldy #$d1
plp sta $c081
clc
!byte $24
ProDOS_unit
!if * != $bf30 {
!error "$BF30 misplaced (",*,")"
}
!byte $d1
lda #0 lda #0
rts rts
ProDOS_unit
!if * > $bf30 {
!error "$BF30 misplaced (",*,")"
} else {
!if * != $bf30 {
!fill $bf30-*
}
}
!byte $d1
ProDOS_fatal ;only for debugging, will be removed ProDOS_fatal ;only for debugging, will be removed
bit $c081 ;; bit $c081
pha ;; pha
jsr $fe89 ;; jsr $fe89
jsr $fe93 ;; jsr $fe93
pla ;; pla
jsr $fdda ;; jsr $fdda
jmp $ff65 ;; jmp $ff65
*=$bf58 ;;*=$bf58
!fill $18 ;; !fill $18 ;filled by init instead
ProDOS_prefix=$bfd0 ProDOS_prefix=$bfd0
; !fill $2e ; !fill $2e

View File

@ -20,11 +20,9 @@ set CADIUS=cadius
if "%1" equ "asm" ( if "%1" equ "asm" (
:asm :asm
call :md call :md
call :asmlauncher
call :asmfx call :asmfx
call :asmprelaunch call :asmprelaunch
2>build\relbase.log %ACME% src\4cade.a
for /f "tokens=*" %%q in (build\relbase.log) do set _make=%%q
%ACME% -DRELBASE=$!_make:~-5,4! -r build\4cade.lst src\4cade.a
goto :EOF goto :EOF
) )
@ -93,7 +91,7 @@ cscript /nologo bin\rsync.js res\fx\* build\FX >>build\log
%CADIUS% CREATEFOLDER "build\%DISK%" "/%VOLUME%/X/" >>build\log %CADIUS% CREATEFOLDER "build\%DISK%" "/%VOLUME%/X/" >>build\log
cscript /nologo bin\do2po.js res\dsk build\po cscript /nologo bin\do2po.js res\dsk build\po
cscript /nologo bin\rsync.js res\dsk\*.po build\po cscript /nologo bin\rsync.js res\dsk\*.po build\po
cscript /nologo bin\extract.js build\po >>build\log for %%q in (build\po\*.po) do %CADIUS% EXTRACTVOLUME "%%q" build\X\ >>build\log
echo y|1>nul 2>nul del /s build\X\.DS_Store echo y|1>nul 2>nul del /s build\X\.DS_Store
echo y|1>nul 2>nul del /s build\X\PRODOS echo y|1>nul 2>nul del /s build\X\PRODOS
echo y|1>nul 2>nul del /s build\X\LOADER.SYSTEM echo y|1>nul 2>nul del /s build\X\LOADER.SYSTEM
@ -130,6 +128,12 @@ goto :EOF
2>nul md build\PRELAUNCH 2>nul md build\PRELAUNCH
goto :EOF goto :EOF
:asmlauncher
2>build\relbase.log %ACME% src\4cade.a
for /f "tokens=*" %%q in (build\relbase.log) do set _make=%%q
%ACME% -DRELBASE=$!_make:~-5,4! -r build\4cade.lst src\4cade.a
goto :EOF
:asmfx :asmfx
for %%q in (src\fx\*.a) do ( for %%q in (src\fx\*.a) do (
for /f "tokens=* usebackq" %%k in (`find "^!to" %%q`) do set _to=%%k for /f "tokens=* usebackq" %%k in (`find "^!to" %%q`) do set _to=%%k