Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.sys.apple2.programmer > #2851 > unrolled thread
| Started by | John Brooks <jbrooks@blueshiftinc.com> |
|---|---|
| First post | 2016-07-28 20:17 -0700 |
| Last post | 2016-08-16 09:56 +0000 |
| Articles | 12 on this page of 32 — 11 participants |
Back to article view | Back to comp.sys.apple2.programmer
Prodos8 2.0.3 info John Brooks <jbrooks@blueshiftinc.com> - 2016-07-28 20:17 -0700
Re: Prodos8 2.0.3 info Michael J. Mahon <mjmahon@aol.com> - 2016-07-31 00:07 -0500
Re: Prodos8 2.0.3 info John Brooks <jbrooks@blueshiftinc.com> - 2016-07-30 22:26 -0700
Re: Prodos8 2.0.3 info Oliver Schmidt <ol.sc@web.de> - 2016-07-31 09:26 +0000
Re: Prodos8 2.0.3 info John Brooks <jbrooks@blueshiftinc.com> - 2016-07-31 08:25 -0700
Re: Prodos8 2.0.3 info dempson@actrix.gen.nz (David Empson) - 2016-08-01 09:05 +1200
Re: Prodos8 2.0.3 info Antoine Vignau <antoine.vignau@laposte.net> - 2016-07-31 22:56 -0700
Re: Prodos8 2.0.3 info Oliver Schmidt <ol.sc@web.de> - 2016-08-01 12:29 +0000
Re: Prodos8 2.0.3 info Antoine Vignau <antoine.vignau@laposte.net> - 2016-08-01 08:45 -0700
Re: Prodos8 2.0.3 info John Brooks <jbrooks@blueshiftinc.com> - 2016-08-09 20:43 -0700
Re: Prodos8 2.0.3 info Antoine Vignau <antoine.vignau@laposte.net> - 2016-08-09 22:50 -0700
Re: Prodos8 2.0.3 info Oliver Schmidt <ol.sc@web.de> - 2016-08-10 07:12 -0700
Re: Prodos8 2.0.3 info John Brooks <jbrooks@blueshiftinc.com> - 2016-08-10 08:52 -0700
Re: Prodos8 2.0.3 info D Finnigan <dog_cow@macgui.com> - 2016-08-10 16:12 +0000
Re: Prodos8 2.0.3 info gids.rs@sasktel.net - 2016-08-10 22:27 -0700
Re: Prodos8 2.0.3 info gids.rs@sasktel.net - 2016-08-10 22:35 -0700
Re: Prodos8 2.0.3 info Michael Pohoreski <michael.pohoreski@gmail.com> - 2016-08-11 08:31 -0700
Re: Prodos8 2.0.3 info John Brooks <jbrooks@blueshiftinc.com> - 2016-08-11 10:32 -0700
Re: Prodos8 2.0.3 info Michael Pohoreski <michael.pohoreski@gmail.com> - 2016-08-11 12:35 -0700
Re: Prodos8 2.0.3 info qkumba <peter.ferrie@gmail.com> - 2016-08-12 09:24 -0700
Re: Prodos8 2.0.3 info Michael Pohoreski <michael.pohoreski@gmail.com> - 2016-08-12 10:08 -0700
Re: Prodos8 2.0.3 info John Brooks <jbrooks@blueshiftinc.com> - 2016-08-13 21:37 -0700
Re: Prodos8 2.0.3 info Antoine Vignau <antoine.vignau@laposte.net> - 2016-08-14 15:32 -0700
Re: Prodos8 2.0.3 info Michael Pohoreski <michael.pohoreski@gmail.com> - 2016-08-15 09:10 -0700
Re: Prodos8 2.0.3 info John Brooks <jbrooks@blueshiftinc.com> - 2016-08-15 13:41 -0700
Re: Prodos8 2.0.3 info Michael Pohoreski <michael.pohoreski@gmail.com> - 2016-08-16 18:19 -0700
Re: Prodos8 2.0.3 info geoff body <gbody4@bigpond.com> - 2016-08-17 07:49 -0700
Re: Prodos8 2.0.3 info John Brooks <jbrooks@blueshiftinc.com> - 2016-08-17 10:04 -0700
Re: Prodos8 2.0.3 info David Schmidt <schmidtd@my-deja.com> - 2016-08-15 13:45 -0400
Re: Prodos8 2.0.3 info John Brooks <jbrooks@blueshiftinc.com> - 2016-08-15 13:49 -0700
Re: Prodos8 2.0.3 info David Schmidt <schmidtd@my-deja.com> - 2016-08-15 17:36 -0400
Re: Prodos8 2.0.3 info Oliver Schmidt <ol.sc@web.de> - 2016-08-16 09:56 +0000
Page 2 of 2 — ← Prev page 1 [2]
| From | Michael Pohoreski <michael.pohoreski@gmail.com> |
|---|---|
| Date | 2016-08-12 10:08 -0700 |
| Message-ID | <26914584-5333-46db-8a60-95e13b4f5c24@googlegroups.com> |
| In reply to | #2928 |
On Friday, August 12, 2016 at 9:24:51 AM UTC-7, qkumba wrote: > > Ah, File: XRW1, Page 280 > > blockio cld ; this must be first as it is an id value > > I always wondered why they didn't read the softswitches instead? > Something like: > > LDA $C012 > STA lcstate > LDA $C011 > PHA ;save bank and LC state > LDA $C08B > LDA $C08B ;enable bank 1 > JSR $D000 ;call driver > PLA > LSR > LSR > LSR > LSR > ASL lcstate > ADC #0 > TAX > STA $C082,X ;restore bank and LC state I'm surmising because ProDOS initially supported the Apple ][ and $C011 / $C012 were not supported until the //e. C010 49168 KBDSTRB OECG WR Keyboard Strobe C011 49169 RDLCBNK2 ECG R7 Status of Selected $Dx Bank C012 49170 RDLCRAM ECG R7 Status of $Dx ROM / $Dx RAM
[toc] | [prev] | [next] | [standalone]
| From | John Brooks <jbrooks@blueshiftinc.com> |
|---|---|
| Date | 2016-08-13 21:37 -0700 |
| Message-ID | <29341a02-64a5-453e-b03c-d64f1a80f3bc@googlegroups.com> |
| In reply to | #2851 |
On Friday, July 29, 2016 at 2:09:55 AM UTC-7, John Brooks wrote: > While looking at ProDOS8 2.0.3 to see how hard it would be to remove the 65c02 opcode dependencies, I made notes and a rough page-by-page memory map. > > In case this is useful to other Apple II programmers, here are my notes & memory map: > > Prodos8 v2.0.3 > > 0/D000 (LC bank 2) > Bank 2 ID byte: used to determine which LC bank is active > <255 unused bytes> > > 0/D100 - 0/D3FF (LC bank 2) > Quit code: One of 3 possible quit routines, 40col for II & II+, 80col for //e & //c, or GSOS restore. All 3 quit handlers are loaded at boot and only one of the 3 is moved here. 768 bytes used, 2*768=1.5K discarded at boot. > > 0/D400 - 0/DFFF (LC bank 2) > <3072 bytes unused> > > > 0/D000 (LC Bank 1) > Disk II read/write block. Calls RWTS twice as 1 block = 2 sectors > Disk II RWTS > > 0/D100 > Disk II seek > Disk II 6&2 decode table > > 0/D200 > Disk II 6&2 encode table > > 0/D300 > Buffer for 2-bit-per-byte data during encode/decode > Misc Disk II & RWTS vars > Step phase timing table > Millisecond wait routine for spin-up & stepping > Read sector address > > 0/D400 > Read sector data > Set track > Check drive > > 0/D500 > Write sector > > 0/D600 > 6&2 pre-nibblize > Reset stepper phases > Convert block to Trk/Sec > Smartport status buffer > Smartport unit numbers buffer > > 0/D700 > Pathname buffer > Read clock routine: Thunderclock & IIGS clock driver loaded at boot. One moved here > <64 bytes unused> > > 0/D800 > FCB: File Control Block buffer > > 0/D900 > VCB: Volume Control Block buffer > > 0/DA00 > Volume bit map block 1st half > > 0/DB00 > Volume bit map block 2nd half > > 0/DC00 > Misc block buffer 1st half > > 0/DD00 > Misc block buffer 2nd half > > 0/DE00 > Main entry to the P8 MLI > Clean up and exit MLI back to caller > Call a specified device driver > > 0/DF00 > Init IRQ manager > IRQ received entry point > Dispatch IRQ to one of 4 user installed handlers > Misc IRQ-related buffers & vars > > 0/E000 > MLI Error handler > System death handler > Call a device driver or the file manager based on the MLI command number > > 0/E100 > Set Prefix > Get Prefix > Find FCB > > 0/E200 > Check if device is online > > 0/E300 > Create a file > > 0/E400 > Create a file > Touch date & time on a file > > 0/E500 > Touch date & time on all parent dirs of a file > Find a file > > 0/E600 > Find a file > > 0/E700 > Find a file > > 0/E800 > Find a file > Find a VCB > Mount a new device in a VCB > > 0/E900 > Test for a duplicate volume > Found a duplicate volume > Count free blocks in a volume bit map > > 0/EA00 > Free up blocks from the volume bit map > Allocate 1 block in the volume bit map > > 0/EB00 > Allocate 1 block in the volume bit map > Write the volume bit map back to the device > > 0/EC00 > Set file mark > Seek into a file, traversing seed, sapling, or tree block lists > > 0/ED00 > Seek into a file, traversing seed, sapling, or tree block lists > Seek into a directory > > 0/EE00 > Read or Write a block from a file > Update FCB after read/write > Open file > > 0/EF00 > Open file > Open directory > Read from file > > 0/F000 > Read from file > > 0/F100 > Read a partial block from a file > Read a directory > Calculate file mark > > 0/F200 > Reset file EOF after a write error > Adjust EOF after a write > Write to a file > Write to a sapling file > Write to a tree file > > 0/F300 > Write a partial block > Handle allocating blocks to a tree > Handle allocating blocks to a sapling > > 0/F400 > Allocate a block for writing > Test for write protect > Close file > Flush file > > 0/F500 > Flush file > Update EOF > Report an error > Set EOF > > 0/F600 > Set EOF > Adjust an FCB > > 0/F700 > Get EOF > Newline > Get Info > Set Info > Rename > > 0/F800 > Rename > > 0/F900 > Rename > Delete a file > Delete a tree file > Clear a directory file entry > Update the free block count on the device > Delete a directory > > 0/FA00 > Delete a directory > Remove blocks from a tree > Free blocks from a seedling > Free blocks from a sapling > Free blocks from a tree > > 0/FB00 > Free blocks from a tree > Reduce a tree to a sapling, or a sapling to a seedling > Free 1 block > Allocate a 1k user buffer > > 0/FC00 > Allocate a 1k user buffer > Get 1k user buffer > Free 1k user buffer > Allocate 1 page in mem bitmap > Get file buffer > Set file buffer > Copy quit handler from LC bank 2 to 0/1000 and call it > > 0/FD00 > Remap smartport devices to unuse slot/drive locations > Smartport remap data > MLI data & buffers > > 0/FE00 > MLI data & buffers > > 0/FF00 > /RAM driver entry point > /RAM copy & call functions > IRQ intercept routine > 6502 vectors > > 1/0200 > /RAM driver > /RAM command handler > /RAM format > /RAM block write > /RAM block read > > 1/0300 > /RAM block read > Clear block for unallocated blocks > Construct volume bit map from partial /RAM bitmap > > -JB > twitter: @JBrooksBSI Quick update. I've got the core P8 MLI code converted to 6502 (code between $DE00 and $FEFF). It took about 100 extra bytes compared to the 65c02 code. I made room for the code expansion by moving the system death function & msg text to the first page of LC bank 2 ($D001). Moving the sysdeath machinery to LC seemed like a better option than moving the smartport port remapping code & tables out of the core MLI. I still need to get all the P8 drivers & 40-col quit code to pure 6502, fix the P8 startup to work on 6502 systems, and do lots of testing (any volunteers?), but it's looking good so far. -JB twitter: @JBrooksBSI
[toc] | [prev] | [next] | [standalone]
| From | Antoine Vignau <antoine.vignau@laposte.net> |
|---|---|
| Date | 2016-08-14 15:32 -0700 |
| Message-ID | <4ae3f67a-9bbb-436c-a245-65a0acee2370@googlegroups.com> |
| In reply to | #2940 |
Congrats John. I'd be happy to test... Antoine
[toc] | [prev] | [next] | [standalone]
| From | Michael Pohoreski <michael.pohoreski@gmail.com> |
|---|---|
| Date | 2016-08-15 09:10 -0700 |
| Message-ID | <1e8995e1-f26c-4461-a36d-e5e0c5f72c68@googlegroups.com> |
| In reply to | #2940 |
On Saturday, August 13, 2016 at 9:37:01 PM UTC-7, John Brooks wrote: > Quick update. I've got the core P8 MLI code converted to 6502 (code between $DE00 and $FEFF). It took about 100 extra bytes compared to the 65c02 code. I made room for the code expansion by moving the system death function & msg text to the first page of LC bank 2 ($D001). Which sources are you using? i.e. Is this a binary patch? Or an assembly language source code patch? Michael
[toc] | [prev] | [next] | [standalone]
| From | John Brooks <jbrooks@blueshiftinc.com> |
|---|---|
| Date | 2016-08-15 13:41 -0700 |
| Message-ID | <f400894c-0041-42f6-ba32-a61de6c0ca9e@googlegroups.com> |
| In reply to | #2944 |
On Monday, August 15, 2016 at 9:10:33 AM UTC-7, Michael Pohoreski wrote: > On Saturday, August 13, 2016 at 9:37:01 PM UTC-7, John Brooks wrote: > > Quick update. I've got the core P8 MLI code converted to 6502 (code between $DE00 and $FEFF). It took about 100 extra bytes compared to the 65c02 code. I made room for the code expansion by moving the system death function & msg text to the first page of LC bank 2 ($D001). > > Which sources are you using? > > i.e. Is this a binary patch? Or an assembly language source code patch? > > Michael It's the IIGS ROM3 firmware & GSOS 6.01 source from MacGUI from about a year ago. I've got P8 2.4 booting on a a couple OS X II+ emulators and running Copy II+ 8 utilities which seem to be fully functional. I've got a couple bugs to fix before it's ready for major testing though. > i.e. Is this a binary patch? Or an assembly language source code patch? It's source code built with MPW AsmIIGS. There are about 200 patch points in P8 2.0.3 for a total of about 1000 lines of code (so far) to make P8 2.x work on 6502 ][, ][+, & un-enhanced //e. -JB Twitter: @JBrooksBSI
[toc] | [prev] | [next] | [standalone]
| From | Michael Pohoreski <michael.pohoreski@gmail.com> |
|---|---|
| Date | 2016-08-16 18:19 -0700 |
| Message-ID | <ef0bcd6b-11ef-436b-8367-b89c3cdde45d@googlegroups.com> |
| In reply to | #2946 |
On Monday, August 15, 2016 at 1:41:41 PM UTC-7, John Brooks wrote: > It's the IIGS ROM3 firmware & GSOS 6.01 source from MacGUI from about a year ago. Is that source mirrored anywhere these days? > It's source code built with MPW AsmIIGS. There are about 200 patch points in P8 2.0.3 for a total of about 1000 lines of code (so far) to make P8 2.x work on 6502 ][, ][+, & un-enhanced //e. Sweet ! Definitely following this thread. :-)
[toc] | [prev] | [next] | [standalone]
| From | geoff body <gbody4@bigpond.com> |
|---|---|
| Date | 2016-08-17 07:49 -0700 |
| Message-ID | <2fa31dbb-7a94-4927-a6a4-8299e1a8971b@googlegroups.com> |
| In reply to | #2955 |
I was wondering if there is going to be AppleTalk support. I thought AppleTalk uses lc bank 2 starting at $D400 GeoffB
[toc] | [prev] | [next] | [standalone]
| From | John Brooks <jbrooks@blueshiftinc.com> |
|---|---|
| Date | 2016-08-17 10:04 -0700 |
| Message-ID | <a4e2684f-13eb-4199-b3c7-4d3846bcef2f@googlegroups.com> |
| In reply to | #2960 |
On Wednesday, August 17, 2016 at 7:49:02 AM UTC-7, geoff body wrote: > I was wondering if there is going to be AppleTalk support. I thought AppleTalk uses lc bank 2 starting at $D400 > > GeoffB I haven't tested Appletalk, but it is unchanged between 2.0.3 and 2.4. ProDOS 2.4 leaves LC bank 2 $D400-$DFFF available like in 2.0.3. The only 'extra' memory used by P8 2.4 vs P8 2.0.3 is LC bank 2 $D001-$D04F which now has the system death message function & text that was moved out of main LC to make room for the 6502 compatibility. -JB
[toc] | [prev] | [next] | [standalone]
| From | David Schmidt <schmidtd@my-deja.com> |
|---|---|
| Date | 2016-08-15 13:45 -0400 |
| Message-ID | <nosv3s$fem$1@dont-email.me> |
| In reply to | #2940 |
On 8/14/2016 12:37 AM, John Brooks wrote: > [...] > I still need to get all the P8 drivers & 40-col quit code to pure 6502, fix the P8 startup to work on 6502 systems, and do lots of testing (any volunteers?), but it's looking good so far. I think I can come up with a few tests.
[toc] | [prev] | [next] | [standalone]
| From | John Brooks <jbrooks@blueshiftinc.com> |
|---|---|
| Date | 2016-08-15 13:49 -0700 |
| Message-ID | <c1775397-17f5-4d0d-8709-d552a1b9cebe@googlegroups.com> |
| In reply to | #2945 |
On Monday, August 15, 2016 at 10:45:33 AM UTC-7, schmidtd wrote: > On 8/14/2016 12:37 AM, John Brooks wrote: > > [...] > > I still need to get all the P8 drivers & 40-col quit code to pure 6502, fix the P8 startup to work on 6502 systems, and do lots of testing (any volunteers?), but it's looking good so far. > > I think I can come up with a few tests. That would be great! My first computer was a ][+, but I haven't used one in over 30 years since I moved to the //e when it came out. One oddity is that when I boot my ProDOS 2.4 on the ][+ emulators, I see a flashing period in the upper left corner of the screen. Thinking this was a bug due to my 6502 changes, I booted ProDOS 1.9 to check the 'correct' reference behavior, but it had the same problem. The flashing period seems to go away if I turn off the emulator's slot-3 80 column card support, but now I'm uncertain about whether this is a problem with the emulators or a bug in ProDOS. Any ideas on the above, and/or any tests you think are good for initial P8 validation? -JB Twitter: @JBrooksBSI
[toc] | [prev] | [next] | [standalone]
| From | David Schmidt <schmidtd@my-deja.com> |
|---|---|
| Date | 2016-08-15 17:36 -0400 |
| Message-ID | <notcl2$v6i$1@dont-email.me> |
| In reply to | #2947 |
On 8/15/2016 4:49 PM, John Brooks wrote: > On Monday, August 15, 2016 at 10:45:33 AM UTC-7, schmidtd wrote: >> On 8/14/2016 12:37 AM, John Brooks wrote: >>> [...] >>> I still need to get all the P8 drivers & 40-col quit code to pure 6502, fix the P8 startup to work on 6502 systems, and do lots of testing (any volunteers?), but it's looking good so far. >> >> I think I can come up with a few tests. > > That would be great! My first computer was a ][+, but I haven't used one in over 30 years since I moved to the //e when it came out. > > One oddity is that when I boot my ProDOS 2.4 on the ][+ emulators, I see a flashing period in the upper left corner of the screen. Thinking this was a bug due to my 6502 changes, I booted ProDOS 1.9 to check the 'correct' reference behavior, but it had the same problem. The flashing period seems to go away if I turn off the emulator's slot-3 80 column card support, but now I'm uncertain about whether this is a problem with the emulators or a bug in ProDOS. > > Any ideas on the above, and/or any tests you think are good for initial P8 validation? [arg, reply vs. follow-up strikes again] Yes, the period is the code trying to initialize the 80 column firmware. I am a stickler for II+ compatibility, as a few other devs will attest. My tests would be to see if ADTPro can enumerate devices in a sane way (and of course repeated read-write cycles produces identical disk images), that a really crowded list of devices gets re-mapped correctly as 2.0.3 will but 1.9 won't, and that running an SPF torture-test doesn't cause any undue harm.
[toc] | [prev] | [next] | [standalone]
| From | Oliver Schmidt <ol.sc@web.de> |
|---|---|
| Date | 2016-08-16 09:56 +0000 |
| Message-ID | <nounvm$gcg$1@news.albasani.net> |
| In reply to | #2947 |
Hi John, > Any ideas on the above, and/or any tests you think are good for initial P8 validation? Given that you're using LC bank 2 in a way not used before I'd check that interrupts during P8 operation still work as expected. I'd do so both on a ][+ and on a enhanced //e as their ROM support for interrupts differs a _lot_. Just my two cents, Oliver
[toc] | [prev] | [standalone]
Page 2 of 2 — ← Prev page 1 [2]
Back to top | Article view | comp.sys.apple2.programmer
csiph-web