TIP: Click on subject to list as thread! ANSI
echo: apple
to: comp.sys.apple2
from: BLuRry
date: 2009-02-01 12:50:38
subject: Boot hacking and AGS 3.0 updates

I abandoned my first boot0/boot1 loader method, which more or less
just dumped sectors of data directly into ram and jumped to the DOS
cold start routine.  In the interest of maximum compatibility I
devised a plan to replicate boot0/boot1 processes using a minimally-
modified boot1 stub, with some help and suggestions from Nick.  Here's
what I do:

1) Load RWTS serial driver at $25c
2) Look at Track 0, Sector 0 and look at first byte to determine how
many sectors to load
3) Load sectors into memory the same way that the C6 rom does normally
-- HOWEVER I do a find/replace on the sectors looking for:
LSR
LSR
LSR
LSR
ORA #$C0
and replace with
LSR
LSR
LSR
LSR
LDA #$02
This is why I picked $25c -- $c65c is normally used to read a sector
during boot1
4) Write a small stub to $300 to set ZP locations the same way that C6
rom does (slot, IO Buffer address, track), and then jumps to $801
5) When $25c is called, it sends the ZP data relevant to track/sector
and IO Buffer to the java program.  The sector is pumped into the
apple's memory to the requested location
6) At the end of handling the sector, the RWTS driver performs a jump
to $801 (same as C6)

As the boot process continues, sectors are scanned when sent over to
look for certain patterns indicating other RWTS routines.  The code is
not 100% relocatable so the address where the RWTS sector is loaded is
assumed to be where it will be used, and the code is relocated on the
fly to that base address.  Those sectors have replacement versions
that work more or less in similar ways and have corresponding java
logic to handle the different variations. (right now DOS 3.3 and
MiniRWTS)

In addition to everything DOS3.3-based working, I've found some other
things that were DOS 3.3 based with custom boot sectors are also
working, here and there at least.  One I'm very ecstatic to see
working is Rad Warrior. :-D

-B
--- SBBSecho 2.12-Win32
* Origin: Derby City Gateway (1:2320/0)
SEEN-BY: 10/1 3 34/999 120/228 123/500 128/2 140/1 222/2 226/0 236/150 249/303
SEEN-BY: 250/306 261/20 38 100 1404 1406 1410 1418 266/1413 280/1027 320/119
SEEN-BY: 393/11 396/45 633/260 267 712/848 800/432 801/161 189 2222/700
SEEN-BY: 2320/100 105 200 2905/0
@PATH: 2320/0 100 261/38 633/260 267

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.