10

While reading about the SuperPET I just recalled another PET modification. My uni had an 11/780 that I learned FORTRAN on. It used modified PETs as input terminals.

This took the form of a modified version of BASIC, I think. You would type in the program using the PETs existing editor, line numbers and all, and then use a special command to run it (SEND? COMPILE?). This would cause the PET to pretend to be a card reader, sending the code line-by-line to the VAX, which would respond on a DECwriter in the hallway.

I suspect the system was not something built locally, so I'm curious if anyone is familiar with this modification?

12

I don't have any experience with the exact modification you are talking about. However, I think it is a relevant point that the design of the firmware for Commodore microcomputers included a "screen editor" as a separate bit of software from the BASIC interpreter. As far as I know, all the CBM 8-bit machines had this design.

So, it is very possible for any software running on these machines to make use of the firmware's screen editor for its data entry. You could even replace the BASIC interpreter in the ROM with something else, as you describe, and the data entry "environment" would behave the same as far as moving the cursor around the screen and inputting lines of code in some other language. Your replacement firmware would need to provide a minimal set of functionality:

  1. Capture the data entry to a RAM buffer
  2. Allow the user to scroll the data displayed on the screen forward and backward in the buffer, OR, have an interactive command that redraws a portion of the buffer on screen.
  3. Have a command that outputs the RAM buffer to some peripheral, like an RS-232 serial port, or a save file on disk.

It may also be worth noting that Commodore produced several enhancements to the screen editor firmware over the life of their 8-bit product line. The editor built into the Commodore 128 is probably the most advanced version. It even included primitive support for multiple windows on the screen that can be scrolled independently. Here is the public API that is available in the C128's editor.

;////////////////   E D I T O R     J U M P     T A B L E   \\\\\\\\\\\\\\\\\

jmp cint    ;initialize editor & screen
jmp disply  ;display character in .a, color in .x
jmp lp2     ;get a key from irq buffer into .a
jmp loop5   ;get a chr from screen line into .a
jmp print   ;print character in .a
jmp scrorg  ;get size of current window (rows,cols) in .x, .y
jmp scnkey  ;scan keyboard subroutine
jmp repeat  ;repeat key logic & 'ckit2' to store decoded key
jmp plot    ;read or set (.c) cursor position in .x, .y
jmp cursor  ;move 8563 cursor subroutine
jmp escape  ;execute escape function using chr in .a
jmp keyset  ;redefine a programmable function key
jmp irq     ;irq entry
jmp init80  ;initialize 80-column character set
jmp swapper ;swap editor local variables (40/80 mode change)
jmp window  ;set top left or bottom right (.c) of window

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.