-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog.z81
519 lines (358 loc) · 18.8 KB
/
ChangeLog.z81
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
2004-10-01 Russell Marks <russell.marks@ntlworld.com>
* Version 2.1.
* z81.1: added a more practical `best' emulation example, and
trimmed down see-also section.
* Added current version of tetris1k (with lines-cleared display),
and matching source in tetris1k-src-newer.tar.gz. Also moved the
games/demos to a new `games-etc' dir.
2004-09-17 Russell Marks <russell.marks@ntlworld.com>
* zx81get.c: was missing #include <stdlib.h>. Thanks to Brian
Schau for spotting this.
2001-11-03 Russell Marks <russell.marks@ntlworld.com>
* sound.c (sound_ay_overlay): envelope now applied when period is
zero. Fixes post-death sound in QS Defender.
2001-10-16 Russell Marks <russell.marks@ntlworld.com>
* sound.c (sound_beeper): fix for slight `spike' problem on VSYNC
tones.
2001-10-15 Russell Marks <russell.marks@ntlworld.com>
* sound.c (sound_ay_overlay): removed tone/noise counter
wraparound (which was mistaken).
2001-09-27 Russell Marks <russell.marks@ntlworld.com>
* Signal handler called on `bad' signals no longer tries to
immediately exit (which is potentially a bad idea), but merely
sets a flag so we can deal with it next time we would
ordinarily draw the screen and so on.
* common.c (usage_help): removed embedded LFs from string.
2001-08-12 Russell Marks <russell.marks@ntlworld.com>
* saverom/README: after a successful test of saverom with my ZX81,
tweaked a few things here slightly (having two `lines' of the
listing end with "LN 2 graphs7" was confusing, for example).
2001-08-06 Russell Marks <russell.marks@ntlworld.com>
* common.c (out): it looks like OUTs to FEh should turn off VSYNC
on ZX80. With this fix, the ZX80 space-invaders clone works.
* README: changed to say that only the ZX81 ROM is really required
before you can run z81. Bit of a simplification, but better than
saying you need both (which was never true).
* Added `saverom' dir, containing a program to save the ROM from a
ZX81, for loading via zx81get.
2001-08-02 Russell Marks <russell.marks@ntlworld.com>
* z80.h: `interrupted' isn't volatile these days. Thanks to Adam
again.
2001-07-31 Russell Marks <russell.marks@ntlworld.com>
* z80.c: needed #include <string.h> to avoid warnings (though
curiously, I didn't get any on gcc 2.95.2). Thanks to Adam J.
Richter for spotting this.
2001-07-27 Russell Marks <russell.marks@ntlworld.com>
* Version 2.0.
2001-06-26 Russell Marks <russell.marks@ntlworld.com>
* common.c (startsigsandtimer): fixed some signal-handling
problems; all `bad' signals which are handled are now blocked
while in the handler (via sigaction()'s sa_mask), and any planned
exit now works by raising a signal so that our signal-blocking
happens for that too.
2001-06-23 Russell Marks <russell.marks@ntlworld.com>
* New `GAMENOTES' file covering problems you might have loading
certain games (or more commonly, certain modified versions of
them).
* common.c (load_p): didn't previously load programs from
command-line which ended in `.P' (it tried to add a further `.p')
- it does now.
2001-06-21 Russell Marks <russell.marks@ntlworld.com>
* New `-i' option inverts the screen, giving a white-on-black
display.
* Added aydemo.p (along with source), intended as a demo of the
various AY-based addons. Currently only works with the Zon X, but
that should change in time. The tune is a port of my ingame music
for `zblast'. :-)
2001-06-20 Russell Marks <russell.marks@ntlworld.com>
* common.c (parseoptions): added option for ACB stereo. It's not
generally much use on the '81, but again, I had the code just
sitting there... :-) You add an `s' suffix to the AY board type,
e.g. `-a qs'.
* common.c: the LOAD "" file selector is no longer optional. There
was never much point in having that option anyway.
* Added Bi-Pak Zon X-81 sound addon support. Thanks to Andy
Styles for providing the necessary details to add this.
* common.c: you can now boot directly to the file selector (at
least when emulating a 16k ZX81), with `-l'. Aborting (with Space)
currently aborts the emulator, which is arguably inconsistent
given what the normal autoload does on error, but I think is
probably what you'd want.
2001-06-18 Russell Marks <russell.marks@ntlworld.com>
* sound.c: added support for AY-3-8910/8912-based sound chip
addons. Hey, I'd already written the AY code, so why not? :-)
Currently supports Quicksilva's one (start with `-a q' to enable
it), which gives effects in their Asteroids, Invaders and Defender
games. (The effects in Defender are quite good, BTW...) The clock
speed is currently a guesstimate, until I can find some
documentation.
* common.c (initmem): ok, it looks like an unexpanded ZX80 has 1k,
not 4. :-)
* When using `-V', you now get a visual indication of (busy) FAST
mode as you might expect; the screen turns black. My previous
non-synced display wasn't triggered when always in VSYNC, as it is
when grinding away in FAST mode.
* You can now enable display of the VSYNC signal with `-V'. This
is nice if you want to see LOAD/SAVE signals onscreen when using
LOAD/SAVE and `-L' or `-S', but it can be an annoyance when typing
in programs, as you get the line-entry flicker the ZX81 used to
have, which the default frameskip makes particularly off-putting
since it'll only be shown half the time...!
* common.c: you can now disable the LOAD and SAVE hooks, with `-L'
and `-S' respectively. This is mainly so there's something easy to
get at which makes a noise :-) (i.e. use `-sS' then save
something), though you don't get the matching display yet.
* Added sound support (ouch). Only for OSS (e.g. Linux) I'm
afraid. It's based on VSYNC, which I think is probably how sound
was usually produced. The code is based on my sound code for Fuse,
so Matan Ziv-Av deserves a large slice of credit for fixing many
problems with the original implementation :-), and the code would
never have been written in the first place without Philip
Kendall's emulator.
* common.c (printer_inout): fixed slight bug in the printer
support; previously, the first pixel line of a character was
shifted right one pixel, which was visible on block graphics and
inverse text.
2001-06-17 Russell Marks <russell.marks@ntlworld.com>
* z81.1: made option listing consistently bold, not a bold/italic
mix. This is a bad habit exhibited in a lot of my old man pages,
and I've got to start fixing them somewhen - this may as well be
the first. :-)
* Added printer support, very directly ported from xz80, so thanks
are entirely due to Ian Collier for this. Again. :-) The main
difference in z81 is that it outputs (as a picture) to a PBM file
rather than an X bitmap; they're even simpler, take less space,
and everything reads them. The printer support is *normally
disabled*, but you can enable it by running with `-p foo.pbm',
where foo.pbm is the file to direct any printout to. Note that
even when printing is disabled, the emulation goes through the
motions; this e.g. stops COPY from hanging the machine, as it
would otherwise.
* common.c (load_selector): wait for them to let go of all keys
before starting. Needed particularly for the 1k ZX81, as that
responds rather more quickly to LOAD "" than the 16k...
(in): now resets bit 7 of input port FEh, which fixes Namtir
Raiders. Also fixed reversed key-reading when more than one
bit was zero in the port's MSB.
* xmain.c: got rid of the rrshm vs. rrnoshm thing - most will be
using shared memory, and you'll probably have to drop the frame
rate a *lot* for non-local use (it only halved it). So it's best
to just stick to a 25fps default in all cases. Which has the added
advantage of matching the documented behaviour. :-)
2001-06-16 Russell Marks <russell.marks@ntlworld.com>
* common.c (parseoptions): ok, formalised that - removed `-s'
option for normal (slow) booting, as it always does that now
except when auto-loading.
* z80.c (mainloop): auto-load works again, and is actually better
than before - it starts up the program `instantly'. This is
probably just as well, as I don't think I'll be re-enabling
fast-boot apart from that (loading a program is a nice clean point
to hook into without video-related hassles, but such opportunities
are pretty rare).
* z81txt removed. I thought about some way of making it work by
interpreting characters in the screen bitmap, but it was really
just too nasty an idea to be worth bothering with.
2001-06-15 Russell Marks <russell.marks@ntlworld.com>
* You can now emulate a 1k ZX81, with `-u' (= unexpanded). (With
`-o', this emulates a 4k ZX80, which I think was the unexpanded
RAM size...?)
* xmain.c (main): X version previously ignored any `-r' setting,
fixed that. Also removed some unnecessary code.
* common.c (load_selector): selector works again.
* Massive reworking of display code and lots of related stuff.
It now works by actually emulating the workings of the display
(rather than just having the emulator look at D_FILE and draw
it), avoiding a lot of unsightly kludges previously needed in
order to get the thing running. This fixes a few things
relative to the previous behaviour - Rock Crush and Dan's
Revenge now work, high-score entry in ZX Galaxians works, the
ZX80 display no longer `goes weird' when updating :-), QS
Defender works better than it did before (but the screen is
strangely placed, etc.), the ZX81 emulation speed is more
accurate. The changes have left a few things broken for now -
the file selector, snapshot-based fast booting on the ZX81,
and auto-load. Oh, and the ZX80 screen is offset to the right
for some reason.
2001-05-13 Russell Marks <russell.marks@ntlworld.com>
* Version 1.3.1.
* common.c (load_p): incredibly moronic bug fixed - it seems I
managed to completely break all loading and saving *except* LOAD
"". Conclusive proof that I can type in my sleep, I guess. :-/
It's been a long time since I last did an x.y.1 release of
anything, but I think this is bad enough to call for it...
2001-05-11 Russell Marks <russell.marks@ntlworld.com>
* common.c (startsigsandtimer): now uses SA_RESETHAND if
SA_ONESHOT isn't available, which should avoid a compilation
problem on Solaris. Thanks to Philip Kendall for pointing this
out.
2001-03-21 Russell Marks <russell.marks@ntlworld.com>
* Version 1.3.
* The ROMs are no longer included, as the legal situation seems
more uncertain than I'd previously thought. (This change was
actually made a few weeks ago, but I forgot to mention it here.)
2001-03-02 Russell Marks <russell.marks@ntlworld.com>
* common.c (libdir): fixed several possible buffer overruns.
Package maintainers doing an audit are advised to do more than
just grep for strcpy/strcat etc. ;-), as I've not just used
snprintf() everywhere...
(load_selector): selector now supports shift-q and shift-a (from
the ZX81's perspective, so Alt/Meta also works) for paging up and
down in the file list.
* Makefile: added uninstall target, and removed z81txt from
default (`all') target such that you have to explicitly choose to
make it.
2001-02-19 Russell Marks <russell.marks@ntlworld.com>
* Removed zx81*.gif and zx81.cdr.gz. While I drew this myself, it
could easily be seen as infringing on Sinclair's keyboard design,
since it was obviously intended to be a close match. Better not to
risk it, I think. I'd hope zx8[01]kybd.pbm are ok, as these are
more like abstracted diagrams than close copies.
2000-12-16 Russell Marks <russell.marks@ntlworld.com>
* common.c (do_interrupt): avoid gcc `ambiguous else' warning.
(load_selector): selector now allows simple directory navigation.
1999-07-19 Russell Marks <rus@cartman>
* Makefile: z81 doesn't use vgagl, so don't link it! Also, removed
WHITE_ON_BLACK def for z81txt; that should really apply to all
versions or none, and shouldn't be a compile-time option even
then.
1999-06-17 Russell Marks <rus@cartman>
* xmain.c: added support for `delete window' message from window
manager. (The code is pinched from dosemu, which in turn pinched
it from xloadimage. :-))
1999-06-15 Russell Marks <rus@cartman>
* xmain.c: fixed the old bug where the X version wasn't redrawing.
This was due to Expose events on the image window not being
propagated to the parent (the slightly larger `borderwin').
1999-06-12 Russell Marks <rus@cartman>
* Makefile: changed default SCALE to 2. I didn't quite have the
guts to do this until getting a faster machine myself (i.e. one
which can cope with it), but now I have I can see how much more
sensible a default it is. :-)
1999-05-29 Russell Marks <rus@lifeson>
* common.c: gave IMC credit in usage message.
1999-05-11 Russell Marks <rus@lifeson>
* Version 1.2.
* z81.1: reformatted synopsis to avoid horrible line-break.
1999-04-26 Russell Marks <rus@lifeson>
* common.c: fixed auto-load bug, where most programs which didn't
just do an immediate USR after loading acted oddly or simply
crashed. The way I've avoided this is to reimplement the auto-load
in a slightly more BFI manner, by automatically `typing' a LOAD
command. :-)
* common.c: massively sped up checking for hi-res screen. Unlikely
to be noticeable in practice, though. :-)
1999-04-24 Russell Marks <rus@lifeson>
* README: various corrections and clarifications.
* Added `zx81get', which loads ZX81 programs via /dev/dsp
(presumably from tape). It's not perfect, but it's worked
pretty well for me - I've managed to get a couple of really
horrible-sounding recordings to load successfully. However,
it's Linux-specific (AFAIK) and needs a sound device which can
record in 22kHz 8-bit mono.
1999-04-17 Russell Marks <rus@lifeson>
* xmain.c: fixed 1-bit mono support to work on servers with
`LSBFirst' bit order. Thanks to Christopher Allen for pointing me
in the right direction on this one.
1999-03-11 Russell Marks <rus@lifeson>
* Version 1.1.
* Updated tetris-src etc. so it refers to my hacked copy of zmac
rather than relying on a patch to the old comp.sources.unix one.
Also added mine81, another PD ZX81 program I wrote a while back.
1999-02-28 Russell Marks <rus@lifeson>
* common.c: no longer assumes struct sigaction's sa_mask can be
zeroed with a simple `=0' (this fix was needed for glibc).
1998-11-03 Russell Marks <rus@lifeson>
* common.c: made reading from keyboard port work if more than one
bit of a8..a15 is zeroed, which mostly fixes "ZX Galaxians" (but
see TODO).
* z80.c: now sets top bit of R on reset. Thanks to Claudio
Carlquist for finding this bug.
1998-10-16 Russell Marks <rus@lifeson>
* xmain.c: now supports every bit depth I could test - in all
that's 1-bit, 4, 8, 15, 16, 24, and 32. The way it does it is
impressively stupid :-), but it should at least work.
1998-10-15 Russell Marks <rus@lifeson>
* Made Z81 use svgalib's raw keyboard support. Unfortunately,
Z81txt still has to use the rawkey stuff, so I put that in
txtrawkey.c.
Tue Sep 1 12:09:17 1998 Russell Marks <rus@lifeson>
* common.c: if Esc was pressed when file selector was being used,
it effectively locked up. Fixed that by ignoring Esc when in file
selector (which seems the most sensible thing to do).
Mon Mar 30 20:31:29 1998 Russell Marks <rus@lifeson>
* Version 1.0.
* common.c: added file selector. It works via the ZX81's screen,
and so works on all three versions.
* The ZX81 now boots instantly, by using a snapshot of a
booted machine. Use `-s' for the old behaviour.
Thu Mar 12 19:36:39 1998 Russell Marks <rus@lifeson>
* commonraw.c: fixed sneaky little bug introduced in the recent
code reorganisation which meant that the `z' key didn't work.
* Finished off ZX80 support.
Wed Feb 18 03:16:46 1998 Russell Marks <rus@lifeson>
* Added support for starting a .P file from the cmdline.
Tue Feb 17 21:33:01 1998 Russell Marks <rus@lifeson>
* Started adding ZX80 support. Haven't got the rom yet, so there
are limits to how much I can do, but... :-)
Tue Feb 10 04:49:36 1998 Russell Marks <rus@lifeson>
* Fairly major reorganisation of the code, ANSIfying it and moving
out previously duplicated bits (where possible) to common*.c. Also
removed the rather pointless top-speed and low-rate toggles in
Z81/Z81txt.
* xmain.c: added support for help screen.
* main.c: switched to an uglier but more readable hand-hacked help
screen (zx81kybd.pbm) which I should be able to also use in the X
version.
* xmain.c: partially `fixed' problem with opaque movement under X;
at least now it redraws after the movement has finished.
Tue Feb 3 04:21:44 1998 Russell Marks <rus@lifeson>
* Makefile: moved default position for rom etc. to
/usr/local/lib/z81. The idea behind having it in /usr/local/lib
was that other emulators could share the rom, but in practice I
doubt there are going to be too many other Unix-based ZX81
emulators. :-) (Besides, it's only 8k, so having unnecessary
copies wouldn't be a big deal.)
Sat Jan 11 04:06:46 1997 Russell Marks <rus@lifeson>
* Version 0.2.
* Added 1k tetris.
Thu Oct 17 16:23:06 1996 Russell Marks <rus@lifeson>
* Added zx81{sml,big}.gif and zx81.cdr.gz.
Sun Oct 13 03:55:05 1996 Russell Marks <rus@lifeson>
* main.c: made similar change. No point doing it for txtmain.c,
that's so fast already it'd probably just make it slower.
* xmain.c: speeded up screen refresh hugely, by following xz80's
lead and updating differentially. This is a real pain given the
ZX81's screen, and a fair bit of BFI is required to implement it,
but it's *so* much faster.
Sat Oct 12 01:27:07 1996 Russell Marks <rus@lifeson>
* Made detection of end of `booting' a lot more sensible.
* Updated z81/z81txt to use sigaction rather than signal.
* xmain.c: (and others) quick hack to support reset. Fairly
painful, but it works well enough.
Fri Oct 11 16:33:53 1996 Russell Marks <rus@lifeson>
* xmain.c: created, after semi-infinite amounts of hacking. :-) An
X version (finally).
Fri May 10 02:21:09 1996 Russell Marks <rus@lifeson>
* Added rather kludgey but working PAUSE support.
Sat Apr 6 20:25:29 1996 Russell Marks <rus@lifeson>
* Fixed keyboard hardware emulation - top 3 bits were 0 before
(now are all 1). "3D Grand Prix" didn't work before due to this
bug. And does now. :-)
* Added maximum-speed and low-refresh-rate toggles on F9 and F8
respectively.
Sat Apr 6 04:38:42 1996 Russell Marks <rus@lifeson>
* main.c: added help screen with ZX81 keyboard layout.
Wed Apr 3 02:05:46 1996 Russell Marks <rus@lifeson>
* main.c: added high-res support.
Mon Mar 25 04:32:28 1996 Russell Marks <rus@lifeson>
* txtmain.c: fixed screen updating here, too.
* main.c: fixed screen updating so it works properly with less
than 32x24.
* z81.1: added.
* main.c: made it read rom from /usr/local/lib.
Tue Sep 26 17:59:21 1995 Russell Marks <rus@lifeson>
* New text-mode variant, 'z81txt'. Still requires a console, but
will work on MDA/CGA/EGA displays (as well as VGA, though 'z81' is
preferable in that case).
Mon Aug 28 20:40:48 1995 Russell Marks <rus@lifeson>
* Version 0.1.