| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| 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™.