Discussion:
Ideas: ProDOS /// and Saturn 80K FPBASIC
Add Reply
Steve Nickolas
2017-07-23 06:57:03 UTC
Reply
Permalink
Raw Message
These ideas came back to mind after watching the video of John Brooks at
Kfest discussing ProDOS-8 2.5.

Some time ago, I wrote a program that loaded from SOS, set up a modified
Apple ][+ ROM, and allows Apple ][ software to run on the /// without
locking it into the ][ mode.

I thought: Would it be possible to reorganize ProDOS-8 to use the Apple
/// banked memory instead of the language card, along with a font (how
does one even load these? x.x) and thus run some Apple ][+ ProDOS software
on the ///?

Also: How hard would it be to patch ProDOS to use the second bank of a
Saturn card to hold FPBASIC? I started to write a tool for that, but
didn't get very far because I think I may have to hack more than just the
BF page.

-uso.
g***@sasktel.net
2017-07-23 20:59:09 UTC
Reply
Permalink
Raw Message
Post by Steve Nickolas
These ideas came back to mind after watching the video of John Brooks at
Kfest discussing ProDOS-8 2.5.
Some time ago, I wrote a program that loaded from SOS, set up a modified
Apple ][+ ROM, and allows Apple ][ software to run on the /// without
locking it into the ][ mode.
I thought: Would it be possible to reorganize ProDOS-8 to use the Apple
/// banked memory instead of the language card, along with a font (how
does one even load these? x.x) and thus run some Apple ][+ ProDOS software
on the ///?
Also: How hard would it be to patch ProDOS to use the second bank of a
Saturn card to hold FPBASIC? I started to write a tool for that, but
didn't get very far because I think I may have to hack more than just the
BF page.
-uso.
Wouldn't using the 2nd bank of a Saturn Card be the same as using the Aux Mem Language Card. If so, I already resolved that when I got the Split program working that allows an applesoft program to be run from Aux Mem with Prodos in memory.

You would just need to change the softswitches used for the Saturn Card.

I had uploaded it to Asimov at one time. I will see if I can find it.
D Finnigan
2017-07-23 22:35:22 UTC
Reply
Permalink
Raw Message
Post by g***@sasktel.net
Wouldn't using the 2nd bank of a Saturn Card be the same as using the Aux
Mem Language Card. If so, I already resolved that when I got the Split
program working that allows an applesoft program to be run from Aux Mem
with Prodos in memory.
You would just need to change the softswitches used for the Saturn Card.
I had uploaded it to Asimov at one time. I will see if I can find it.
Are you talking about this?
http://macgui.com/downloads/?file_id=9063&keywords=split
--
]DF$
Apple II 40th Anniversary User's Guide:
http://macgui.com/newa2guide/
g***@sasktel.net
2017-07-24 05:11:06 UTC
Reply
Permalink
Raw Message
Post by D Finnigan
Post by g***@sasktel.net
Wouldn't using the 2nd bank of a Saturn Card be the same as using the Aux
Mem Language Card. If so, I already resolved that when I got the Split
program working that allows an applesoft program to be run from Aux Mem
with Prodos in memory.
You would just need to change the softswitches used for the Saturn Card.
I had uploaded it to Asimov at one time. I will see if I can find it.
Are you talking about this?
http://macgui.com/downloads/?file_id=9063&keywords=split
--
]DF$
http://macgui.com/newa2guide/
That is the Dos 3.3 version. I revised it to work under Prodos.

It is part of the Ramworks code I used to run 255 programs, one in each bank.

https://groups.google.com/forum/?hl=en#!searchin/comp.sys.apple2/240$20programs|sort:relevance/comp.sys.apple2/pqo-jwRNZ3I/pz-RZme9hzEJ

Looks like the disk image I uploaded to Asimov got lost in the abyss.

