Jump to content
IGNORED

Pascal on the 99/4A


apersson850

Recommended Posts

There are still a few of us around who had the p-System and used it. I also have the disks for the p-System to work on the 99/8. That one used version IV.11 as opposed to IV.0. Ben is another one who used it--I see him post on the UCSD Pascal group on Yahoo now and again.

 

Anders, If you look on WHT, you'll find a bunch of the USUS newsletters that I scanned in and put up. I have more, I just haven't had time to scan the rest of them yet.

  • Like 2
Link to comment
Share on other sites

I have played with it a while back, but it's pretty cumbersome to use unfortunately. There is a much better product called Turbo Pasc' 99 which is a true compiler and does not require special hardware, and I have copies of the disks and manual courtesy of Retroclouds, but the docs are in German. I have laboriously tried to translate them using OCR and Google Translate and some creative editing, but so far I've managed to do only about a quarter of the manual at best. If someone here is willing to take up that task, I'll be happy to send you what I have.

I personally love Pascal, and it's unfortunate it has been pretty much abandoned in favor of C which is a monstrosity as far as I am concerned :D

  • Like 1
Link to comment
Share on other sites

I know about Turbo Pasc' 99 as well. I looked at it back when I used the 99/4A a lot, but I found the implementation too limited. If you by "true compiler" means that it outputs machine code for the CPU, not p-code, then that's of course true. But as far as I can remember it lacks support for essential things like separate compilation, so I didn't find it useful for real applications.

One of the good things with UCSD Pascal IV.0 is that it was an inspiration for Borland, when creating Turbo Pascal, so it was possible to move applications from the 99/4A to a PC with very little modifications. I still have software which I occasionally run on my PC of today, using Turbo Pascal in a Windows command window, software that was originally developed on the 99/4A.

There you can talk about code portability! What took minutes to run on a 99/4A is now ready before you can release the Enter key...

 

I speak German too, so I can take a look at the manual you have, if you want to.

Link to comment
Share on other sites

I know about Turbo Pasc' 99 as well. I looked at it back when I used the 99/4A a lot, but I found the implementation too limited. If you by "true compiler" means that it outputs machine code for the CPU, not p-code, then that's of course true. But as far as I can remember it lacks support for essential things like separate compilation, so I didn't find it useful for real applications.

One of the good things with UCSD Pascal IV.0 is that it was an inspiration for Borland, when creating Turbo Pascal, so it was possible to move applications from the 99/4A to a PC with very little modifications. I still have software which I occasionally run on my PC of today, using Turbo Pascal in a Windows command window, software that was originally developed on the 99/4A.

There you can talk about code portability! What took minutes to run on a 99/4A is now ready before you can release the Enter key...

 

I speak German too, so I can take a look at the manual you have, if you want to.

 

I still program in Turbo Pascal 3.0 on my IBM PCJr to this day :) I'm looking into upgrading to version 5.5 pro so I can take advantage of Units, and I actually installed that version on Jr and it runs great! (In case you are wondering, I have a parallel Zip drive connected to it that acts like a hard drive). I'll send you what I have so far and you can take a stab at it. Knowing German obviously will be a big help here...

Link to comment
Share on other sites

Once the GCC port is finished: http://www.atariage....ost__p__2028632, you could have a Pascal cross-compiler: http://en.wikipedia....wiki/GNU_Pascal.

 

There was no updates since september: http://insomnialabs.blogspot.com/, I hope Insomnia has not abandonned it...

Sure, but it would take the charm out of using the real machine :-D

Link to comment
Share on other sites

Wow a discussion about Pascal...that takes me back. My first job was as a Turbo Pascal programmer in the oil industry. I was taken on and trained up to program PC's using Turbo Pascal 4 which had Unit support. The apps we wrote were used to analyse data coming in from surveyors in the field who were surveyng steelwork as offshore oil platforms were being built. It was amazing to write 100,000 line apps on an 8mhz PC and have it compile in seconds under Borland Turbo Pascal 4.0. with a 20MB Hard card in the machine. Before starting this job I was at college using USCD or perhaps Sheffield Pascal on a Prime 550 Mini computer and of course it was the usual line editor, then compile etc..nasty stuff. Turbo Pascal in comparison was amazing.

 

Of course we knew about the C versus Pascal debate but we knew we were right! :-)

 

Have to say though I might not have been such a fan if forced to use UCSD Pascal. In fact Anders Hejlsberg the original auther of Turbo Pascal ended up working on C# at Microsoft. Maybe explains why I found it easy to switch to C# - Here is a video showing Anders and what he is up to these day - http://msdn.microsof.../en-us/hh750727

 

