Jump to content
IGNORED

UCSD Pascal documentation


retroclouds

Recommended Posts

I have added the full UCSD Pascal documentation to the Development Resources thread. These are actually several documents and it took me quite some time to scan them (sorry, no OCR).

The only thing still missing at this time are the disk images. These will be added soon (I hope). I have the floppy disks but have not turned them into disk images yet.

Hoping that someone can help with that (or send them via eimal) :)

 

Enjoy!

 

5. UCSD Pascal

 

  • Like 4
Link to comment
Share on other sites

Looks like a monster. Just out of curiosity ... Are there any estimates into how many were sold ? Was there any user or third party developers releasing anything from this "system" ? What does the card do ? Would you need the p-System and/or the card to run anything developed with this ? What was the retail price from release and like until months before TI pulled out ?

 

:cool:

Link to comment
Share on other sites

Looks like a monster. Just out of curiosity ... Are there any estimates into how many were sold ? Was there any user or third party developers releasing anything from this "system" ? What does the card do ? Would you need the p-System and/or the card to run anything developed with this ? What was the retail price from release and like until months before TI pulled out ?

 

:cool:

 

Don't know on the figures sold. But man, I wished I had one back in the days. The p-card basically only contains some ROM's and GROM's. It holds the interpreter and part of the operating system.

Because that is actually what it is. Basically its a virtual machine running the bytecode of programs written in UCSD Pascal or other languages (e.g. Pilot).

The implementation seems to be quite feature complete. If you go through the documentation, you'll find a section describing how to run multiple tasks at the same time.

 

