4 ms·
Good times indeed ! Off topic. Little quiz: RANDOMIZE USR 0 What for ?
by fasteo 6y ago
Good times indeed !
Off topic. Little quiz:
RANDOMIZE USR 0
What for ?
- klelatti 6y agoShortest number of keypresses for a system reset?
- fasteo 6y agobingo !
- klelatti 6y agoI remember trying to write machine code on my Speccy and it seemed that 99% of attempted runs resulted in a system reset. Always assumed that the professional games writers were using a CP/M machine or something similar with proper debugging support!
- pjmlp 6y agoIndeed, as you can find out by magazines like RetroGaming, many were using 16 or 32 bit machines and then deploying into the Spectrum.
- beardyw 6y agoHa, I thought that must be true at the time. It convinced me not to persevere. Good to hear I was right.
- pjmlp 6y agoIf I remember correctly most developers could only afford such systems after slowly establishing themselves, and they weren't cheap for 80's money. So preservance using what the 8bit systems offered was a must anyway.
- klelatti 6y agoIt would be interesting to recreate the full 1980s Spectrum development experience. Emulating a 1980s 16 bit machine on a modern PC, which runs a development system running, presumably, a Spectrum emulator!
- neilwilson 6y agoBonus points. The difference from NEW being?
- klelatti 6y agoRAMTOP!
- rwmj 6y agoOK, here's one (for the ZX81). Why did I choose ports 16509 and 16514 for the libvirt daemon (https://libvirt.org/remote.html https://libvirt.org/remote.html)?
- klelatti 6y ago10 REM TAN 20 PRINT USR 16514 16514
- rwmj 6y agoGood one. TAN (the keyword, not the 3 letters) is hex C9 which is also RET in Z80 machine code. The address of the first byte after the keyword in the first statement in a ZX81 program is 16514. USR 16514 calls this address, which immediately returns. The PRINT statement then prints the result of the USR expression, which is the contents of the BC register on return, which I guess happens to contain the start address (since not otherwise set) as a side effect of the implementation. 16509 is the address of the start of the program in memory. Bytes 16509-16510 are the line number (2 byte LSB int). Bytes 16511-16512 are the length of the line. Byte 16513 is the command keyword (REM).
- klelatti 6y agoAfter thirty odd years I still have these numbers encoded into and handful of neurons somewhere. Thank you for getting me to dig them out and great that they live on in libvirt! ps The memory mapping reminded me that ZX81 managed to squeeze a 32 x 24 screen into a 1k total RAM. I think someone managed to write a chess program with those restrictions - but only using 8 x 8 or so of the screen.
- rwmj 6y agoIndeed, 1K chess by David Horne: https://en.wikipedia.org/wiki/1K_ZX_Chess https://en.wikipedia.org/wiki/1K_ZX_Chess I had this chess game on tape, and I've often wondered if the two are related, but this one needed 16K: http://www.zx81stuff.org.uk/zx81/tape/ZXChessII(Black) http://www.zx81stuff.org.uk/zx81/tape/ZXChessII(Black)