Do you have an upload link to MacGui, David? I can upload it for Steve to download.
D Finnigan
2017-07-24 12:56:28 UTC
Reply
Permalink
Raw Message
Post by g***@sasktel.net
Looks like the disk image I uploaded to Asimov got lost in the abyss.
Do you have an upload link to MacGui, David? I can upload it for Steve to download.
No. And I'm not just blowing you off. The procedure for adding files is
involved, so that's why new files were always added in large batches.
--
]DF$
Apple II 40th Anniversary User's Guide:
http://macgui.com/newa2guide/
Steve Nickolas
2017-07-24 04:51:31 UTC
Reply
Permalink
Raw Message
Post by g***@sasktel.net
Wouldn't using the 2nd bank of a Saturn Card be the same as using the
Aux Mem Language Card. If so, I already resolved that when I got the
Split program working that allows an applesoft program to be run from
Aux Mem with Prodos in memory.
You would just need to change the softswitches used for the Saturn Card.
I had uploaded it to Asimov at one time. I will see if I can find it.
Well, yes and no. I think ProDOS recognizes and uses aux-lc for stuff?
It wouldn't need any of the extra Saturn RAM.

According to the Saturn manual, the banks are selected through C0x4-7 and
C0xC-F. So as ProDOS seems to use C08B to initiate write mode, I'd either
just use C085 to switch to the "ROM" and C084 to switch to the ProDOS
bank, or I'd use C088 C085 to switch to the "ROM" and C084 C08B C08B to
switch to ProDOS.

I might need some space for a "reinit after reset" as well.

-uso.
g***@sasktel.net
2017-07-24 05:26:15 UTC
Reply
Permalink
Raw Message
Post by Steve Nickolas
Post by g***@sasktel.net
Wouldn't using the 2nd bank of a Saturn Card be the same as using the
Aux Mem Language Card. If so, I already resolved that when I got the
Split program working that allows an applesoft program to be run from
Aux Mem with Prodos in memory.
You would just need to change the softswitches used for the Saturn Card.
I had uploaded it to Asimov at one time. I will see if I can find it.
Well, yes and no. I think ProDOS recognizes and uses aux-lc for stuff?
It wouldn't need any of the extra Saturn RAM.
According to the Saturn manual, the banks are selected through C0x4-7 and
C0xC-F. So as ProDOS seems to use C08B to initiate write mode, I'd either
just use C085 to switch to the "ROM" and C084 to switch to the ProDOS
bank, or I'd use C088 C085 to switch to the "ROM" and C084 C08B C08B to
switch to ProDOS.
I might need some space for a "reinit after reset" as well.
-uso.
Actually, that was the beauty of my Prodos split program. You could use Aux LC with a revised applesoft but the Main 48 kb was still in effect. Prodos doesn't use Aux LC as is, but I believe Aux LC was supposed to have been reserved for Prodos expansion.

So, it would be the same with the Saturn card. With the bank that you want to use is switched in, you can use your modified FP Basic and the Main 48 kb will still be in effect and access to Prodos is still available.

It is not necessary to reinit after a reset as the only patch I made was at $BF00 which pointed to the softswitch routine I made that switches the LC banks between where Prodos resides and where the revised FPBasic resides, be it in Aux LC or a Saturn LC.
g***@sasktel.net
2017-07-24 06:20:03 UTC
Reply
Permalink
Raw Message
After some modification to my routine since the difference between Aux LC and a Saturn LC is that the Aux ZP is switched in with the Aux LC. Part of my code dealt with copying Main ZP to Aux ZP which is no longer needed with the Saturn card.

So here is the code that should work with an FPBasic in the Saturn and still have access to Prodos. Just change the appropriate softswitches


$BF00: JMP L9940


L9940 STY $06
STX $07
PLA
STA $08
PLA
STA $09
LDY #$03 ; this copies the 3 bytes after a JSR $BF00 to below
]LP LDA ($08),Y
STA L99AD,Y
DEY
BNE ]LP
LDY $09 ; get the return address and add 3
CLC
LDA $08
ADC #$03 ; this skips past the MLI call parameters
TAX
BCC *+1
INY
TYA
PHA ; first push the return address to the calling program
TXA
PHA
LDY $06 ; then push the return from Prodos to the routine below
LDA #<L99AD
PHA
LDA #L99AD
PHA
LDX $07
LDA $C080 ; *** change this to switch in the Main LC bank that holds Prodos
JMP $BF4B

L99AD EQU *-1

HEX 00 ; these parameters have been copied from the calling program
DW $0000
STA $C082 ; *** change this to switch back to the Saturn bank that holds the FP Basic
RTS ; this returns to the code that initially called $BF00 but after the parameters
; this also works with Basic.system in memory
Loading...