Home   • Persönlich •

< Persönlich

< Persönlich: Projects


> Intro

> 1. Generation ZX80/81

• 2. Generation SBCS

> 3. Generation FISC


 

— Projects: History, 2. Generation SBCS —

SCBS: A computer based on the Sinclair ZX81 ROM

Programs were handwritten and the final code copied from the TV screen. A quite expensive printer was available. It used a roll of electrically conductable paper. It was not exactly a dot-matrix printer since it only had 1 (one) pin. Connecting the pin to 5 V made a controlled short circuit on the electrically conductable paper and left a dark (burned) dot on the alluminium-colored paper. It could print 40 characters in a row.

This was not the solution. My colleague and I each purchased a daisy wheel typewriter (Olivetti Praxis 35) that cost quite a lot. We modified it and built an interface to use it as an impact printer. It made only 7 characters per second but the output was superb, the noise could be heard in every room of the house and you always knew, when the print job was finally done.

We still wanted that ZX81 slow mode option, i.e. have an active display even when the program ran, but we could not figure out how it worked. During a few weeks, I disassembled the ROM code and had it printed out on the impact printer. I got surprisingly near the truth, where I utterly failed was with the math package. It sufficed to understand how the slow mode worked, thought. The printout used up a full paper roll for a TTY (teletypewriter, about 25 cm or 10 inch in diameter).

So we built the hardware for the complete computer on a breadboard. It featured 64 KB of RAM. This was the main board, component side at left and wire-wrapped side at right.

SBCS Board

Not surprisingly, it did not work the first time when it was powered up. This was a good sign becaus it meant an obvious flaw. It was soon found: the memories were wrongly wired. I used about a week to wrap, correct and re-wrap the whole mess. After the modification, it worked and no other fault was discovered during the next few years. The final system looked as shown below.

SBCS Board

At far left, the cassette interface and ROM selection. Additionally to the ZX80 4 KB and ZX81 8 KB ROM, we installed another 8 KB ROM with the multitasking (!) ZX81-FORTH by David Husband, that came out in 1983 and was a true alternative to BASIC. On the same unit was also a video circuit that replaced the TV VHF modulator. A black and white TV was modified to accept the video directly, enhancing the display quality considerably.

The next unit is the printer interface for the Olivetti daisy wheel typewriter. The EPROMER is next to the power supply and is described here on another page.

This system made us happy for quite a while. We were never limitted by the 64 KB of memory. Actually, we could use only 16 KB at a time and had to bank-switch to access the other three 16 KB blocks.

Extended BASIC

19. February 1983 was one of my greatest and certainly unforgetable days: I received The Complete Timex TS1000 / Sinclair ZX81 ROM Disassembly published by Melbourne House Publishers (ISBN 0 88161 113 6). Part A(0000h to 0F54h) contained the coding by Dr. Ian Logan: the operating system and the BASIC interpreter. Part B (0F55h to 1DFFh) the mathematics package coded by Dr. Frank O'Hara. The last part (1E00h to 1FFFh) contained the character decoder.

By the time, I «POKEd» enough in «REM» statments to have some knowledge of Z80 assembly code and also enough experience with that BASIC dialect to extend the language. In the beginning, however, I had no assembler: no program that translated the mnemonics into CPU code. I had to hand-code those 4 KB I later called Extended BASIC. Here is a fragment of the first page.

Handassembling

How did you go about it in those times? You wrote the mnemonics and comments, looked up the hex codes for the mnemonic in the handbook (Z80-Assembly Language Programming Manual, published by Zilog, Inc. in April 1980), translating the hex codes into decimal numbers and filling them into the form. Finally, you typed the decimal codes with a BASIC loop programm into a REM statement that you filled up with blanks of the desired length before. Finally, you saved it on cassette tape.

Yes, these were great times. No shiny and gleaming bloatware, just beautifully lean code that executed on a 4 MHz CPU breathtakingly fast. No tools that you could use as crutches to hide your inability. Just solid craftmanship you could be proud of. Every single bit at its place at the desired time, everything controllable, no fatal exeption errors on blue screens.

Later, I used the disassembler to produce a proper listing, filled in the labels and the comments, over 50 pages. Here is the same fragment of code as above

Handassembling

I prepared the listing along with a users guide to the new commands to have it published by a computer magazine. It was rejected because I was late with it, everybody else had moved on to the CP/M (control program for microcomputers) operating system by Digital Research, Inc. Obviously, I was so wrapped up in myself that I did not notice that time went by.

Extended BASIC added tools to ease interfacing the BASIC with assembly routines. Assembly routines were very popular in those times because they sped up execution enough to make real time animated games possible. The BASIC itself was, of course, too slow for that. Extended BASIC also included «Soft Keys», a feature also found on better CP/M machines (e.g. HP125).

 
  © 2004 - 2018 by Horo Wernli.