With todays possibilites (CF7+ or nanopeb, ROM/GROM PCB's) it should be possible to put the card functionality on a cartridge. Rumor has it, there was a guy who once simulated the P-code card

using a GRAM-Kracker or similar device.

Link to comment
Share on other sites

Looks like a monster. Just out of curiosity ... Are there any estimates into how many were sold ? Was there any user or third party developers releasing anything from this "system" ? What does the card do ? Would you need the p-System and/or the card to run anything developed with this ? What was the retail price from release and like until months before TI pulled out ?

 

:cool:

 

Don't know on the figures sold. But man, I wished I had one back in the days. The p-card basically only contains some ROM's and GROM's. It holds the interpreter and part of the operating system.

Because that is actually what it is. Basically its a virtual machine running the bytecode of programs written in UCSD Pascal or other languages (e.g. Pilot).

The implementation seems to be quite feature complete. If you go through the documentation, you'll find a section describing how to run multiple tasks at the same time.

 

With todays possibilites (CF7+ or nanopeb, ROM/GROM PCB's) it should be possible to put the card functionality on a cartridge. Rumor has it, there was a guy who once simulated the P-code card

using a GRAM-Kracker or similar device.

It essentially takes control of the entire system and the TI becomes a different machine. Ideally one needs a minimum of 2 and better yet 3 floppy drives to have maximum flexibility, although one will work with a lot of swapping. Problem with the p-code system is that it is heavily oriented towards text displays and thus graphics capabilities are extremely limited. I remember having to cobble together a library unit that does the equivalent of TI BASIC's HCHAR and VCHAR. It is however possible to do inline assembly with it, so this opens up a lot of possibilities. Maybe I should revisit it again!

Link to comment
Share on other sites

  • 3 years later...

The minimum equipment TO RUN already compiled programs is the console, expansion box, memory expansion, p-code card and cassette player. The p-code card supports storing programs on cassette.

But TO DEVELOP programs you also need at least one disk drive (but that's a painful exercise) and some of the software for the system.

The system was sold in four pieces:

  1. P-code card. This is a 12 kbyte ROM extension with p-code interpreter and BIOS routines as well as a 48 kbyte ROM-disk (implemented by GROMs), which holds the SYSTEM.PASCAL and some other files for the operating system. The addition of 12 kbyte ROM means the p-system can run in 32 kbyte RAM (otherwise it needs 48 kbyte RAM). Some code is copied to 8 kbyte RAM section, since the p-code card must be disabled during disc and RS-232 access. The p-code interpreter can run p-code from RAM, video RAM or GROM, so all memory can be used for p-code.
  2. Editor/Filer/Utilities software package (floppies).
  3. Pascal compiler (floppy).
  4. Assembler/linker package (floppy).

You could by these as you needed them. If you didn't want to write assembly language programs for use with the p-system, you didn't need the assembler/linker.

I made a RAM disk to host the editor and compiler, something which significantly speeded up the software development process.

 

The development procedure with the p-system is as follows:

Use the Editor to write your Pascal source code.

Use the compiler to compile it into p-code.

Run the program. The p-code will be interpreted by the p-code interpreter.

 

If you want to add assembly support, you do this too:

Use the Editor to compile the assembly procedures.

Declare them as external in the Pascal program.

Compile the Pascal program.

Use the assembler to assemble the support routines.

Use the Linker to link the assembly routines into the Pascal program. This resolves the pending links to the external procedures.

Run the linked code file.

 

The p-system supported some advanced concepts, to make larger programs run in small memory space.

Source files can be linked, since the Editor supplied can edit files up to about 12 kbytes only.

Programs can be segmented, which means that procedures and functions not used can be rolled out of memory and brought back in on demand.

Memory for data can be allocated and released dynamically during program execution, so a large buffer can be allocated when needed and then cease to exist when no longer needed.

Loaded p-code software is relocateable even at runtime, so an out-of-memory fault can often be resolved at runtime by moving the loaded code in memory. The system works with the stack at one end of memory, the heap (for dynamic memory allocation) at the other and the code pool in between. So if the stack grows into the code, the code will move towards the heap. Then there's an alternate code pool in video memory, which is used first, provided the code fits there (it's smaller). Thus you shouldn't write segments larger than that they fit in the video RAM code pool.

 

The system allows for separate compilation, where support programs can be written and compiled separately. They are then just referenced by file name and unit name from the program that uses them. If such support routines are general enough to be used in many programs, they can be included in the SYSTEM.LIBRARY file and then you only need to reference them by name. Units are always separate segments, thus need not be memory resident when not called. They can also have internal segmentation, so that not all of a unit needs to be loaded at the same time.

Units can internally refer to assembly routines, which are linked in to the unit once and then automatically loaded and called when required.

 

It didn't generate the fastest code, but the p-system was by far the most comprehensive software development environment on the TI 99/4A.

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

Hi mizapf,

did you once try "Nuance PDF pro" ?

Its scanning well and you have the option to keep

the old look and face from the document, and it though is searchable.

Maybe interesting, I use it sometimes for old documents.

(but I think your problem here is "bad original/small original")

Ralf

 

 

 

Link to comment
Share on other sites

  • 4 months later...

UCSD P-code card in emulators

 

Videos:

1. MESS/QMC2 TI-99/4A + p-codecard (in "PEB") with disks --

2. MESS/QMC2 TI-99/8 with built-in P-code card in OS (diskdrive not working?)

3. V9T9 (May 2014 version) -

 

4. Pending Video -- Classic99 (pending, currently "Stack Overflow * Reboot) (Version 380)

 

 

Overview of emulators supporting the P-code card system:

UCSD P-code card system emulation
---------------------------------------------------

Windows/Linux
- MESS/QMC2 - TI-99/4A with P-code card
- MESS/QMC2 - TI-99/8 built-in OS
- V9T9 - TI-99/4A with P-code card (req. 14/May/2014, 2015 P-code option is being fixed)


Windows
- Classic99 - TI/99/4A or QI (V2.2) with P-code card (** Stack Overflow)

No support for P-code card emulation
====================================

Android
-------
- Android99 (Android phone)


Java
-------
- JS99er.net (online / webbrowser) - Rasmus
- JS99er (Java 1.5) offline - Rasmus


Windows
-------
- Ti99w (v4.4) - Fred
- Win994a-TI-99/4A Simulator for Windows - Version 3.010 (2/Apr/2013)
- PC99




Older emulators:
(http://www.99er.net/emul.shtml)
---------------

DOS (e.g. use "Dosbox 0.74") to run these systems
---
PC99 - DOS/WIN
V9T9 - DOS/WIN (TI6.0)
TI-99/4A Emulator by Ton Brouwer (For the PC)


Windows
-------
ami99- WIN


Apple MacinTosh
---------------
MACV9T9- MAC


Amiga
---------------
TI4Amiga- Amiga
TI-99/4A Emulator by Ton Brouwer, ported by Stefan Haubenthal (For the Amiga)


Linux versions
--------------
TI99SIM - Linux
TI-99/4A Emulator by Ton Brouwer - Linux


Tomy Tutor
----------
The Tutti Emulator by Cameron Kaiser
(For the Commodore 64, or a C64 emulator)

  • Like 1
Link to comment
Share on other sites

P-Code does not work in Classic99 unfortunately. If you try to edit a file, you get a stack overflow error...

Also in MESS, you need to select the legacy TI disk controller to be able to read disk files, not the standard one. This is a bug that will be fixed with the next MESS version.

Link to comment
Share on other sites

It does not work with "tifdc" but with "tifdcleg"? Good to know. :)

 

Edit: This does not work for you?

 

./mess64 ti99_4ae -keymap -keymap_file keymaps/km_de_LINUX.map -peb:slot4 pcode -peb:slot8 tifdc -flop1 disks/cartdsk/UCSD_Pascal/ucsd_pascal_compiler.dsk

 

post-35000-0-83089100-1433285590_thumb.png

Edited by mizapf
Link to comment
Share on other sites

Good that we talked about it, because as it's working for me I would have no reason to try to fix anything.

 

Please PM me your disk image, also the options when starting MESS. What MESS version is it?

 

I suppose you're using it in Windows. This makes things a bit difficult for me, since I don't know whether I can reproduce the issue. It would be easiest if you had some debugger and it you ran the debug build. The debug build can be separately downloaded from mamedev.org, but as for the debugger I can't help here.

 

The legacy controller implementations will be removed as soon as I will have finished the HFDC hard disk re-implementation; we cannot keep them much longer, since they make use of deprecated structures.

Link to comment
Share on other sites

Michael, here's your post on this topic when I had brought this up back in March. I am using MESS 0.159.0.0 with Windows and the QMC2 frontend version 0.49.

 

<<I found the problem with the new floppy system: I relied too much on the entries in sector 0 (VIB). The UCSD Pascal disks do have a VIB, but it is incomplete. The number of heads and sectors is 0, and well, you guess ... some division ...

I just added a sanity check which treats the VIB as non-existent when it is incomplete.>>

Link to comment
Share on other sites

They seem to have increased the release rate ... one new release every month. Most of the changes apply to the arcade machines, though, as you see by the many "-" in my table.

 

By the way, the MESS emulations are now fully integrated into the MAME distribution, so from now on you have to download and install the latest MAME release. You will still have a MESS executable inside.

 

And indeed, one of the considerations was to promote MESS by a closer integration into the more widely known MAME project.

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...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...