The normal process is:
CPU attempts to fetch an op-code instruction byte from the video file. ULA steals that byte as a character code and feeds the CPU a NOP op-code byte instead. Immediately following that is a refresh cycle. The ULA uses the top part of the refresh address but substitutes the character code just read and the contents of an internal three-...
The ZX Spectrum has two formats for storing numbers, both 40 bits, or five bytes.
Jup, like many other machines - one for float and one for integer.
The second is some kind of 16-bit integer format,
Not some kind, but the integer format.
fluffed up to fit the same amount of space as a float.
Which was done to make variable memory management easy.
The ZX printer is, like just about anything that carries the Sinclair label, a very minimalistic device - It only needs very few lines from the computer to actually work:
Address bus: The printer does only use A2, nothing else - When both A2 and IOREQ are low, the I/O port of the printer will sample the data bus or put data onto it, depending on the /WR and ...
Thank you @Raffzahn for the comment that inspired me to think of something blocking the video signal.
The initial problem described in the previous question was that the ZX81 was showing a white screen.
I have an old version of the ZX81, so there was doubt about the absence of the back porch in the video signal. This doubt was removed by adding the 555-based ...
That portion of the video signal is generated directly by the ULA; early ZX81s just don't generate a back porch, which was seemingly good enough for the majority of televisions but problematic enough to be fixed in a later revision despite the machine's commercial lifetime being only a year. As you've observed, the absence of a back porch causes some ...
POKE 16418,0 is for the ZX81, not the Spectrum - the equivalent system variable on the Spectrum is at 23659.
You need to take care when poking this address, as it's liable to cause a crash if the program exits (or displays a scroll? prompt) while the lower screen is disabled, but the following program demonstrates the principle:
10 POKE 23659,0
20 PRINT AT ...
MONS 3 in the ZX Spectrum, for example, changes the instruction at the break address by a CALL to an entry point in MONS. As MONS is executed, it replaces back the changed instruction with the original one (and of course store in memory the current state of all Z80 registers), so when the disassembler is invoked to give you a assembly listing, you see the ...
It was neither due history or electronic but for design reason:
The 16 KiB RAM pack was intended to be sold to existing (and new *1) ZX80 users as well. The ZX80 has its expansion port on bavk side, all the way to the left, while the ZX81 got it moved over to the right side. Only a package not much wider than the connector would fit both equally well.
But as I understand it, the then current 16kbit RAM chips actually required three different voltages: -5, +5, +12.
Right, and the 'missing' voltages (-5V,+12V) get generated from the +9V source via a discrete DC-DC converter - that's all the little pieces on the second board.
The difference between the RAM-Packs for ZX80/81 is all in the colour :) In fact, ...
You might be willing to check this hardware list from World of Spectrum. It contains useful information and magazine advertisements of each hardware piece.
Specifically, DK’Tronics memory expansion kits and DK’Tronics keyboard match you DK’Tronics memories, but the memory expansion kits weren’t as big as indicated in your question: “only” 16 KiB or 64 KiB.
It depends on a number of factors, a major one being the material that the membrane is made from. Various types of plastics can be used, with different properties. Some will age and become brittle, or otherwise degrade over time.
The contact mechanism for each switch also varies. Some use metal domes that buckle for a somewhat tactile feel, and the metal ...
I would skip the existing output entirely.
Buy a Chroma 81, which plugs into the expansion slot — no internal modifications necessary — and then monitors the internal bus to reproduce
the video stream of its own volition. It has a SCART socket that you can then connect to your TV, modern or retro.
The Chroma's primary purpose is to add colour graphics ...
Did one or the other have a pass-through for the expansion bus?
There was no other peripheral (by Sinclair) for the ZX80 than the 1..3 KiB static RAM or the later 16 KiB DRAM version (*1).
Most (*2) third party vendors made theirs offering a pass-through.
Did one or the other have a pass-through for the expansion bus?
When the ZX-Printer came for the ...
You may be thinking of the BASICare Micro System, an advert for which can be seen here:
In theory, you could use it to expand the RAM of your ZX81 up to a megabyte, although there would be very little use of it past 16K.
I don't know about the normal printing routines in ZX Spectrum BASIC, but you can directly access the screen memory using POKE from BASIC. You'll need to work out where to get the 8 bytes of bitmap data comprising the character, then POKE them into the 8 bytes (on a 256-byte stride) corresponding to the desired character cell.
According to this, the first ...
A few 'home' computers from the '80s could output a VGA signal, including:-
Commodore Amiga (with Flicker Fixer)
PC clones that had VGA on board or could take a VGA card (eg.
But for the vast majority that didn't produce a VGA signal you need an upscaler. Computers that only had RF output, such as the ZX81, ZX Spectrum, ...
The easiest way to tell is by looking at the traces on the board.
If they look curvy, as though hand-drawn, it's an issue 1.
If they're in more or less straight lines, it's a 2 or 3.
Seeing as issue 2 boards are exceedingly rare in the wild, it's almost certainly the latter. You can confirm this by looking for the issue number on the board, which should ...
Doing integer arithmetic is by some orders of magnitude faster as floating point. So if there is a statement like
LET a = b + c
the interpreter would first check if both a and b are integers. If yes, then it can proceed with a simple 16-bit addition, like ADD HL, BC to get the result, and directly store it into c. Otherwise, it would have to do an ...
Some early computers used a membrane keyboard (ZX80, ZX81, Atari 400), or semi-membrane with minimal keys (ZX Spectrum).
Not just early ones. Membrane keyboards are still made and used today, usually for industrial use, as they have inherent advantages - like every design.
This is because it was cheaper than a mechanical keyboard.
That's right, at least ...
The only detail you’re missing is that A15 must be active in order for a processor M1 cycle to be treated as a video fetch.
The full memory map is:
4000–7fff: RAM, no special handling;
8000–ffff: RAM, with M1 cycles subverted into video fetches.
Both ROM and RAM just mirror within their areas.
That’s 16kb granularity, so the top two ...
Looking at the diagrams you provided, the data pins, interrupt pins, some of the ground pins, and +5v are all physically in the same place (imagine pins 1 and 2 on the Spectrum pinout being chopped off).
On the assumption that those are the only pins needed, provided the printer connector has empty space to accommodate the two extra pins on the left and ...
I bought and read 'Complete (ZX) Spectrum ROM Disassembly' (Ian Logan, 1983, very out of print) many years ago, here are the answers, from my memory. (Btw, the ZX80 ROM is insanely tight Z80 assembler considering everything Sinclair jammed into ~13K of ROM (and still had to leave about 4K of the 16K for video buffer, IIRC). Tighter than the Commodore 64 or ...
According to this page: RC2014 ZX printer interface the printer is only using the data-bus, /IORQ, /RD, /WR and address A2.
All of these will be correctly connected in both cases.
The site also claims that the original ZXprinter might not work, since it also used a +9 volt connection from the computer. As I understand from ZX80/81 edge connector ther +9 on ...
(Community Wiki because mcleod_ideafix’s answer was correct despite being deleted)
The pixel fetch is a subversion of the refresh cycle; the ZX81 has the necessary analogue electronics in place to create an equivalent of the Spectrum’s floating bus for the low nine address pins so when the ULA drives its nine address pins, it overwrites the low nine bits of ...
From a glance at Chris Smith's The ZX Spectrum ULA - How To Design A Microcomputer, the ULA for the Spectrum also has A14-A15. It uses these lines to identify whether the CPU is attempting to access the 16K of RAM where the video RAM is located. Changing these values when they're being read by the video circuitry would not be desirable.
On page 192, he ...
@greenonline, I can't find it but think I recall the advert you are thinking of. Was a set of modules Daisy chained behind a ZX81.. offering number of models including memory and hires graphics etc.
Don't think you have found it yet, but recall it was not often I saw it even though I used to read the same magazines. I remember thinking, why would you spend ...