From 7cc325e35bd5a5a556db1b140ef226941f0c3b07 Mon Sep 17 00:00:00 2001 From: 4am Date: Wed, 29 Aug 2018 15:27:30 -0400 Subject: [PATCH] working 128K check, new covers --- Makefile | 15 +++-- res/COVER | Bin 8192 -> 8192 bytes res/COVER.A2FC | Bin 16384 -> 16384 bytes res/_FileInformation.txt | 2 +- res/attic/COVER | Bin 0 -> 8192 bytes res/attic/COVER.A2FC | Bin 0 -> 16384 bytes src/4cade.a | 134 +++++++++++++++++++++++-------------- src/constants.a | 6 +- src/joystick.a | 26 ++++---- src/memcheck.a | 141 ++++++++++----------------------------- src/prorwts2.a | 16 ++--- 11 files changed, 156 insertions(+), 184 deletions(-) create mode 100644 res/attic/COVER create mode 100644 res/attic/COVER.A2FC diff --git a/Makefile b/Makefile index bad64f2ab..9fa689e1c 100644 --- a/Makefile +++ b/Makefile @@ -27,16 +27,17 @@ dsk: md asm cp res/_FileInformation.txt build/ $(CADIUS) ADDFILE build/"$(DISK)" "/${VOLUME}/" "res/PRODOS" >/dev/null $(CADIUS) ADDFILE build/"$(DISK)" "/${VOLUME}/" "build/LAUNCHER.SYSTEM" >/dev/null + $(CADIUS) ADDFILE build/"$(DISK)" "/${VOLUME}/" "res/games.conf" >/dev/null $(CADIUS) ADDFILE build/"$(DISK)" "/${VOLUME}/" "res/COVER" >/dev/null $(CADIUS) ADDFILE build/"$(DISK)" "/${VOLUME}/" "res/COVER.A2FC" >/dev/null $(CADIUS) CREATEFOLDER build/"$(DISK)" "/${VOLUME}/X/" >/dev/null - bin/do2po.py res/dsk/ build/po/ - rsync -a res/dsk/*.po build/po/ - bin/extract.py build/po/ | sh - rm -f build/X/**/.DS_Store - rm -f build/X/**/PRODOS - rm -f build/X/**/LOADER.SYSTEM - $(CADIUS) ADDFOLDER build/"$(DISK)" "/${VOLUME}/X" "build/X" +# bin/do2po.py res/dsk/ build/po/ +# rsync -a res/dsk/*.po build/po/ +# bin/extract.py build/po/ | sh >/dev/null +# rm -f build/X/**/.DS_Store +# rm -f build/X/**/PRODOS +# rm -f build/X/**/LOADER.SYSTEM +# $(CADIUS) ADDFOLDER build/"$(DISK)" "/${VOLUME}/X" "build/X" >/dev/null artwork: dsk # $(CADIUS) ADDFOLDER build/"$(DISK)" "/${VOLUME}/ARTWORK" "res/artwork" diff --git a/res/COVER b/res/COVER index c416e5de572a20449b2061c448b0b59488747d9a..d30c2245a984416d267fcdc4a3e4afefe4881391 100644 GIT binary patch literal 8192 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 yo;}bp<7!%=j|U~Yjn-(>ZJb*r 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 Be*XXf diff --git a/res/COVER.A2FC b/res/COVER.A2FC index 43a475b69dbce2f454ae2ee7f607f83b23048229..bcbf3e4cd508a4ac56755503d0a2778c662e701c 100644 GIT binary patch literal 16384 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 literal 16384 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 BlbQek diff --git a/res/_FileInformation.txt b/res/_FileInformation.txt index 9d5ff241d..a30324116 100644 --- a/res/_FileInformation.txt +++ b/res/_FileInformation.txt @@ -1,4 +1,4 @@ PRODOS=Type(FF),AuxType(0000),Access(C3) LAUNCHER.SYSTEM=Type(FF),AuxType(2000),Access(C3) -COVER=Type(06),AuxType(4000),Access(C3) +COVER=Type(06),AuxType(2000),Access(C3) COVER.A2FC=Type(06),AuxType(2000),Access(C3) diff --git a/res/attic/COVER b/res/attic/COVER new file mode 100644 index 0000000000000000000000000000000000000000..c416e5de572a20449b2061c448b0b59488747d9a GIT binary patch literal 8192 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 Be*XXf literal 0 HcmV?d00001 diff --git a/res/attic/COVER.A2FC b/res/attic/COVER.A2FC new file mode 100644 index 0000000000000000000000000000000000000000..43a475b69dbce2f454ae2ee7f607f83b23048229 GIT binary patch literal 16384 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 BlbQek literal 0 HcmV?d00001 diff --git a/src/4cade.a b/src/4cade.a index 9cd78749e..d0ad995c3 100644 --- a/src/4cade.a +++ b/src/4cade.a @@ -2,63 +2,99 @@ !to "build/LAUNCHER.SYSTEM",plain *=$2000 - jmp Start - !source "src/constants.a" !source "src/macros.a" + + jsr DisableAccelerator ; set to 1 MHz + jsr Has128K ; check for 128K (64K is OK, we just filter out some games) + ror MachineStatus + jsr HasJoystick ; check for joystick (keyboard-only is OK, we just filter out some games) + ror MachineStatus + + lda LCBANK1WRITE ; read ROM / write LC bank 1 + lda LCBANK1WRITE + ldx #$00 +FM lda FirstMover,x + sta $D000,x + inx + bne FM +; inc FM+2 +; inc FM+5 +; lda FM+5 +; cmp #>LastMover +; bcc FM + + jsr init ; initialize ProRWTS2 (bye bye ProDOS) + lda LCBANK1 ; read/write LC bank 1 + lda LCBANK1 + jmp Start + !source "src/memcheck.a" !source "src/joystick.a" !source "src/normfast.a" + !source "src/prorwts2.a" -!zone { +FirstMover +!pseudopc $D000 { +!zone Start - jsr $FE89 - jsr $FE93 - jsr $FB2F - jsr $FC58 - jsr Has128K - bmi @found128K - ldy #9 -- lda @s_needs128K,y - sta $400,y - dey - bpl - -@hang bmi @hang -@s_needs128K - !text "NEEDS 128K" -@found128K - jsr DisableAccelerator - jsr HasJoystick - bcc @hang - ldy #10 -- lda @s_nojoystick,y - sta $400,y - dey - bpl - - bmi @hang -@s_nojoystick - !text "NO JOYSTICK" -} + lda #$00 ; read first $2000 bytes + sta sizelo + lda #$20 + sta sizehi + lda #0 ; 0 = read into main memory + sta auxreq + lda #cmdread ; read (instead of write) + sta reqcmd + bit MachineStatus + bvs @ShowCover128K + lda #cover64 + sta namhi + jsr hddopendir ; call ProRWTS2 + clc + bcc @Show +@ShowCover128K + inc auxreq ; 1 = read into aux memory + lda #cover128 + sta namhi + jsr hddopendir ; call ProRWTS2 + lda #$20 ; read next $2000 bytes + sta sizehi + dec auxreq ; 0 = read into main memory + jsr hddrdwrpart ; call ProRWTS2 -; jsr init ; initialize ProRWTS2 -; lda $C08B -; lda $C08B -; lda #cover -; sta namhi -; lda #0 -; sta sizelo -; lda #$20 -; sta sizehi -; jsr hddopendir -; bit $C055 -; bit $C052 -; bit $C057 -; bit $C050 -;cover !byte cover_e-cover_b -;cover_b !text "COVER" -;cover_e + sta $C000 ; display double hi-res page 1 + sta $C00D + sta $C05E + sta $C001 +@Show + sta $C057 + sta $C052 + sta $C054 + sta $C050 + + bit $C010 +- lda $C000 + bpl - + bit $C010 + brk + +cover64 + !byte cover64_e-cover64_b +cover64_b + !text "COVER" +cover64_e +cover128 + !byte cover128_e-cover128_b +cover128_b + !text "COVER.A2FC" +cover128_e +} +LastMover ;LoadDHGR ; sta $C000 diff --git a/src/constants.a b/src/constants.a index 01c201b07..ef957ee25 100644 --- a/src/constants.a +++ b/src/constants.a @@ -16,8 +16,10 @@ SLOT3STATUS = $C017 ; read high bit only LCBANK2READ = $C080 ; read once to R RAM bank 2 / no write ROMIN = $C081 ; read twice to R ROM / W RAM bank 2 -LCBANK2 = $C083 ; read twice to R/W RAM bank 2 +ROMONLY = $C082 ; read once to R ROM / no write +;LCBANK2 = $C083 ; read twice to R/W RAM bank 2 LCBANK1READ = $C088 ; read once to R RAM bank 1 / no write +LCBANK1WRITE = $C089 ; read twice to R ROM / W RAM bank 1 LCBANK1 = $C08B ; read twice to R/W RAM bank 1 ; ROM @@ -29,3 +31,5 @@ PTR = $02 SRC = $04 DEST = $06 SAVE = $08 +MachineStatus =$FF ; bit 7 = 1 if machine has joystick + ; bit 6 = 1 if machine has 128K diff --git a/src/joystick.a b/src/joystick.a index 89dc9b68e..2e895eb9a 100644 --- a/src/joystick.a +++ b/src/joystick.a @@ -3,8 +3,8 @@ ; Checks whether computer has joystick connected ; ; in: none -; out: C clear if joystick found -; C set if no joystick found +; out: C set if joystick found +; C clear if no joystick found ; other flags clobbered ; A,X clobbered ; Y preserved @@ -13,28 +13,30 @@ ; (c) 1989 Broderbund Software ; https://github.com/jmechner/Prince-of-Persia-Apple-II/blob/master/01%20POP%20Source/Source/GRAFIX.S#L1225 ;------------------------------------------------------------------------------ +!zone { HasJoystick lda #0 - sta joyX - sta joyY + sta @joyX + sta @joyY lda $C070 ; reset analog input timers @loop ldx #1 @1 lda $C064,x ; check timer input bpl @beat - inc joyX,x ; still high, increment counter + inc @joyX,x ; still high, increment counter @nextpdl dex bpl @1 lda $C064 ora $C065 - bpl @rts ; both inputs low, we're done - lda joyX - ora joyY + bpl @yes ; both inputs low, we're done + lda @joyX + ora @joyY bpl @loop ; do it again - sec +@no clc +HIDE_NEXT_BYTE -@rts clc +@yes sec rts @beat nop bpl @nextpdl ; kill time -joyX !byte 0 -joyY !byte 0 +@joyX !byte 0 +@joyY !byte 0 +} diff --git a/src/memcheck.a b/src/memcheck.a index 2c595a235..6f687d63f 100644 --- a/src/memcheck.a +++ b/src/memcheck.a @@ -1,121 +1,52 @@ -Has128KStatus =$FF ; [byte] set by Has128K - ;------------------------------------------------------------------------------ ; Has128K -; Checks whether computer has auxiliary memory (i.e. 128K) +; Checks whether computer has functioning auxiliary memory (128K) ; -; in: none -; out: zero page $FF has -; $00 = not a //e -; $20 = //e but no 80-col card -; $40 = 80-col card but no aux mem -; $80 = aux mem detected (yay!) -; all other flags clobbered -; all registers clobbered -; zero page $1A-$1D clobbered +; in: none +; out: C set if 128K detected +; C clear if 128K not detected +; all other flags and registers clobbered +; zp $80-$9F clobbered +; ROM in memory (not LC RAM bank) ; -; original was AUX.MEM.CHECK from "Extra K" -; (c) 1986 Beagle Bros -; written by Alan Bird and Mark Simonsen, 1986-03-28 +; adapted from "Prince of Persia" by Jordan Mechner +; (c) 1989 Broderbund Software +; https://github.com/jmechner/Prince-of-Persia-Apple-II/blob/master/01%20POP%20Source/Source/BOOT.S#L119 ;------------------------------------------------------------------------------ +!zone { Has128K - php - sei - lda $E000 ; store values from language card - sta $1A ; (used later to determine which - lda $D000 ; RAM bank is active and reset it) - sta $1B - lda $D400 - sta $1C - lda $D800 - sta $1D - lda ROMIN - lda ROMIN + sta ROMONLY ; need ROM for machine ID byte lda MACHINEID - cmp #$06 - bne @noiie + cmp #6 + bne @no ; earlier than //e -> no 128K lda SLOT3STATUS - bmi @no80col - lda AUXMEMSTATUS - bmi @yesauxmem - lda AUXZPSTATUS - bmi @yesauxmem - ldy #$28 -- ldx @checker,Y - lda $100,Y - sta @checker,Y - txa - sta $100,Y - dey + bmi @no ; no 80-column card -> no 128K + ldx #@checklen +- lda @checker,x + sta $80,x + dex bpl - - jmp $100 -@postcheck - ldy #$28 -- lda @checker,Y - sta $100,Y - dey - bpl - - bcs @noauxmem -@yesauxmem - lda #$80 - +HIDE_NEXT_2_BYTES -@noauxmem - lda #$40 - +HIDE_NEXT_2_BYTES -@no80col - lda #$20 - +HIDE_NEXT_2_BYTES -@noiie - lda #$00 - sta Has128KStatus - lda $E000 - cmp $1A - bne @tryRAMbank1 - lda $D000 - cmp $1B - bne @tryRAMbank1 - lda $D400 - cmp $1C - bne @tryRAMbank1 - lda $D800 - cmp $1D - beq @done -@tryRAMbank1 - lda LCBANK1READ - lda $E000 - cmp $1A - bne @tryRAMbank2 - lda $D000 - cmp $1B - bne @tryRAMbank2 - lda $D400 - cmp $1C - bne @tryRAMbank2 - lda $D800 - cmp $1D - beq @done -@tryRAMbank2 - lda LCBANK2READ -@done - plp - lda Has128KStatus - rts + jmp $80 ; check if auxmem actually works @checker lda #$EE sta WRITEAUXMEM sta READAUXMEM - sta $800 - lda $C00 + sta $0C00 + sta $0800 + lda $0C00 cmp #$EE - bne @auxworks - asl $C00 - lda $800 - cmp $C00 - bne @auxworks - sec + bne @no + asl $0C00 + asl + cmp $0C00 + bne @no + cmp $0800 + bne @yes +@no clc +HIDE_NEXT_BYTE -@auxworks - clc - sta WRITEMAINMEM +@yes sec +@finish sta WRITEMAINMEM sta READMAINMEM - jmp @postcheck + rts +@checklen=*-@checker +} diff --git a/src/prorwts2.a b/src/prorwts2.a index d6c298fe2..488158c7b 100644 --- a/src/prorwts2.a +++ b/src/prorwts2.a @@ -13,7 +13,7 @@ ver_02 = 1 ;place no code before init label below. ;user-defined options - verbose_info = 1 ;set to 1 to enable display of memory usage + verbose_info = 0 ;set to 1 to enable display of memory usage enable_floppy = 0 ;set to 1 to enable floppy drive support poll_drive = 0 ;set to 1 to check if disk is in drive, recommended if allow_multi is enabled override_adr = 0 ;set to 1 to require an explicit load address @@ -25,10 +25,10 @@ ver_02 = 1 ;seeking with aligned_read=1 requires non-zero offset allow_multi = 0 ;set to 1 to allow multiple floppies check_chksum = 0 ;set to 1 to enforce checksum verification for floppies - allow_subdir = 0 ;set to 1 to allow opening subdirectories to access files + allow_subdir = 1 ;set to 1 to allow opening subdirectories to access files might_exist = 0 ;set to 1 if file is not known to always exist already ;makes use of status to indicate success or failure - allow_aux = 0 ;set to 1 to allow read/write directly to/from aux memory + allow_aux = 1 ;set to 1 to allow read/write directly to/from aux memory ;requires load_high to be set for arbitrary memory access ;else driver must be running from same memory target ;i.e. running from main if accessing main, running from aux if accessing aux @@ -38,11 +38,11 @@ ver_02 = 1 always_trees = 0 ;set to 1 if the only file access involves tree files ;not compatible with allow_subdir, allow_saplings detect_treof = 0 ;detect EOF during read of tree files - allow_sparse = 0 ;enable support for reading sparse files - bounds_check = 0 ;set to 1 to prevent access beyond the end of the file + allow_sparse = 1 ;enable support for reading sparse files + bounds_check = 1 ;set to 1 to prevent access beyond the end of the file ;but limits file size to 64k-2 bytes. - no_interrupts= 1 ;set to 1 to disable interrupts across calls - detect_err = 1 ;set to 1 to to detect errors in no_interrupt mode + no_interrupts= 0 ;set to 1 to disable interrupts across calls + detect_err = 0 ;set to 1 to to detect errors in no_interrupt mode swap_zp = 0 ;set to 1 to include code to preserve zpage ;used only by rwts_mode rwts_mode = 0 ;set to 1 to enable emulation of DOS RWTS when running from hard disk @@ -2102,13 +2102,11 @@ hddfoundname iny !if (allow_subdir + allow_saplings + allow_trees) > 0 { sta hdddirbuf !if fast_trees = 0 { - sta treeblklo } ;fast_trees iny lda (bloklo), y sta hdddirbuf + 256 !if fast_trees = 0 { - sta treeblkhi } ;fast_trees !if (allow_trees and always_trees) = 0 { plp