-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
1866 lines (1279 loc) · 69.2 KB
/
ChangeLog
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
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2001-06-07 Russell Marks <[email protected]>
* Version 1.3.
* Ok, I've put this off long enough already; let's just hope I
don't need a bugfix zip for *this* version. :-)
* doc/zcn.txt: ok, oakland's CP/M archive seems to have gone, but
wuarchive still have a copy. Mentioned that.
2001-05-25 Russell Marks <[email protected]>
* doc/zcn.txt: added mention of DNA's death (sigh) to the Infocom
games section (since it mentions HHGTTG).
2001-05-24 Russell Marks <[email protected]>
* doc/zcn.txt: added section on getting a memory card (and how to
try (ZCN) before you buy one :-)), and a mention of the new GNU
GPL FAQ.
2001-05-20 Russell Marks <[email protected]>
* doc/zcn.txt: added "Why do the batteries run down more quickly
on ZCN?" bit to Q&A section, covering serial line driver/backlight
issues.
2001-05-03 Russell Marks <[email protected]>
* src/serial.z (linedrvop): now filters out serial interrupts if
we've done a `serial 0' (i.e. running with line driver off) - this
should stop the junk ints you previously got after doing that.
* utils/lfconv.z (done): don't need to close files on ZCN, sure,
but I'm not using ZCN as such, I'm using stdio.z. So it previously
lost the last record on almost all files. Whoops. :-) Fixed now.
2001-04-20 Russell Marks <[email protected]>
* src/bdos.z (mfdone): my checking for dr being `?' when writing
match FCB was broken. It looks like it's *always* been broken, so
this probably doesn't affect too much... :-)
(matchfcb): various optimisations. Mostly for speed, though I
don't know if it's really sped anything up much.
* src/card.z (cread128): saved two bytes on `ld bc,128's. :-)
2001-04-19 Russell Marks <[email protected]>
* utils/rrxfer.z: now mostly-working on NC200. The only remaining
problem is that it screws up for files more than 56k into upper
memory, so, don't do that. :-)
* utils/runrom.z: now works on NC200.
2001-04-18 Russell Marks <[email protected]>
* src/misc.z (scrnwlp): screen-dumping now works on NC200.
* src/term.z (visbell): screen-flashing `bell' wasn't working on
NC200; fixed that.
* src/inthndl.z (intrrupt): wahay! Finally got NC200 poweroff
working - it uses a normal interrupt, not NMI. Of course, this can
only work if interrupts are enabled (not my fault :-)), but they
usually will be.
2001-04-16 Russell Marks <[email protected]>
* utils/bigv.z: now works on NC200.
* utils/spell.z (start): now works on NC200.
* utils/spellwd.z (start): previously would crash when run without
args, when spellwd wasn't the last command you'd run.
(lowerdun): now works on NC200.
* doc/nc200.txt: an attempt to cover all the NC200 stuff in one
place.
* utils/lfconv.z: ok, I finally got annoyed enough at forgetting
to convert an LF-only file before transferring it that I've
written a line-endings converter. :-) It converts LF-only files to
CR/LF, i.e. converts Unix format to CP/M (and MS-DOS) format.
* utils/Makefile (utils): a few of the more obscure utils are now
moved to the `bin/extra' dir, to keep it so that *.{com,pma} in
the `bin' dir can fit on a single bootable ZCN drive (it was still
just about ok before, but I doubt it'd have lasted much longer).
2001-04-14 Russell Marks <[email protected]>
* Now has backlight support on the NC200. By analogy with the way
the serial line driver is handled, this is on by default; you can
disable it with `light 0' (and re-enable with `light 1').
* utils/keyb.z: `keyb', sets keyboard map. Currently only
supports UK (the usual built-in keymap), and Dvorak on a UK
layout. Thanks to Ian Miller for suggesting Dvorak support,
which I generalised to this; if anyone wants other keymaps
supported, contact me. Obviously I'd like to support the
non-UK maps, but I need to know what they're like first...
* src/zcnfunc.z (zfkeymaps): added keymap-addr-returning function.
It should be possible to add a utility to change keymaps using
this.
* man/view.z: `man' now uses 21 lines on NC200.
* src/internal.z: `more' command now uses 21 lines in zcn200.bin.
2001-04-02 Russell Marks <[email protected]>
* doc/zcn.txt: clarified "Tight Interrupts" section slightly.
2001-03-16 Russell Marks <[email protected]>
* src/init.z (bootsys): now clears any pending interrupts on
startup. Seems to be needed on the NC200 when rebooting from any
of my ported speccy games :-), and is probably a good idea anyway.
* src/internal.z (isyswrt): actually, it was just as well I did
that (see below), in a way - `sys' previously didn't clear the
`cf1zero' part of the boot block, such that if that area got
corrupted at all, ZCN wouldn't boot and you could never fix it
with `sys'. Ordinarly, of course, you'd never notice this... but
it does things properly now.
* src/init.z (bootsys): whoops, screwed up booting-from-card with
recent NC200 stuff. :-) Fixed that.
2001-03-10 Russell Marks <[email protected]>
* NC200 now has 21-line display. I've done this by using one of
the `extra' RAM pages for the top 16k of RAM ordinarily, freeing
up what would otherwise be the top RAM page for use as the screen.
This breaks *all* ZCN programs with graphics, but since most of
those will have been written by me :-), this should be fixable in
time. But for now, it makes the NC200 nicely usable for your
average CP/M-ish program, which I'm sure is preferable overall.
Note that in time I may be able to make the TPA 4k bigger on the
'200 - I'm not going to risk it for ZCN 1.3 though.
* doc/zcnprog.txt: documented new function.
* src/zcnfunc.z: added machine type function. Well, really kernel
type (zcn.bin or zcn200.bin), but it's effectively the machine
type.
2001-03-09 Russell Marks <[email protected]>
* src/init.z (bootsys): prevent any possible NMI interference
while booting. Unlikely to have been a problem until now, but I'm
shortly going to add something which'll slow down the NC200 boot,
so...
* src/ccp.z (battchk): fixed NC200 battery warnings.
* Fixed serial I/O on the NC200.
* src/inthndl.z (krdplp): major NC200 fix - zcn200.bin didn't work
on a real NC200 before this! (It turns out that the '200 needs
keyboard interrupts explicitly acknowledged, unlike the '100.)
Thanks to Ian Miller for doing the masses of testing needed to
figure this one out.
2001-02-23 Russell Marks <[email protected]>
* support/README: a couple of minor fixes.
* doc/zcn.txt (Copying and Modifying ZCN): simplified a bit.
2000-12-14 Russell Marks <[email protected]>
* zcnpaint/zcnpaint.z (ieraser): previously the eraser would draw
vertical or (worse) horizontal lines when used right at the
top/left of the screen - of (theoretically) 255 or 65535 pixels
height/width respectively. Oops. :-) Fixed that.
* doc/zcn.txt: made spacing between commands more consistent in
internal/external command docs.
* utils/bigv.z (viewlp): added DEL as an alternative way to page
backwards.
* Bundled copy of zmac is now version 1.3. I'm not sure if this is
the latest version, but it's the latest version I've thoroughly
tested so I think it's best to stick with that for now.
(Admittedly the MS-DOS zmac.exe is still of version 1.1, but that
should still work.)
* doc/zcn.txt: updated metalab URLs to point to ibiblio.
* support/README: updated metalab (now ibiblio) URLs.
* doc/zcn.txt: changed lists (N items preceded by `-') to all be
consistently indented 2 spaces. Previously some were and some
weren't (sometimes even in the same section).
2000-10-11 Russell Marks <[email protected]>
* Added `serial' command, which allows you to disable/re-enable
the serial line driver. It's enabled by default (just as in
previous versions of ZCN), but disabling it should prolong battery
life. The implementation is a bit rough-and-ready, so don't be too
surprised if serial I/O acts strangely after you do a `serial 0'.
:-) Thanks to Emmanuel Roussin for bringing this up.
2000-10-01 Russell Marks <[email protected]>
* NEWS: changed to my usual format.
2000-09-19 Russell Marks <[email protected]>
* doc/zcn.txt: documented the minimal NC200 support and
`zcn200.bin'.
* Updated contact address everywhere I found an outdated one.
2000-09-04 Russell Marks <[email protected]>
* doc/zcn.txt: in Emacs Meta key bit, (getenv "TERM") should be
compared to "zcn", not "nc100"... :-)
(User Numbers) toned down bit which says how ZCN doesn't handle
user areas that well - it's not *that* bad, and it's better than
CP/M, it's just not as good as some other systems.
2000-06-17 Russell Marks <[email protected]>
* ZCN now assembles into two versions - the original zcn.bin for
NC100s, and a new zcn200.bin for NC200s. I was originally going to
attempt some minimal kind of NC200 support in even the NC100
version, but there are just too many things to deal with for that
to make sense. Currently, the NC200 version supports the different
keyboard -> I/O port bitmap mapping and different context-save
addresses; this gets it basically working, but (so far) no more.
2000-06-16 Russell Marks <[email protected]>
* doc/zcn.txt: added links to R. T. Russell's website,
mentioning the now-free (well, as in free beer) CP/M BBC
Basic, and the online BBC Basic manual.
* src/bdos.z: now returns A=L and H=0 in all cases except for
ZCN-specific funcs (which are in zcnfunc.z anyway). This gets the
slightly pedantic CP/M BBC Basic working :-), and is slightly more
`correct' than the previous behaviour.
2000-02-22 Russell Marks <[email protected]>
* utils/bigv.z: Added ^G (Del->) alias for next-page; can be
useful when holding NC in certain weird ways (e.g. holding in air
w/both hands, sometimes handy when lying down).
1999-12-11 Russell Marks <rus@cartman>
* utils/bigv.z: now supports `-<line number>' arg (e.g. `-42') to
specify line number to start on.
1999-11-29 Russell Marks <rus@cartman>
* doc/zcn.txt: added section on running Wordstar 4, and mention of
`deltasoft' site. Also added support/ws4patch (WS4 patch for ZCN).
1999-11-05 Russell Marks <rus@cartman>
* zcnlib/mouse.z: now supports reading mouse position `directly'
under nc100em.
1999-11-02 Russell Marks <rus@cartman>
* src/powrhndl.z: two `how did I not notice that' bugs fixed. :-/
In the context-restore routine, the stack pointer was pointing at
the TPA at a Bad Time when restoring things, meaning that memory
in the B1F8h-B1FDh range (6 bytes) got blasted. Not the sort of
bug you'd usually notice easily, but it happened to break wade.
And when I made the `recent' change to permanently using IM2, I
inadvertently made the context-restore rewrite 0038h-003Ah despite
not needing to, which could probably have broken wade in some
(relatively unusual) circumstances.
1999-09-30 Russell Marks <rus@cartman>
* doc/zcn.txt: entry for `cd' was out of date. Changed it to match
that for `user'.
1999-09-26 Russell Marks <rus@cartman>
* man/man.z: noooo! man was *totally broken*, and had been for six
months! But incredibly, I'd managed to forget to transfer the new
man.com onto my NC *or* onto my nc100em setup, so I only noticed
by accident just now while I was fiddling about with that. (I'm
usually really scrupulous about keeping everything up-to-date, I
use `cmp' on a regular basis to try and guard against missing new
versions like this.) ARRRGGGHHH! FWIW, it seems to have been a
stupid thinko when shuffling things around rearranging the
directory structure. This bug is nasty enough (not least because
it's in `man', the online help of all things!) that I really have
to release a new version pretty much immediately. [I actually
ended up releasing zcn12fix.zip instead.]
* src/serial.z: commented setup stuff a bit more.
* src/zcnfunc.z: the leap year digit calculation when setting time
worked for 1992 and 1996, but wouldn't have worked for 2000
onwards, so that e.g. 2000 didn't have a 29th February. No, not a
conventional Y2K bug - year 00 is 1990, and I'd used the BCD year
number as decimal. Whoops... :-) Also commented the get/set time
stuff more fully.
* support/nciohw.txt: updated Cliff's email address.
1999-09-25 Russell Marks <rus@cartman>
* doc/zcn.txt: added URL for oakland, and removed reference to
nswp I'd missed.
1999-08-12 Russell Marks <rus@cartman>
* Removed nswp. I'd come to think it wasn't worth including a
non-commercial-only program I don't even use, and hey, it saves me
writing a man page, right? :-)
* VDE has replaced ZDE as the text editor included with ZCN,
involving various changes to docs as well as the replacement
itself. The main reason is that VDE comes with *much* better
documentation than ZDE 1.6 did; it's true that it's missing a
couple of features relative to ZDE, but then it also has a couple
of features ZDE doesn't, so that's not a clear-cut matter in any
case. Alas, VDE has just as restrictive a license as ZDE, so it
doesn't help on that front. :-(
1999-07-30 Russell Marks <rus@cartman>
* doc/zcnprog.txt: updated contact details, which were really
dated.
1999-07-04 Russell Marks <rus@cartman>
* utils/bigv.z: a text file viewer designed for reading
`etexts' (online books and the like), based on the viewer used
by `man', but using a nice big proportional font. It may only
fit 5 lines onscreen, but it's *so* much more readable. :-)
Thanks to Steven Flintham for the inspiration behind this.
1999-06-19 Russell Marks <rus@cartman>
* doc/zcn.txt: updated "Battery level warnings" to mention that
zap checks them as well as the CCP.
1999-04-26 Russell Marks <rus@lifeson>
* support/lar.c: made minimal changes so it would compile
(it had bogus prototypes for sprintf and sys_errlist, which I
think caused glibc problems where it didn't with the older libc).
1999-04-22 Russell Marks <rus@lifeson>
* doc/zcn.txt: documented the fact that rrxfer can only transfer
files to/from the current drive/user as a known bug. The lack of
user support isn't a big deal, but the current-drive-only stuff
sucks. But it's semi-complicated to fix as it currently uses the
same turn-asciiz-into-FCB routine to parse ROM filenames (for get)
and ZCN filenames (for put). Now, I *could* keep using the same
for both, and fix it in the obvious way, but then any ZCN file
`foo' specified with a drive is written to runrom.ram as `d:foo',
and any ROM file with `:' as the 2nd char is written to the drive
referred to by the first char (or more likely, fails, because it's
not in the range a..d). So basically, this is `interesting' to
fix, and documenting it as a known bug is about as much as I can
be bothered with given that I haven't used rrxfer seriously
since... well, since I wrote it, pretty much. ;-)
* utils/rrxfer.z: previously, if you asked for a list of the ROM
files and there were none, it crashed (ouch!).
1999-04-15 Russell Marks <rus@lifeson>
* Version 1.2.
* man/man.z: wasn't too scrupulous about putting a ret at 100h on
exit (to avoid being re-run with `!!' and the like) - fixed.
1999-04-11 Russell Marks <rus@lifeson>
* doc/zcn.txt: documented COUNT in bbcbas section.
1999-04-09 Russell Marks <rus@lifeson>
* utils/du.z: removed unused mtotal string.
1999-04-08 Russell Marks <rus@lifeson>
* src/internal.z (ioff): added `off' internal command. Just turns
the machine off like pressing the on/off button. I freely admit
this is mainly for convenience when using tnc100em. :-)
* ZCN now works in IM2 at all times. This takes up a bit more
memory than using IM1 did, but about half as much additional
memory as using IM2 used to.
* src/ccp.z (ccpsub): saved two bytes using `ret z' instead of the
previous stupidity of `jr nz,ccpsub2 / ret / ccpsub2:'.
1999-03-31 Russell Marks <rus@lifeson>
* src/ccp.z (runint): fixed the breaking of `|s' and the like (I
broke it when I made the `a:dir' change :-( ).
* utils/bbc_cat.z (dozcndir): if no files were on the drive, *CAT
used to say "No files253k free on drive". :-) Fixed that.
* zap/zap.z (fmfbaddrv): fixed bug where NULL pointer wasn't
always being written at end of `filetype ?' drive list - this
meant that four-drive lists had an extra (junk) entry.
1999-03-30 Russell Marks <rus@lifeson>
* support/README: made into an outline, and made ftp site
references into URLs (I also updated a couple of them while I was
at it).
1999-03-28 Russell Marks <rus@lifeson>
* doc/zcn.txt: made `Installation epilogue' a bit less
impenetrable. Also mentioned zap.
* Added `zap', a graphical front-end for ZCN (it just runs
programs on files, but is reasonably spiffy :-)), and `makezapd',
a related utility. I've been working on these for a while, but
only just got around to putting them in the ZCN distribution.
* zcnlib/Makefile: fixed to make zcnlibh.{z,asm} much more
sensibly.
* Rearranged directory structure and Makefiles so that the ZCN
distribution reflects the way I've always worked on it. The main
upshot of this is that there's now a top-level Makefile, and a
file `config.mk' which lets you set a couple of options related to
building ZCN.
1999-03-21 Russell Marks <rus@lifeson>
* Building ZCN on MS-DOG works again, due to a `mkasmver' util
which does the grep/awk/date stuff required by the Makefile.
* zmac is now bundled with ZCN, in the `zmac' dir.
1999-03-03 Russell Marks <rus@lifeson>
* src/ccp.z: fixed two .sub-related bugs. First, if a $$$.sub
didn't contain a ^Z it wasn't deleted after ZCN finished running
it. Second, it assumed $$$.sub remained in the current user, which
isn't always the case. (It always *starts off* there, but we keep
track of where the file is so that changing user in the .sub is
ok. So the code which deletes $$$.sub has to be clueful about
that.)
* Reinstated startup banner - effectively just `ver' output.
* Changed `ver' date/time to be more readable, at the cost of
three extra bytes.
* src/zcnfunc.z: added function 143, to go to user area 255.
1999-02-20 Russell Marks <rus@lifeson>
* man/man.z: more of man's time is spent searching manpages.pma
than on decompressing the man page, so it now prints the `please
wait' message earlier on. This is a bit bogus in the case when it
then comes back and says "No manual page for...", but I think
overall it's ok.
* src/internal.z (icrlf): new `crlf' internal command, lets you
disable/enable the usual CP/M-ish CR/LF after each command
finishes. Mainly intended for use in SUB files.
(ivdu): new `vdu' internal command, lets you print up to two
characters by giving their ASCII values (e.g. `vdu 1' clears the
screen, `vdu 65 66' prints "AB").
* src/ccp.z (runint): fixed so things like `a:dir' (internal
commands with drive specs) don't just run the internal command.
Now it'll try and run `dir.com' (or `dir.sub') on drive A:.
1999-02-18 Russell Marks <rus@lifeson>
* doc/zcnprog.txt: updated to include BDOS function 142 (the new
change-font-address thing).
1999-02-17 Russell Marks <rus@lifeson>
* utils/bmp.z: created. A way of printing UDGs (and bitmaps
generally) from SUB files.
* cpmtris/cpmtris.z: now uses a modified font for the UDGs, which
is a lot less hairy than the horrible kludge it used before. :-)
* src/term.z: Esc as a prefix to a CR/LF will cause ZCN to ignore
it. This turned out to be the easiest way to remove the now
spurious initial CR/LF on cold-boot, but may also be useful for
user programs.
* You can now change the address of the font used by ZCN. This
lets ZCN-aware programs effectively use UDGs and the like.
* src/init.z (mhello): removed the banner (copyright message)
displayed when you boot ZCN. It may be a traditional CP/M thing to
have, but frankly even *I* found it slightly irksome. If you
really want a banner, you could always put `ver' in your
autoexec.sub. ;-)
1999-02-14 Russell Marks <rus@lifeson>
* utils/slide.z: a slide-rule emulator. :-) It's rather more
inaccurate than even a pocket slide-rule, given the limitations of
the NC100's screen resolution, but it's just a silly hack anyway
so that shouldn't matter much.
1999-02-11 Russell Marks <rus@lifeson>
* utils/bbcmin.z: created. A cut-down version of bbcbas (with a
much smaller executable - 3k rather than 8k), mainly intended for
people who just want to run Basic rather than develop it.
* bbcbas now supports entry of `£' (pound sign) in buffered input,
i.e. when typing program or `INPUT' lines.
* utils/bbcbas.z (pputbyte): implemented the "printing char
disabled serial line driver" bugfix made to ZCN itself some months
back. (bbcbas has its own copy of the code for this to avoid
considerable overhead for a trivial operation.)
1999-02-02 Russell Marks <rus@lifeson>
* src/internal.z: new internal command `note', lets you type text
into a file. It's crude, but hey, it's always there. :-)
* Semi-rewrite of zcnclock, it now looks a lot nicer and does
world time. It's pretty UK-centric but other than that works well
enough. Also added `dclock', a cut-down version which (just) fits
in 1k, but is still fairly nice really. :-)
1999-01-21 Russell Marks <rus@lifeson>
* utils/ruler.z: displays a ruler onscreen.
1999-01-18 Russell Marks <rus@lifeson>
* utils/runrom.z: removed unused code (well, actually just an
unused label :-)).
1999-01-13 Russell Marks <rus@lifeson>
* src/ccp.z: the code which checks for internal commands is now
considerably faster, as it gives up on non-matches as soon as
possible (previously it went through the entire list byte-by-byte
no matter what). This isn't terribly noticeable, to be honest (the
old BFI approach was actually pretty quick), but I thought I'd
speed it up anyway. :-)
* doc/zcn.txt: added (to Q&A) mention of ROM v1.00's curious
obsession with having the time set.
* src/internal.z (icboot): added `cboot' internal command to
reboot off memory card.
1999-01-11 Russell Marks <rus@lifeson>
* New man pages index, zcn (a sort of meta-man-page), path (how
.com's are found), and usernums (brief explanation of user
numbers).
* Added man page for capsctrl, which I forgot previously.
* Added man pages for pause and screendump, describing how to
pause text output and get a screen dump.
1998-12-28 Russell Marks <rus@lifeson>
* utils/calc.z: previously had some rather nasty ROM-specific code
to deal with the border around the screen, which worked on ROM
v1.06 but not on v1.00. Replaced that with nicer code which works
on both, and also managed to reduce size of program so it's not
quite such a tight fit into 1k.
1998-12-24 Russell Marks <rus@lifeson>
* src/eof.z: added note about why no guard against the ROM OS's ^Z
stripping is needed for ZCN itself. (And it's not relevant to
anything else either, as these two things are the only ones you'd
ever transfer using the ROM OS.)
* utils/rrinit.z: now combats ROM OS's stupid XMODEM ^Z stripping.
1998-12-15 Russell Marks <rus@lifeson>
* In src, renamed main.z to start.z, and created a new main.z
which `include's all the other files which make up ZCN. (This is
rather nicer than using cat, at least. :-))
1998-12-06 Russell Marks <rus@lifeson>
* utils/expr.z: sort-of-clone of Unix `expr' (an expression
evaluator), a Z80 port of a PD C program by Erik Baalbergen, using
zcnlib's 32-bit integer routines. Apart from one known bug (see
man page) it's ok.
1998-12-05 Russell Marks <rus@lifeson>
* zcnlib/int32.z: added atoi/itoa-ish routines.
* doc/zcnprog.txt: documented some bits from int32.z which I
missed.
1998-11-29 Russell Marks <rus@lifeson>
* Couple of minor man page bugs fixed.
1998-11-12 Russell Marks <rus@lifeson>
* Changed qterm, z8e, and zde to use 20h+y too. (Bs, rogue, and
sokoban didn't actually need changing as they use their own 80x24
emulation code rather than ZCN's.) Also added cursor on/off to zde
config.
* Changed bbcbas, calc, codes, cpmtris, invaders, zcnclock,
zcnpaint, zdbe, and zselx to use 20h+y for cursor movement code.
* src/term.z: cursor movement control code now uses 20h+y rather
than 46h+y, for consistency with virtually every other terminal
which uses this kind of movement command. :-) The old 46h+y is
still supported, but support for it may be removed in future.
* Added `capsctrl' command, swaps functions of caps lock and
control keys if you do `capsctrl 1'. (Function acts like a control
key either way, though.)
1998-10-10 Russell Marks <rus@lifeson>
* utils/bbcbas.z: added configurable LISTO setting.
1998-10-09 Russell Marks <rus@lifeson>
* doc/NEWS: added. Describes changes since last release (currently
this means since v1.1).
* man/pages/cal.man: man page for cal.
* utils/cal.z: calendar program, like Unix `cal' - a Z80 m/c port
of the public domain `calend' C program by Martin Minow. It's
quite a good one, it even gets september 1752 right. :-)
* zcnlib/args.z: made argline and argv decls fit on one line, so
they can be removed via sed to save memory in .com file.
1998-10-08 Russell Marks <rus@lifeson>
* src/keyread.z: fixes to the keyboard handler. It now copes with
every problem with the keyboard hardware I've been able to find,
and should now be unreservedly better than the ROM in this regard.
(Also took out a call to kclrmap which shouldn't have been there,
and was slowing things down.)
1998-09-27 Russell Marks <rus@lifeson>
* Many man pages written.
* man/man.z: made change described below to fit man in 4k.
* zcnlib/stdio.z: made dmabuf decl fit on one line, so it can be
removed via sed to save memory in .com file. This means I can make
man.com 4k rather than 5k, for example.
1998-09-26 Russell Marks <rus@lifeson>
* Removed `help.com'. `man' is hugely better, and it's more
sensible to have just the one help system - or at least, it's more
sensible than having a rather good one yet keeping a really crap
one around. ;-)
* doc/zcn.txt: added docs for spell, and replaced confusing and
rather pointless `d:filename.ext' notation with `filename' for
every case I found.
* utils/spell.z: created. A proper interface to the ROM
spellchecker, which lets you interactively correct the spelling of
text files. It works pretty much like the spellchecker does in the
ROM wp, but with a more ispell-like interface, and it optionally
lets you automatically lookup suggested alternatives to every
unrecognised word. Also, it doesn't have any support for a user
dictionary yet, and it has problems with some types of punctuation
- the main example being that "foobar(s)" isn't grokked correctly.
1998-09-23 Russell Marks <rus@lifeson>
* Renamed .com files under `support' dir with funny names (e.g.
pipe17.com, sokzcn.com) to have more normal names (e.g. pipe.com,
sokoban.com) to avoid unnecessary confusion and make names of man
pages more obvious. :-)
* Added a `man' program, and many `man pages' (really just text
files using a man-page-like layout) for it.
1998-09-21 Russell Marks <rus@lifeson>
* src/internal.z (istty): finally written proper version of
setbaud (called `stty') to set baud rate by you specifying (gasp)
the actual baud rate. :-) `setbaud' has been removed; however,
there's a new `setbaud.sub' which emulates it pretty closely.
* Added build date/time, reported by `ver'.
* src/serial.z (pputbyte): previously printing a char disabled the
line driver, so serial I/O wouldn't have worked until you turned
off/on or did a `setbaud'. Also removed old stuff which was
intended to remove the spurious serial int when turning on - that
never worked anyway, so might as well drop it. And made some minor
optimisations like making sgetbyte simply an alias for sgetchar.
1998-09-19 Russell Marks <rus@lifeson>
* src/internal.z (idir): made `dir' produce output more like CP/M,
and saved 3 bytes in the process. :-) Also fiddled around with
other internal commands saving 93 further bytes. Changed "ARGS!"
message to the less postmodern but more reasonable "Args?".
* utils/help.dat: got it up-to-date (I think :-)).
* doc/zcn.txt: corrected all processor-speed-related bits.
Originally I thought the NC100's Z80 ran at about 4.5MHz. Then
someone said to me that Amstrad claimed it to be 6MHz, I tested
it, and guess what - it did seem to be roughly that. Recently I
tested it again to get a more exact figure, and I can only assume
my previous test was wrong - in a triple-checked test program
running for 5 minutes with start/stop times measured on my Linux
box based on two bytes sent via serial by the program (you can
send a byte with a single OUT instruction on the NC100, so this
measurement was really rather accurate), the speed came out at
4.6061MHz.
1998-09-18 Russell Marks <rus@lifeson>
* src/{inthndl,keyread}.z: made no-key-pressed interrupts run
about three times as fast by directly checking bytes read from the
ports. Also saved several bytes rearranging things to use
fall-through, etc.
* src/bdos.z: saved a few bytes by using fall-through at the end
of bauxout2/blstout2, and separating out common code in
chk255/chk255a.
* doc/zcn.txt: fixed bug in mentioned-in-passing desc of serial
requirements. (ZCN can't *quite* make do with a minimal lead if
you want to be able to send - it needs CTS, though that can just
be soldered to RTS.)
1998-09-13 Russell Marks <rus@lifeson>
* support/README: fixed a couple of net-related things (e.g.
/pub/cpm/filcpy for nswp on oakland, not /pub/filcpy :-)).
1998-09-10 Russell Marks <rus@lifeson>
* src/internal.z (rexec): it's now realistic to use it without a
card in memory - previously it took *ages* while it blindly wrote
the file to a non-existent card, now it just says "no file" (but
the file is still safely in memory). Also, removed calls to
`bfclose', which aren't needed on ZCN.
Fri Sep 4 12:19:26 1998 Russell Marks <rus@lifeson>
* src/internal.z (iuser): new `user -' command, goes to previous
user number. Note that only `user' knows about this mechanism; if
a program changes user no., that won't affect the `previous user'
the command changes to.
Sat Aug 29 19:37:16 1998 Russell Marks <rus@lifeson>
* cpmtris/cpmtris.z: made ZCN `UDGs' a little nicer.
Thu Jul 16 14:07:29 1998 Russell Marks <rus@lifeson>
* Version 1.1.
* src/internal.z: made sertest quit after ^\ q (or ^\ ^C), rather
than ^\ alone, and made ^\ ^\ send a literal ^\. This makes a
remote kermit usable, if nothing else. :-)
Thu Jun 4 22:31:02 1998 Russell Marks <rus@lifeson>
* src/doc/zcn.txt: some BBC-Basic-related changes based on notes
by Steven F.
* utils/bbcbas.z: made OPENUP act like OPENIN.
Tue May 26 17:33:36 1998 Russell Marks <rus@lifeson>
* bin/README: created. A simple readme saying what's what.
* utils/README: moved details for invaders to zcn.txt, and made
this a simple `this dir contains source to external commands'
readme.
Mon May 18 20:29:21 1998 Russell Marks <rus@lifeson>
* utils/bbcbas.z: many changes to get PAGE down considerably.
(Mainly by making extensive use of available memory in the
A000h-B7FFh range.) It now has a lower PAGE than the ROM ever
does - if only by 768 bytes... :-)
Sat May 16 04:43:41 1998 Russell Marks <rus@lifeson>
* utils/bbcbas.z: fixed a couple of bugs - INKEY(0) missed most
chars before (had to make it wait for next int to fix that :-/),
and PRINT TAB(x,y) for x>96 printed a high-half char.
* utils/bbcbas.z (_fseek): PTR#= (seek) didn't work before, and
does now. :-}
* src/internal.z (itimeout): removed pointless "N mins is new
timeout" message, which didn't tell us anything we didn't already
know, and replaced slightly bonehead use of cmdline to grok number
with use of userfcb1, and saved 36 bytes.
* src/internal.z (chktail): made this (and thus commands using it,
like ren and memdump) give at least a minimal error message to
show that nothing happened (because there were no args). With no
hint of an FT influence at all, the error message is "ARGS!". :-)
* src/internal.z (irexec): now checks for a filename arg. It was
meant to before, but the `call chktail' was misplaced such that it
was never reached...!
* src/internal.z: finally added `type' as synonym for `cat'.
Fri May 15 00:08:10 1998 Russell Marks <rus@lifeson>
* zcnlib/stdio.z (makefn83): incredibly, this didn't work if a
drive was specified in lowercase. Fixed, and fixed the modified
utils/bbc_io.z too.
* src/card.z (iszcn1): make sanity checks a bit more sensible -
i.e. now requires <=15 sys blocks instead of 24, and <=4 dir
blocks instead of 8.
Wed May 13 23:46:23 1998 Russell Marks <rus@lifeson>
* src/internal.z: `save' now aborts with the error "Disk full" if
it can't write to the file. Previously it just carried on
regardless and didn't bother saying anything about it.
Tue May 12 01:21:35 1998 Russell Marks <rus@lifeson>
* src/internal.z: new `quitsub' command, aborts any SUB file
currently running (whether run with `submit' or not), optionally
running a specified command afterwards.
* Added internal command `ifnpeek' - if byte at given address is
not equal, etc. (as `ifpeek'). This is usually better for Hitech C
programs, as it lets you (with `ifnpeek 3 0') check if a command
failed. Together with the `ifpeek' change etc., this took up 118
bytes from the recent optimisation, leaving only 81 free. (sigh)
* src/ccp.z: now copies byte at 0080h to 0003h when user program
exits (for all commands/programs except `rem'). This means
`ifpeek' can be used to check result of Hitech C program (the exit
status).
* New internal command `ifpeek' - if byte at given address equals
given value, run given command.
* doc/zcn.txt: added a section on `bbcbas'.
* utils/bbcbas.z: added a second `copy' cursor like on the BBC.
This is a huge improvement over the rather crap `EDIT' command.
Mon May 11 20:21:32 1998 Russell Marks <rus@lifeson>
* Created `bigrun', which runs generic CP/M programs in a 62k TPA.
It deliberately won't run ZCN-specific programs though (since
these might try to access the screen directly, which is a Bad Idea
when it's paged out and a bdos redirector thing is there...), or
more accurately it quits if a ZCN-specific BDOS function is
called. It needs 32k free at the end of a drive (current drive, or
a specified one) to use as extra memory in order to provide the
62k.
* utils/defrag.z: created. Defragments free space, useful if
`sys' or `bigrun' fail. Speaking of which, see above... :-)
Sun May 10 04:32:10 1998 Russell Marks <rus@lifeson>
* utils/stat.z: created. An emulation of the old `stat' command.
Sat May 2 18:26:15 1998 Russell Marks <rus@lifeson>
* src/ccp.z (getsubln): no longer strips high bit from cmdline
read from SUB file.
* src/internal.z: many optimisations, including the breaking of
stat into smaller more focused commands (k3 and df), saving 184
bytes.
Mon Apr 27 01:29:18 1998 Russell Marks <rus@lifeson>
* utils/bbcbas.z: added (a small amount of) online help.
Sun Apr 26 04:47:39 1998 Russell Marks <rus@lifeson>
* src/bdos.z (bfrename): fixed bug - it didn't check to see if a
file with the new file existed. (I probably forgot to do this
previously because the `ren' internal command does the check
itself, before calling bfrename.)
Sat Apr 25 16:57:42 1998 Russell Marks <rus@lifeson>
* utils/bbc_io.z: added CR <-> CR/LF conversion for text files.
* utils/bbcbas.z: added printer support (both parallel and
serial).
Wed Apr 22 02:31:11 1998 Russell Marks <rus@lifeson>
* src/main.z: change to allow BBC Basic to check for Esc much more
quickly.
Tue Apr 21 18:06:50 1998 Russell Marks <rus@lifeson>
* src/term.z: saved 32 bytes.
* utils/bbcbas.z: run BBC Basic under ZCN as if it were a native ZCN
program. Works much the same way as `calc', but with rather more
ROM emulation going on. Unfortunately files are a bit weird due to
CP/M's lack of exact file length, so text files need to be
opened with a `:' at the start of the filename. (This applies
everywhere, so e.g. `*EXEC :FOO.TXT' works.)
* src/main.z: moved xloc/yloc to fixed location (start+254, or
more usefully (1)-5), and documented this in zcn.txt. Main
reason was for a hack to run BBC Basic which I'm working on.
Sun Apr 19 22:04:03 1998 Russell Marks <rus@lifeson>
* utils/calc.z: run the ROM calculator under ZCN very much as if
it were a native ZCN program. This involves going through a number
of low-level hoops, but it's quite transparent, and you probably
wouldn't know anything tricky was going on unless you checked out
the source. :-)
Sun Apr 12 16:42:57 1998 Russell Marks <rus@lifeson>
* doc/zcn.txt: many changes to reflect what runrom/rrxfer/rrinit
mean you can do.
* utils/rrinit.z: running this from the ROM software means you can
save a snapshot of memory before transferring ZCN, so you never
lose any data.
* Converted all *.asm files in `utils' to zmac (.z) format.
* utils/rrxfer.z: transfers files to/from memory snapshot used by
`runrom', so you can copy files between the ROM software and ZCN.
* utils/runrom.z: run the ROM software nicely from ZCN. Works by
keeping a 64k snapshot of the memory's state on disk when using
ZCN.
Sat Apr 11 05:15:38 1998 Russell Marks <rus@lifeson>
* src/misc.z: fixed silly bug in hex-dump routine.
Wed Apr 1 00:52:35 1998 Russell Marks <rus@lifeson>
* utils/zdbe.z: many changes, most significant of which is that
finally this disk editor supports editing! :-) The way it works is
roughly bpe-ish, but zdbe makes it harder to lose changes
accidentally.
Tue Mar 31 21:36:47 1998 Russell Marks <rus@lifeson>
* zcnlib/int32.z: corrected `exit' listings for routines which
claimed to use f' and af' but didn't. Same change to zcnprog.txt.
Mon Feb 16 00:19:28 1998 Russell Marks <rus@lifeson>
* After fairly massive space-optimisation effort, saved 321 bytes.
This was enough to free up 512 more bytes for TPA by moving the
`org' in main.z up to bb00h. It hasn't been up that high since ZCN
0.3 back in 1995. :-) Even so, I've yet to attack bdos.z,
internal.z, and term.z...
Sat Feb 14 01:00:15 1998 Russell Marks <rus@lifeson>
* src/internal.z: allow `cd' as another way of doing `user', and
made `user *' (and `cd *', of course :-)) the same as `user 255'.
Similarly made `user'/`cd' with no args same as `user 0'.
* Added redefinable prompt. This ate up about 40% of the recent
savings. :-)