Megalextoria
Retro computing and gaming, sci-fi books, tv and movies and other geeky stuff.

Home » Digital Archaeology » Computer Arcana » Apple » Apple II » Porting ProDOS the "Easy" Way and Other Apple /// Things
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Porting ProDOS the "Easy" Way and Other Apple /// Things [message #372439] Sat, 18 August 2018 04:33 Go to next message
Steve Nickolas is currently offline  Steve Nickolas
Messages: 2036
Registered: October 2012
Karma: 0
Senior Member
Currently I'm working on some code to fake the Apple ][ bankswitching.
I've written a first draft, but I haven't really gotten anywhere yet (I
did, though, locate all the LDAs and BITs that affect the language card in
version 1.4, and write a first experiment which went down like a lead
zeppelin.)

The logic was thus:

1. C500-C7FF is always visible and can be written to if unlocked - in
fact, this is how I load the boot code for the Apple ][ side, I write a
Disk ][ ROM into C600-C6FF. So basically I use a jump table at C500 to
set up the paging code.

2. The page register is FFEF: it should usually be F0 for compatibility,
but F1 should work on any /// and gives you a different bank from
2000-9FFF. So I want to store "ROM" at 2000-4FFF, followed by main LC
memory from 5000-7FFF, and alternate LC memory from 8000-8FFF. When
"Paging", I want to copy the current bank back, then copy the desired bank
up...but I need to preserve registers and avoid using any ZP!

3. AND FFDF wih F7 to unlock, and OR it with 08 to lock, C000-FFFF.

I might have to do some rejigging to avoid stepping on FFD0-FFEF, as I did
with the ROM.

By the way, I altered the Copy ][+ DOS 3.3 "no boot sector" to be
polyglottal:

0000: 01 38 B0 03 4C A8 A0 A6 2B BD 88 C0 8A 4A 4A 4A
0010: 4A 09 C0 85 11 A9 00 85 10 20 89 FE 20 93 FE 20
0020: 2F FB 20 84 FE 20 58 FC A2 00 BD 3B 08 F0 06 20
0030: ED FD E8 D0 F5 20 0C FD 6C 10 00 8D 8D 8D 8D 8D
0040: A0 A0 A0 A0 A0 D4 C8 C9 D3 A0 C4 C9 D3 CB A0 C8
0050: C1 D3 A0 CE CF A0 C4 CF D3 A0 D4 CF A0 C2 CF CF
0060: D4 AE 8D 8D 8D 8D A0 A0 A0 A0 A0 A0 A0 A0 C9 CE
0070: D3 C5 D2 D4 A0 C1 CE CF D4 C8 C5 D2 A0 C4 C9 D3
0080: CB A0 C1 CE C4 8D 8D A0 A0 A0 A0 A0 A0 A0 A0 D0
0090: D2 C5 D3 D3 A0 C1 A0 CB C5 D9 A0 D4 CF A0 D2 C5
00A0: C2 CF CF D4 AE A0 A0 00 20 63 FB A2 00 BD 3B A0
00B0: F0 06 20 39 FC E8 D0 F5 20 0C FD 4C A1 F6 00 00
00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

(It works exactly the same on an Apple /// as an Apple ][.)

-uso.
Re: Porting ProDOS the "Easy" Way and Other Apple /// Things [message #372534 is a reply to message #372439] Sun, 19 August 2018 07:38 Go to previous message
Steve Nickolas is currently offline  Steve Nickolas
Messages: 2036
Registered: October 2012
Karma: 0
Senior Member
I've made the first step: ProDOS-8 now loads to the splash screen.

The next step is trying to rewrite the detection to only check slots 1-4,
and to automagically assume a Disk ][ in 6. Initially it's going to
use just the Apple /// firmware if anything, but I think I'm going to
alter the ATINIT hook to allow the Apple ][ firmware to be loaded in on
demand.

-uso.
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: tool to read boot sector ?
Next Topic: Apple II character set entry on wikipedia
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Tue Apr 23 10:16:30 EDT 2024

Total time taken to generate the page: 0.00256 seconds