75

well, if you really want those games back, just buy the tape. Then buy a cassette player (they're cheap, you can try to get a high quality one) or find a friend who still has one. Now: Make sure to clean up the player heads with isopropyl alcohool before using it. Rewind the tape Extract it and use 2 pencils on the reels to gently tighten the tape so it's ...


65

Both the Sinclair ZX Spectrum and the Pac-Man arcade machine used the Zilog Z 80 CPU. Pac-Man's display was slightly larger and vertical at 224×288 while the Speccy's was horizontal at 256×192. The Speccy did not have hardware sprites or pixel-addressable colours. The original 48K Speccy only had "1 bit" beeper sound though later models had an AY ...


49

First, many thanks for the great question. This may well be my favourite retrocomputing video of them all, so I contemplated having a look at the executable for a while myself. So, this is what I did: To download the audio, I went to the same YouTube video and used 4K Video Downloader (mainly because it clearly shows which audio is the original one, so that ...


32

Back in the '80s, I wrote a couple of games too. A few years ago I have found the old cassettes with those games, but I had no tape deck at all. I bought a "USB walkman" Basetech BT-USB-TAPE-100 on eBay for a few dollars. Then I just plugged this deck to my PC and record my old tapes to uncompressed WAV (at full possible sample speed, 48 kHz, 16 ...


24

The big improvement to the language in Locomotive BASIC, compared to Sinclair BASIC (and many other BASICs), was the addition of timer support: AFTER 50,0 GOSUB 320 would call the subroutine at line 320 after a second, and EVERY 500,0 GOSUB 320 would call the subroutine every ten seconds. In both cases, the first value is the interval in fiftieths of a ...


23

Was Locomotive BASIC significantly better than Sinclair BASIC? TL;DR: Oh, yes, it was! I'm aware that both Basics were more advanced than the C64 Microsoft implementation, Comparison of C64 BASIC to other BASICs of the same time is never in favour for the C64, as it's a quick port of the original 1977 PET Version. but neither [Locomotive BASIC, BBC ...


18

It may help if you load the address of the text to be printed. After all, you relocated the routine including the text, but still load the old address: ld de, text ; 11 0E 7F; => 17 14 127 7F0Eh equals 32,526, which is fine with the orriginal address of 32,512. With 65,415 as start address, DE should now be loaded with 65,429, or FF95h, as ...


17

As you guessed, LOAD "" loads a BASIC loader. LOAD "" CODE loads a machine code program saved on the tape straight into memory, at the addresses given when using SAVE name CODE start, length Doing it this way means you can squeeze the most code into the memory, not wasting any on the loader or a loading screen.


16

In regards to "is there a way to play my old games again?", there is a good chance that they are available online somewhere. You might start with the Internet Archive. Collectors and enthusiasts have already made archive copies of almost all spectrum software so if your games were ever on sale there is an excellent chance that someone has already ...


16

Did you check the archive at www.worldofspectrum.org? They preserve whatever spectrum software they can get their hands on, not just games. If you don't find it there, it is likely someone in the forums will assist you to transfer it to .tzx / .tap format and they will upload it to the site. Btw, I've bought many used tapes and was able to load them on a ...


16

As far as I did my own experiments with the ZX Spectrum keyboard, I strongly disagree with that quoted text. The ZX Spectrum keyboard did ghosting, of course. Let's look at the key matrix: Imagine you press A, S, and Z keys together. It results in a "ghosted" Caps Shift. When the CPU starts to check the CS-Z-X-C-V row, it drives the A8 line to &...


13

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 ...


12

Considering how much of a rush job Locomotive BASIC was, it's remarkably good. But it's not perfect. Sinclair BASIC has one powerful keyword that Locomotive BASIC lacks: VAL. Sure, Locomotive BASIC has a VAL() function, but Sinclair's one is a function evaluator: 10 FOR X=-5 TO 5 20 PRINT X,VAL ("X * X") 30 NEXT X This would fail on an Amstrad CPC, but on ...


12

Having both an Oric Atmos and both a rubber Keyed and later plus Spectrum I can tell you the the Oric keyboard is vastly superior with a firm and positive action to each key. The feel of the keyboard is not too far off the feel of a CBM 16 or 64 but not as good as the Acorn range . The Oric physical size is also similar to the rubber keyed Spectrum too , ...


11

I'm not familiar with the C64, and didn't do much with the Apple ][ back in the day, but I did spend a lot of time under the hood of my TRS-80. There wasn't a lot of room for plugin accelerators in the TRS-80 Model I. I did put in a CP/M daughtercard, which remapped system memory to get ROM out of the low address space, but didn't replace the processor. ...


11

Assuming you use the SDCC backend: SDCCs printf does not include float support by default. You need to recompile the z80.lib library with USE_FLOATS=1 set in printf_large.c


11

About the R register on a real Z80: But is the 8th bit actually used? Yes, it's freely available and won't be touched by any instruction except loading R Is its behaviour undocumented or can it only be altered by loading it with a value from the accumulator It's well documented and can be used like assumed. When loaded all 8 bits from A are stored in R - ...


11

The .z80 format comes from the Z80 emulator by Gerton Lunter. He released some documentation about the file formats used in it, and regarding offsets 11 and 12, this is what the manual says: .Z80 FILES: ----------- The old .Z80 snapshot format (for version 1.45 and below) looks like this: Offset Length Description 0 1 A register ...


10

Whilst Timex assembled Sinclair ZX Spectrum computers, the Timex architecture of the TS/TC 2068 is a reengineering of the ZX Sinclair behaviour with improved and more reliable technology. In the particular case of the Timex 2068, it has 128K of RAM, 2 ROMs, an extended BASIC, a new paging scheme, new video modes, and a sound chipset. The downside is some ...


10

The second shift register is wired to provide a 4-cycle delay after the pixel data is loaded before it is displayed. This is presumably designed to allow the system enough time to load the corresponding attribute data into the pair of storage multiplexers labelled D30 and D31 after the pixels are fetched but before they start displaying; if it were missing, ...


9

The Oric-1 improved somewhat over the ZX Spectrum's unusual chiclet keyboard. I guess the keyword too look for is "somewhat". Did it actually improve on the Spectrum's keyboard? If so, how? Well, much the way you already mentioned by having hard plastic caps instead of those rubbers. It gives a better feeling about pressing a key or not as all ...


9

I'd bet on some kind of prehistoric "copy protection", or the oddity of the software house production process. The most usual way was to have a short BASIC loader (e.g. 10 CLEAR 24899: LOAD "" CODE: RANDOMIZE USR 24900) saved with LINE 10 for autostart after load. The second file was a code itself. BASIC made the necessary operations: prepare the memory ...


9

Computer "Composit" (Leningrad+). http://sblive.narod.ru/ZX-Spectrum/Composite/Composite.htm http://sblive.narod.ru/ZX-Spectrum/Composite/CompositeSCH-MONT.gif Left to right: KEMPSTON Right Left Down Up Attack/Fire Common TAPE Input Ground Out TV Red Green Audio Out Blue Video Out Ground +5V 0.6 Ampers +5 Volts, 1 Amper Ground Ground Ground ...


9

Yes, quite possibly. Unless the tape is damaged with complete dropouts, I would be cautiously optimistic that you can recover it. While ageing tends to increase wow/flutter, and can cause the recording to "fade" for lack of a better word, complete drop-out is uncommon unless the tape is actually disintegrating, or the oxide is flaking off. There ...


8

Check this Spectrum tape interface: Pulses A 'pulse' here is either a mark or a space, so 2 pulses makes a complete square wave cycle. Pilot tone: before each block is a sequence of 8063 (header) or 3223 (data) pulses, each of length 2168 T-states. Sync pulses: the pilot tone is followed by two sync pulses of 667 and 735 T-states resp....


8

For games with very distinct playstyles per level, such as Ghostbusters II https://m.youtube.com/watch?v=4wnPZEM1IvQ (sewer drop, side scroller) and the 128k version of Short Circuit (exploration mode, side scroller mode), the segments of the game were closer to different games entirely than a common engine into which things could be loaded. (This is ...


8

The main TRS-80 line (Model I, III and 4) had several third party Z-80 accelerator boards. The Archbold board could bring the Model I up to 5.3 MHz from 1.77 MHz. The Holmes Sprinter boosted the Model I up to 5.32 MHz. It came in a Model III version to boost it from 2.027 MHz to 5.07 MHz. The Model 4 had several speedup board options. Incidentally, the ...


8

Interrupt Mode 2 is not a ZX Spectrum feature, it's a feature of the Zilog Z80 CPU itself. Per Raffzahn@'s comment, the answer to your question kinda depends on what kind of threading you're talking about. There are generally two levels of abstraction when it comes to multithreading, and two meanings of the term. First is the hardware level Simultaneous ...


8

There's just one thing though: the Z80 doesn't flip the highest bit of the R register, True and so R only iterates across 32k. Not really, it doesn't access 32 Ki but 128 rows. So how does the Leningrad refresh the entire DRAM? Well, like any other machine using 4164 RAMs - by refreshing all 128 rows. It is important to separate address ...


8

It doesn't make any difference. The border colour changes between red and cyan whenever the tape loading routine detects a change in level between low and high, and this happens many times over the period that a video frame is being sent to the display (from top to bottom), producing the stripes. Static stripes would just mean that the level changes are ...


Only top voted, non community-wiki answers of a minimum length are eligible