My only regret from those days is that we did not get to play with Modula-2 and Oberon. There was a company called Top Speed who produced systems like Top Speed Modula-2 for example. I still remember spending lunch times reading the computer press and seeing the ads for TopSpeed products and drooling over the examples showing how TopSpeed compilers produced tighter code etc. In fact I just read that TopSpeed Modula 2 was created by an ex Borland team - http://www.bitwisema...ame-of-modula-2 (read the comments at the end!)

 

Late last year I was reading about a programming competition and found out that in eastern europe Pascal is still very popular.

 

No doubt someone some day will create a Turbo Pascal like language on cartridge form for the TI99 :-)

 

Lastly...all this talk pf pascal reminds me...there is a retro computer store nearby that has many of these old PC based software products still sealed. Last time I was in they had a sealed Turbo Pascal 5.5 for 40 dollars...may have to stop by and see if they also have any Modula-2 products. While I never found PC based computers exciting in any way shape or form the compilers were very cool.

Edited by JonnyBritish
  • Like 1
Link to comment
Share on other sites

If you want to use Borland's old Pascal versions (Turbo Pascal 4.0 was the current one when I programmed PC's in Pascal too) you can download them for free nowadays. At least up to 5.5 (supporting classes as well, not only units). I think I have some free Delphi environment as well. Turbo Pascal for Windows, that is.

Link to comment
Share on other sites

I'm sitting in a hotel room in Japan, with nothing sensible to do, so I translated ten more pages from the Turbo Pasc 99 user's manual. Doing that it came back to me - that implementation lacks support for type declarations! Thus you can't create records. Perhaps not pointers either, which makes most of the purpose of Pascal lost. I didn't remember at first, but now I recall this discovery when I once looked at Turbo Pasc 99 as a possible alternative for the UCSD Pascal. So I continued to use the UCSD p-system, supporting Pascal with assembly where needed. It's not all about execution speed, development time is a factor too.

  • Like 1
Link to comment
Share on other sites

I'm sitting in a hotel room in Japan, with nothing sensible to do, so I translated ten more pages from the Turbo Pasc 99 user's manual. Doing that it came back to me - that implementation lacks support for type declarations! Thus you can't create records. Perhaps not pointers either, which makes most of the purpose of Pascal lost. I didn't remember at first, but now I recall this discovery when I once looked at Turbo Pasc 99 as a possible alternative for the UCSD Pascal. So I continued to use the UCSD p-system, supporting Pascal with assembly where needed. It's not all about execution speed, development time is a factor too.

 

