[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Did anybody ever use a "Pascal Area" on a ProFile hard disk?
In article <1f7frvu.192e43u1t25qwwN%dempson@actrix.gen.nz>,
David Empson <dempson@actrix.gen.nz> wrote:
>Stephen Shaw <xstephenx@apple2.org.za> wrote:
>
>> On Fri, 18 Jan 2002 19:29:39 +1300, Roger Johnstone wrote:
>>
>> > By the time I got hold of a copy of Apple Pascal 1.3 (the local Apple
>> > dealer was having a junk sale) I had a IIgs, and it ran fine from a 3.5"
>> > floppy. No disk swapping needed and it was fast enough for the little bit I
>> > did with it, I don't think I even considered trying to install it to the
>> > hard drive since it still had to boot from the floppy.
>>
>> Is this the ProDOS version?
>
>No. Apple Pascal 1.3 still uses the UCSD Pascal operating system. The
>only Pascal implementation from Apple which worked under ProDOS was
>"Instant Pascal", which was an interpreter rather than a compiler.
>
>Pascal 1.3 improved the device support to allow Pascal to use the ProDOS
>block driver in the firmware for disk controller cards (other than 5.25"
>controller cards), which means that Pascal 1.3 can work with 3.5" disks,
>hard drives and RAM disks provided by standard slot RAM cards, without
>having to load any special drivers.
>
>They also made the boot sequence more flexible: you can boot from slot
>4, 5 or 6, not just 6. I forget whether it rearranges the unit numbers
>when you boot from slot 4 or 5.
>
>There isn't much point trying to use it with a hard drive, because the
>Pascal file system doesn't support subdirectories, has a fixed limit of
>about 70 files per volume, and requires files to be stored contiguously
>(requiring a "crunch" operation to combine free space).
>
>It wouldn't support more than two partitions on a SCSI hard drive, so
>even a 20 MB hard drive would be difficult to fill.
>
I'll give David credit on this one for being "Apple Correct", but in the
spirit of "Apple II" - anything is doable.
</begin brag/
I used to use/program a lot of stuff in UCSD Apple Pascal. I quickly
spoiled myself with addons. First, my first "Pascal" Apple II+ had both
2-5.25 drives and 2-8" floppies (SVA Disk2+2 controller, Lobo dual 8"
drive enclosure with 2 Shugart 801R drives.) Serial controller in slot 3
connected to ADM31 terminal for 80 column support - later replaced by ALS
80 column display card. Pretty efficient as all system files
(editor,compiler,linker, assembler etc. online at all times. A 288K
Ramdisk (Flashcard) with editor, compiler , etc. loaded made for a even
faster development system.
Of course, eventually came a IIe and a FCP Sider harddisk (20Meg?)
partitioned into Dos3.3, ProDOS, and Pascal op. sys. So much HD space -
how to use?! Pascal file types include a "volume image". By system 1.2
and 1.3 it was documented how to add "user" drivers. So one of my most
useful development tools was my "Volume Manager". Basically, I mapped
"volume image" files to the user unit #'s 13-20. So the root pascal
directory had the Pascal System files (static rarely changed), then large
files which were "volume images" (easy to create), followed by any working
files which were subject to volume K)runching. So my 77 files in my
volume directory allowed me access to hundreds of files and megabytes of
harddrive space. (volume images could contain files which were in turn
volume images. I never tested how deep I could nest these, but
theoretically quite deep. It worked equally well with 3.5 800K floppies.
So, Pascal had access equivalent to "sub-directories" and could easily use
all the space available on the FCP Siders. You just couldn't have more
than 77 files on any of units 4,5,9,10,11,12,13, .. ,20 at a time (I think
that is 14*77=1078 files at once. Adequate for any programming task I
ever tried. :-) Of course, eventually the FCP Sider power supply failed
and I moved to a Vulcan. Everything worked on it too as I recall. But
the Vulcan died and I no longer use Pascal <sniff>. Well, a little Kyan
Pascal under ProDOS, but it isn't as much fun as Apple Pascal.
</end brag>
So, David, even UCSD Apple Pascal wasn't that bad with large storage
devices. One just had to do what Apple didn't. I learned how to do this
"pseudo directory" stuff from an Apple technote on how to use a 800K drive
as 2 400K drives under Apple Pascal. Since I had already messed around
with "user" drivers, it became apparent on how to use "volume image" files
as the base address for a volume, map to a user device#, etc. rather than
just map a 400K block# into a 800K block#. As I recall, the method worked
like this. The "Volume manager kept a table for each unit# of a
blockoffset and base unit#. So say unit 13 was actually mapped to file
"Drive68" on unit#5. The table would contain a "5" for base unit, and
offset "1728" (decimal, although I might have used hexadecimal). Then
when a block request(read or write) for block 27 on unit#13 was sent to
driver for unit#13, it added the baseoffset 1728 + 27, and stuffed the
stack with block 1755 unit#5 and continued the I/O request. Slick!
Krunching worked well with each unit#, but user beware if one krunched a
volume of a lower unit# and moved a volume image that was mapped in the
unit# table. Usually only a I/O error occrred because the volume
directory would be missing, but I always proceeded with caution when
krunching a volume.
I wish I could recover all this work from my dead harddrives, but I
imagine I have most of it backed onto 800K floppies somewhere.
I enjoy Apple Pascal discussion in csa2. It brings back memories.
--Steve
--
--Steve (apple2pd@ground.ecn.uiowa.edu)