||Pascal is often associated with microprocessors due to the widely distributed UCSD implementation. However, the first Pascal, Wirth's first implementation, was for the Control Data 6000 series super computer. I maintained that compiler for the Purdue computing center. I translated my assemply language versions of the Morse Code teacher to Pascal before I left in 1978.
Here is that code:
I compiled this with Wirth's compiler but I never ran it because there was no way to beep out code from a super computer. Instead I left beeping as an external call that I assumed that I'd eventually be able to implement on some future Pascal implementation. I was already reading about OMSI Pascal which was done by kids in the science museum in the same town where I was headed.
These are the external functions that never got implemented.
Here is the Pascal program mechanically translated to C, also untested:
Working from these listings, Jim Wilson translated the teaching algorithms to C code of his liking and added assembly utilities to produce the Dos Version.
- function realtime: ticks-- Interface subroutine to read the system realtime clock. Returns elapsed number of clock ticks modulo a power of two.
- procedure buzzer (switch: state) -- Interface subroutine to a remote audio oscillator. Subroutine is called only when a change in state is required (i.e. sidetone generation is external).
- function response: boolean -- Interface subroutine to sense a user keyboard response. If true is returned, get(input) should advance to the next character without delay.
- function random: integer -- Interface function to random number generator. Returns 0 < random < 2**15 with even distribution.
See More History.