Are you certain about this? With no records or pointer support, I may as well program in TI Basic... If this is truly the case, then I agree sticking with UCSD Pascal is definitely the way to go. Too bad I wasted so much time translating the manual :(

Link to comment
Share on other sites

It requires the PEB and the p-Code card for the PEB to Run, Guillaume. It also requires a set of disks with the software. There WAS a version of it modified to work as a cartridge back around 1991 (from Austria), but other than the one opportunity I had to test it on my Geneve for the author's primary beta tester, I never saw it again. Alexander Hulpke had the test code at the TI Treffen in Berlin, but kept it very close-hold to honor his agreement with the author.

 

It won't work with a CF7 system unless you get lucky and turn up one of the modified versions for cartridge use.

  • Like 1
Link to comment
Share on other sites

I'll look a bit further in the Turbo Pasc 99 manual before I confirm, but I do remember that there was some serious limitation which caused me to reject Turbo Pasc 99 once. But bear with me - this was in the 1980's!

 

To use the UCSD p-system, as it was intended, you need a 99/4A with 32 K RAM expansion and a peripheral expansion box to put the p-code card in. The p-code card is required, and is physically shaped to fit into the PEB, just like a standard memory expansion or RS-232 card.

Then you also need a disk system, preferably with at least two drives. When I used the p-system extensively I had four double-sided/double-density drives (CorComp controller) as well as a RAM-disk implemented with my additional console RAM combined with a Maximem module. That allowed running the Editor and Compiler from RAM-disk, something which significantly speeded up compilations.

No cartridge necessary (which is why you could use Maximem in conjunction with the p-system).

Link to comment
Share on other sites

I'll look a bit further in the Turbo Pasc 99 manual before I confirm, but I do remember that there was some serious limitation which caused me to reject Turbo Pasc 99 once. But bear with me - this was in the 1980's!

 

To use the UCSD p-system, as it was intended, you need a 99/4A with 32 K RAM expansion and a peripheral expansion box to put the p-code card in. The p-code card is required, and is physically shaped to fit into the PEB, just like a standard memory expansion or RS-232 card.

Then you also need a disk system, preferably with at least two drives. When I used the p-system extensively I had four double-sided/double-density drives (CorComp controller) as well as a RAM-disk implemented with my additional console RAM combined with a Maximem module. That allowed running the Editor and Compiler from RAM-disk, something which significantly speeded up compilations.

No cartridge necessary (which is why you could use Maximem in conjunction with the p-system).

 

That's obviously a lot of hardware, which is why I found Turbo Pasc 99 attractive. The good news is that I still have all the UCSD pascal hardware and software, and it's just a question of re-familiarizing myself with the system.

Link to comment
Share on other sites

Figuring out which files to put on which disk is one of the most important things to make it as efficient as possible to work with. I remember I wrote suggestions to beginners, for different disk configurations. I have four DS/DD (CorComp), which makes things easier. You have to modify the p-system slightly to allow for four drives, but that wasn't very difficult to do.

Link to comment
Share on other sites

What I would like to see is a UCSD Pascal cartridge. Apparently at one time, some german guy used a gram kracker or similar device to emulate the UCSD p-code card.

Now with the new cartridge currently in development, perhaps it will be possible one day. Combined with the CF7+/nanopeb that would make a great environment.

  • Like 1
Link to comment
Share on other sites

This all sounds very cool. I used Turbo Pascal in high school. I cannot recall what version, but we used it in the school's PS/2 lab and I sneaked out a copy to run on my Amiga in CrossPC. Come to think of it, I did Pascal in my early college years, too, so I am not certain if the copy I have of TP is swiped from high school or the copy I purchased for college class (I will err on the side of it being legit.) I also purchased RM*COBOL, which also runs in CrossPC on my Amiga, but then someone developed a COBOL compiler native for AmigaOS. (COBOL for the TI, anyone?!)

 

I would be cool to pick up again, especially if I can develop on the TI. It would greatly speed my game conversions from TI BASIC as I either have to re-learn TMS 9900 or learn Forth (though both are cool, I just find myself being lazy in regards to my hobbies as I have plenty of responsibilities shackling me these days heheheh.) I shall be watching...

Link to comment
Share on other sites

Figuring out which files to put on which disk is one of the most important things to make it as efficient as possible to work with. I remember I wrote suggestions to beginners, for different disk configurations. I have four DS/DD (CorComp), which makes things easier. You have to modify the p-system slightly to allow for four drives, but that wasn't very difficult to do.

You're right. I have only 3 DSSD drives, and in the past I have found these to be pretty sufficient. I wish we could have support for the IDE card or the HRD... It would make it blazing fast.

Link to comment
Share on other sites

Well, blasting I don't know... When I used my system, I had files like the SYSTEM.FILER, SYSTEM.EDITOR and SYSTEM.COMPILER on my homemade RAM-disk. A friend of mine bought a RAM-disk (CorComp?) commercially, and we made that work with the p-system too. So it's doable. It cuts down compile times to around half, usually, since they involve a lot of disk access. Of course, since I used my Maximem module as a part of that RAM-disk, that involved accessing GRAM to read some data from that "drive", so it's not as fast as CPU RAM.

 

The p-system is designed to run from different code pools, so it's not too difficult to make it run from a different memory location. The p-code card contains 12 K ROM (the upper 4 K is bank-switched with CRU-bit 1F80H) and 48 K GROM. But the GROM base address is given as data in the PME, so it's pretty easy to move.

 

If I could modify the p-system to become true pre-emptive multitasking, then this should be a breeze...

Link to comment
Share on other sites

UCSD Pascal is pretty feature-rich, for its time. It's also capable of running in a very limited amount of memory, and still compile programs that are pretty large. Finally, since it's written in Pascal, it's capable of compiling itself. That's of course not too much of an advantage today, but back when this system was designed and used with the intention to be easily portable between different computer platforms, it was.

Thus it's not 100% fair to compare it to a compiler that's capable of a more limited service, or less able to handle large source files in small memory environments.

 

However, Borland did indeed show that compiling could be fast, when they introduced Turbo Pascal. Turbo Pascal 4 is at about the same level, as far as language support and functionality goes, as UCSD Pascal as it's implemented on the 99/4A.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...