On Thu, 22 Oct 1998, John Payson wrote: > Yes. Sinclair machines never let you type the command out, it was coded > into the keypress ;) Takes some getting used to. > << > > I'm a little curious, though... since the unexpanded Sinclair had 1K RAM > and a screen of 32x24 characters, how was there room for ANYTHING? Did > you need extra RAM to get the full screen size, or what? ;) The Sinclair engineers who cooked that machine up were pure geniuses. I do not dare guess what else they did. It's like this: The ZX80 had a Z80A at 3.5 MHz, 4k or ROM, and 11 of RAM on board. Also 6 (six!) more bog standard LS TTL chips. Out of this, it made video (the Z80 was fetching nops in a certain area while it generated addresses to read the ram into a LS165 (?) shift register), black and white and not very standard, but ok for a TV, read a membrane keyboard and had a tape cassette data storage interface. imho it is the most cunning minimalistical design to ever hit the consumer market in the entry-level home computer domain, and it's darn hard to beat even today (I did do an evil prototype using a NEC6145 OSD, a PIC, a seeprom, and a membrane keyboard, and that's IT ;), but nothing came of it eventually ). The ROM contained a tiny basic version that used tokenized statements. You did not type in statements, instead, each key had a few statements assigned to it (printed on it). Each statement was stored as a token code in ram (1 byte), with some bits left over used as flags ;) Strings and arrays had 1 character names. Variables had up to 5 character names if I remember well. Math was 16 bit signed integer only. A fiendishly cunning software mechanism allowed the program and the video memory to share the same tiny space with the stack squeezed somewhere between them. When you had a longer program the screen would grow smaller (less lines displayed) ;). There were 2 ways to run a program: 'fast' and 'slow'. In 'fast' mode the processor gave up screen refresh and it blurred. In 'slow' mode there was screen output and the processor ran the program during the blanking periods and in the empty lines on the screen ;) In theory the full screen took 768 bytes, leaving 256 bytes for stack and BASIC program, but with the fiendish mechanism described, you could easily end up with 768 bytes program and 256 screen instead ! I have great respect for whoever made that system, hard and soft ;) I also think that this or another similar design should be revived as a kit. The ZX81 kept the same principles but added a better BASIC in 8k ROM, with floating point. It still had 2 x 2114 RAMs (1k) but most serious people bought expanders, up to 64k (paged). It had an ASIC that allowed the CPU to spend more time in the user program, but still had fast and slow modes. It also had some graphics. The Spectrum also kept the same principles, but switched to a full graphic screen, with soft character generator, an ASIC, no slow mode, 16k ROM and 48k of RAM (expandable by paging). It had 256*192*16+8+blink color memory mapped graphics and a separate border color control byte. > Also, since the CPU was directly responsible for video generation (if I > remember right) did any games or anything do cute stuff with special > display routines? Certainly ;) Inventing new bit-blitting modes for games, using (then) un-documented Z80 opcodes was a favorite passtime for many. There was also C Pascal, Lisp, assembler, disassembler and Prolog for the Spectrum, all on cassette tapes. The Spectrum ROM source code was circulated as reference material. It had been published as a book, in whole, with comments ;) John, would you mind stopping this, it seems to come with each mail of yours: > begin 600 WINMAIL.DAT > M>)\^(A(5`0:0" `$```````!``$``0>0!@`(````Y 0```````#H``$(@ <` > M& ```$E032Y-:6-R;W-O9G0@36%I;"Y.;W1E`#$(`0F `0`A````.#DP,T)! - much more of the same snipped - Peter