[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: pascal system
- Subject: Re: pascal system
- From: "mdj" <mdj.mdj@gmail.com>
- Date: 2 Jun 2006 23:18:14 -0700
- Complaints-to: groups-abuse@google.com
- In-reply-to: <e5pnth$1499$1@merope.saaf.se>
- Injection-info: y43g2000cwc.googlegroups.com; posting-host=220.235.246.61; posting-account=W_jMEA0AAAAZdNaersJnc-7Hjv-SIC8Q
- Newsgroups: comp.sys.apple2
- Organization: http://groups.google.com
- References: <44803cdb$0$23286$ba4acef3@news.orange.fr> <1149262420.729390.314470@f6g2000cwb.googlegroups.com> <e5pnth$1499$1@merope.saaf.se>
- User-agent: G2/0.2
- Xref: g2news2.google.com comp.sys.apple2:8727
Paul Schlyter wrote:
> Yes - an implementation of UCSD Pascal was integrated in the Apple Pascal
> system. It was a compiler, IDE, OS, file system -- all integrated.
Apple Pascal is an implementation of the UCSD p-System. It's
essentially identical to any other release of UCSD Pascal II on any
system.
The basic workings of it are this: The entire operating system,
compiler, filing utilities, editor, etc. are written in Pascal, and the
compiler generates p-code. This p-code is interpreted by a virtual
machine which runs the p-code.
In Apple Pascal, this interpreter is implemented in the file
SYSTEM.APPLE which contains the p-code interpreter plus the device
drivers necessary to comminucate with the Apple II disk drives, console
and serial devices, which present themselves to the Pascal operating
system via a portable interface in p-code. This code loads into the
Apple Language Card area. I believe the Apple first made this card
available specifically to support the 'Apple Language System' of which
Pascal was the first product.
The UCSD Pascal system itself lives in the file SYSTEM.PASCAL. Each
major utility is written as a Pascal segment procedure (pascal talk for
overlays) and lives within the file.
As many have noted, this is very similar to how a Java virtual machine
works these days.
Back to the question at hand, the original edition(s) of Apple Pascal
(Versions 1.0 and 1.1) were written for the original Apple II, and as
such only support Apple II era devices, i.e the Disk II, Serial
Communications Card. 80 Column cards installed in slot 3 are supported,
or alternatively you can place a serial card in slot 3 and use an
external terminal.
After the introduction of the IIe, the system was updated to version
1.2. This version extends the original by allowing much of the
operating system to be loaded into auxiliary memory, greatly extending
the available program space, and consequently speeding up the system a
lot, as less code swapping takes place. It also supports the IIe's
better keyboard and utilises the 80 column hardware more efficiently.
Version 1.3 was introduced after the release of the UniDisk 3.5,
allowing the use of 3.5" disks.
This version will also natively support "Slinky" RAM cards that have
been formatted as a Pascal volume. Essentially, any device that support
the "ProDOS Block Device" interface, which was a predecessor of
SmartPort is accessible natively from Pascal 1.3. There are limitations
on volume size though - for example Superdrives only show up as 1600
block (800kb) devices regardless of the media used in the drive.
In addition to this, the system support loadable device drivers via the
Attachment Interface. Apple provided an add-on called the Pascal
Profile Manager, which allows you to create files on ProDOS formatted
ProFILE hard disks that are recognised as volumes by Apple Pascal. As
has been mentioned this makes use of a different storage type within
ProDOS. Much of this functionality actually made it's way to the Apple
IIe via the Apple III, which supported all this stuff essentially from
the get-go. I'm fairly sure the ProFILE manager could be easily hacked
to work on SCSI volumes or CFFA's, etc. Just a matter of someone being
bothered doing it.
Applied Engineering supplied Attachment drivers to support using
RamWorks style cards as RamDisks, and I *think* utilities that
supported the Vulcan hard disk. Unless you can be bothered doing some
hacking though, I'd stick with the Slinky approach, as this "just
works"
I learned "serious" programming on Apple Pascal. Despite it's
limitations, it's actually a much nicer environment that BASIC once you
give it a chance, and allows you to write much more sophisticated
programs, as long as you can put up with compiling.
Matt
Anyway, the approach I've always used when I feel like Pascaling again,
is to load an image onto a Slinky card, then boot that. When I'm done,
I save the Slinky back to the image file. This is all fairly easily
achieved with ProSEL utilities.