46 ms·
I was in high school (about 14-15 years old) when I recall drawing lines and circles with BASIC on ZX-Spectrum and it was horribly slow. Was thinking of making
by MichaelRo 1y ago
I was in high school (about 14-15 years old) when I recall drawing lines and circles with BASIC on ZX-Spectrum and it was horribly slow. Was thinking of making some simple games and tried graphics mode but it was just too slow to achieve anything.
So I switched to HiSoft Pascal and line and circle became instantaneous but still I didn't dare program Tetris in graphics mode. So I used text/character mode, compiled from Pascal and was fast enough to play. (In regular BASIC, I couldn't make it work).
Then I installed HiSoft BASIC compiler and my regular BASIC was now fast enough for TETRIS. On the other hand if you think that in 48Kb of RAM they had to fit the video RAM about 8 Kb, the BASIC compiler, my BASIC code, the compiled code and use some RAM for stack and variables ... crazy. Fun times...
- tzot 1y ago> On the other hand if you think that in 48Kb of RAM they had to fit the video RAM about 8 Kb, the BASIC compiler, my BASIC code, the compiled code and use some RAM for stack and variables ... crazy. Fun times... I had a Spectrum, and then when the QL got relatively cheap, I got one too. Loved 68K assembly. Given that the 68K instructions were always a multiple of 2 bytes, in its 48K ROM you could have a maximum of 24576 instructions. Now remove the space needed for the bitmap font and some lookup tables, and in the remaining space you had: - A multitasking operating system (no memory protection, of course), with networking (not TCP/IP of course) and media (microdrive) management, and generic channels kind of in the Unix file spirit - A (non-re-entrant, single instance) “SuperBASIC” with procedures and functions with LOCal variables, a switch construct (SELect ON), FOR loops with epilogues that would run if not broken out of the loop, and other goodies, which SuperBASIC was also the system shell - A collection of system calls and a system library, from windowing functions to software floating point (the 40-bit format) operations Not having a lot of money for software but with the help of some book from the library (titled something like Assembly Programming on the Sinclair QL, don't remember exactly) I even wrote a disassembler in SuperBASIC to decode and grok the ROM. My mind was blown with the density of the ROM code.
- JdeBP 1y agoQDOS even had non-blocking I/O at the individual read/write call level. I had to mention this when I learned of Daniel J. Bernstein advocating, almost 20 years after QDOS, non-blocking nonblock_read()/nonblock_write() additions to the POSIX model, so that your I/O model wasn't something that you had to coördinate and share with every process that might have the same open file descriptor. * https://jdebp.uk/FGA/dont-set-shared-file-descriptors-to-non-blocking-mode.html#Bernstein https://jdebp.uk/FGA/dont-set-shared-file-descriptors-to-non... There were all sorts of little innovations in the operating systems world back then. Helios was another interesting one, with capabilities.
- beagle3 1y agoThe spectrum only had one mode: 256x192 1-but pixels, 32x24 palette (each 8x8 box had two colors, “paper” for a 0 pixel and “ink” for a 1 pixel). Other computers of the time (C64, Apple II, BBC / Acorn) had distinct text vs graphics modes, although some had a user-defined font which kind of makes the distinction less firm. But the spectrum only had a graphics mode.