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 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621
|
Additions to the emulator, from the first version that was released. x = only
available to registered users. Names between brackets are games that first
indicated the presence of the corresponding bug in the emulator, or the person
that spotted the bug.
Version 0.2pl0
--------------
o First public release.
Version 0.2pl1 (Thu Feb 10 1994)
--------------
o Added support for compilation on AIX and HP/UX.
Thanks to Stephan Lindstrom and Jarkko Lavinen for the information.
o Got XZX working with Monochrome displays. Made colour allocation
somewhat less antisocial, too.
o Added support to emulate a 16K spectrum. (Useful, huh? :-)
o Fixed a problem which caused XZX to hang occasionally with slow displays.
o Fixed a bug where the ROM could only be read from the current directory.
o Fixed a problem where the symbol MIN was redefined on some platforms.
Version 0.3pl0 (Thu Feb 24 1994)
--------------
o Added support for FLASHing attributes. Not very efficient, though.
Can be disabled with the -flashing option, in which case FLASH is
implemented as INVERSE.
o XZX can now read (but not write) Z80 format snapshots. Thanks to
Gerton Lunter for his Z80 format description in Z80.DOC.
o Added setitimer-style interrupt generation to (hopefully) guarantee
50 interrupts/sec.
o Fixed monochrome X server support, hopefully. Monochrome colours
now contrast properly, too.
o Added -private and -mono colormap handling options. Useful if you
run out of colors on a PseudoColor display.
o Made image transfer a bit friendlier in that images are only
sent if the screen has recently changed. Thanks to Stephen Usher
and Jonathan Brazier for pointing this out to me.
o Added support for Kempston joystick emulation using an analogue PC
joystick on Linux. Requires the joystick kernel patches.
o A couple of other minor bugfixes/optimisations.
Version 0.4pl0 (Thu Mar 10 1994)
--------------
o Local X server detection now works better - thanks to Ronald Hartwig.
o XZX no longer crashes if snapshot names do not contain a dot.
o Basic sound support for Sparc Stations only - music sounds pretty
awful, but simple sound effects work reasonably well. Must be on
the console, since it uses /dev/audio. Thanks to "Purple Tentacle"
o Fixed display for monochrome displays (finally, I hope :-). Also added
halftoning colour simulation for SCALING > 1. Thanks to Ian Collier.
o Fixed some bugs with PushValue/PopValue - a few more snapshots now
appear to work.
o LOAD and SAVE will dump CODE and programs to a file. Not well tested,
and I had problems with loading BASIC, but give it a go and tell me how
it works. Thanks to Russell Marks & Ronald Hartwig.
o It's now possible to read and write single characters to & from
stdin, stdout and stderr, using I/O ports. Read the man page for
more details. Thanks to Ronald Hartwig again, who's obviously
been busy lately :-)
o Some more minor bugfixes/optimisations.
Version 0.5 (Tue Mar 29 1994)
-----------
o Added Interface 1 Shadow ROM and Microdrive support! RS232
emulation also possible via the Shadow ROM, which makes the
PSEUDO_IO code a bit superfluous. Both mechanisms can co-exist,
though. Thanks to Martin Smith.
o Fixed LOAD_SAVE support - BASIC programs now work correctly, and
'SAVE "prog" LINE x' also works. Thanks to Russell Marks.
o An alternative LOAD/SAVE mechanism, thanks to Ian Collier. Both
methods write compatible dumps, but at most one method may be
selected at compile-time. LOAD_SAVE flag changed to a choice of
LOAD_SAVE_1 or LOAD_SAVE_2. See the Imakefile for details.
o F8 now generates an NMI. Thanks to Ian Collier.
o Made /dev/audio sound support work on Linux. Sounds pretty crap,
but recognisable. Also works on the NEC EWS 4800/330, very well.
o Added PC Speaker style audio support for Linux. Sounds much better
than /dev/audio support - recommended. Must run suid root, though.
Thanks again to Russell Marks.
o Added resource-configurable keyboard emulation for a kempston joystick.
o Made XZX more environmentally friendly; tells the window manager
everything it needs to know, and tries to appear under the mouse
pointer (though your window manager has the final say).
o The default PSEUDO_IO ports have been moved to 48896 (stdin),
48897 (stdout), and 48898 (stderr). That's BF00, BF01 and BF02 hex.
I did this to avoid a clash with the Shadow ROM and Microdrive routines.
o Improved the Linux joystick calibration mechanism somewhat.
o Yet more minor bugfixes.
Version 0.5pl1 (Thu Apr 28 1994)
--------------
o Fixed a problem where files could not be read from the XZX library
directory.
Version 0.5pl2 (Wed May 11 1994)
--------------
o Another fix to monochrome server support. Apparently images come up
mirrored on some monochrome X servers - it's all down to byte and bit
order incompatibilities. Hopefully it all works now. Thanks to
Dougie McLaggan for this one.
o Optimised the screen refresh algorithm a bit - XZX now only sends the
portion of the screen which has changed since the last update. Still
not perfect, but non-MITSHM refresh is now a little bit smoother.
MITSHM transfer will not be much affected.
o Fixed .z80 snapshot support. I can't remember who sent me this fix, but
whoever you are, send me some mail, and I'll include your name next time
round :-)
o auxfuncs.c is now #include'd, since I can take advantage of gcc's
inlining. This won't have any effect for compilers which don't provide
inlining, but should run a tad faster for compilers which do.
o Fixed a problem where 'make depend' didn't work.
o Screen refresh frequencies are now run-time configurable through two
new options, rrShm and rrNoshm. Check out the manual page for more
details.
o The libDir resource can now be a colon-separated pathname. Its new
default is '.:<LIBDIR>', (usually '.:/usr/local/lib/xzx') so that
default behaviour is unchanged.
o A new feature, LEVEL_LOADER, has been added, to make multi-load games a
bit more usable. This does require modified snapshots, however, which will
be available sometime soon. Observance of the usual copyright laws is at
the user's discretion. Thanks to Russell Marks.
o Another new feature - SLOWDOWN. This allows you to reduce XZX's speed
when running on very fast machines e.g. DEC Alpha, Sparc 10...
Also now possible to adjust XZX's speed while it's running. See the
manual page for more details.
Version 0.5pl3 (Wed May 11 1994)
--------------
o Fixed a problem where rrShm and rrNoshm were swapped.
Version 0.5pl4 (Thu May 12 1994)
--------------
o Fixed a problem with the definition of NUMKEYMAPPINGS being wrong
when SLOWDOWN is not defined.
(lots of internal versions followed)
Version 1.0
-----------
o Added 128K and +3 emulation. Possible to select between 48K, 128K
and +3 emulations at startup time and on the fly. Includes (incomplete)
floppy disk emulation on the +3 and working Interface 1 in 128K mode.
Does not includes sound chip emulation (yet). Thanks to Thomas Kjaer
for much of the work on this.
o XZX now reads and writes new format .Z80 snapshots. This includes
128K snaps.
o XZX now uses a segmented memory model, mainly to allow 128K support.
This also speeds up the IF1 emulation somewhat.
o Instruction emulation now implemented as a switch statement - avoids
function call overheads, somewhat more efficient.
o Significant code rewrite and tidy-up. Still a bit of a mess though...
o Added a popup dialog box which is used whenever XZX requires text from
the user (e.g snapshot names...). No more messing about on the xterm
command line.
o Fixed a couple of bugs with the snapshot reading/writing code - almost
all of the snapshots I've tried now work. Thanks to Tim Bevan.
o Standardised on the LOAD_SAVE_1 mechanism, which is now just called
LOAD_SAVE again. LOAD_SAVE now implemented using trap pseudo-ops,
which is a little faster.
o The default PSEUDO_IO ports have been moved to 191 (stdin),
447 (stdout), and 703 (stderr). That's 00BF, 01BF and 02BF hex.
This is more correct since the low byte selects the operation
and the high byte modifies the operation's behaviour.
o The XZX window no longer appears under the mouse pointer, since I
and others found it annoying. Added a -geometry option to specify
XZX's position. If not specified, it's up to the window manager.
o If XZX fails to get the 16 colours it needs on a PseudoColor display,
it now uses a private colormap by default, rather than going mono.
o Fixed emulation of undocumented behaviour of the BIT instruction,
which means that the hippo now behaves himself in Sabre Wulf :-)
Thanks to Tim Bevan.
o Improved IF1 RS232 emulation. RS232 input is nonblocking, so
INKEY$#n works better.
o It was Ian Collier who fixed .z80 snapshot support in 0.5.2. Thanks!
o Other minor changes too numerous to mention.
Version 1.0.1
-------------
o Several bugfixes.
o A couple of minor optimisations to the emulation code.
o Added a trap to the ROM to catch the BEEP routine and ring the
X server bell.
o Provided a makefile.std for those without imake.
Version 1.0.2 (Mon 12 Sep 1994)
-------------------------------
o Just a couple of minor bugfixes/optimisations.
**************************************************************************
Following versions by Erik Kunze (Erik.Kunze@fantasy.muc.de)
**************************************************************************
Version 2.0.0beta (Sat Jun 15 1996)
-----------------
o Several bugfixes.
o Input and output operations now handled in io.c.
o Emulate more undocumented ED-prefixed instructions.
o Added undocumented instructions to the disassembler.
o Bugfixes in LDIR/LDDR/CPIR/CPDR/OTIR/OTDR so Zynaps will run.
o Multiface 128 support (very primitve at the moment).
o AY sound emulation under LINUX
o Added support for reading Z80 V3.x snapshots.
o Heavy optimizations in X11 display routines.
o Pixmap routines now working with all scaling factors.
o Added T-state counting (for speed calculaton).
o Other minor changes too numerous to mention.
o Source is now managed with RCS.
Version 2.0.1 (Sun Aug 25 1996)
-------------
o AY emulation improved
o Automatic recognition of Spectrum type when loading snapshot
Version 2.0.2 (Sun Sep 15 1996)
-------------
o Removed counter style interrupt handling, T-states are mandatory from now
on.
o Added a kludge for people who run out of memory when compiling z80.c.
Look at the README file for a description!
o Added patches from Lars Koeller <Lars_Koeller@odie.physik2.Uni-Rostock.DE>
- FreeBSD joystick support
o Added patches from Anders Hallstrm <andersh@elixir.e.kth.se>
- Fixed R-register emulation (makes Daley128 working)
- Fixed 'Unexpected X11 event 33'
- Added switch '-ms' to control interrupts
- Show warning in case the emulator wasn't compiled with IF1 support
and snapshot uses IF1 (snapshot.c).
NOTE: This may result in strange errors. You ought to compile in
IF1 support or re-snap the snapshot without IF1.
- Check for interrupt mode (IM) on SNA snapshots. Some snapshots contain
strange values.
o Added patches from Razvan Surdulescu <surdules@fas.harvard.edu>
- Magnification between Spectrum and X11 pixel is now selectable on startup
of the emulator (-scale).
- Support for 8/16/32bpp X server
- Changed WR_BYTE to only write a byte in video memory if different from
what's already there (speed improvement with JetSetWilly).
o Added patches from M Pikula <pikula@dec3.dcs.elf.stuba.sk>
- Placed 'signal(SIG_XCPU, SIGIGN)' in main() for Ultrix machines. The cpp
macro might be wrong.
- Added a kludge to avoid problems with '#define DEC' in z80.c on DEC
machines.
o Changed command line options and X11 resource names to be similar to the
names used by version 3.X (Motif) of the emulator. Be sure to install the
new application defaults file.
NOTE: Version 3.X has not been released yet!
o Fixed a bug in loadsave.c which caused a segmentation fault
o Fixed a bug with Z80's interrupt handling
o Fixed bugs in fdc.c
o Fixed INning from Multiface 128 ports. Bit 7 represents bit 3 of the byte
last written to port 7FFDh.
o All AY registers are reseted on Z80 reset. This might be wrong.
o Added issue 2 emulation on 48K Spectrums
o Other minor changes too numerous to mention.
o Some cosmetic changes
Version 2.0.3 (Thu Oct 3 1996)
-------------
o Changed the mapping of the function keys F1-F12. See manpage for more
details.
o Changed source to include Spectrum +3 emulation only when XZX_PLUS3 is
defined. Little speed improvement without +3 emulation.
o Changed command line options and resource names again. Sorry...
o Rewritten io.[ch] to decode hardware on specific address lines and not on
complete addresses. This makes a bunch of games working with XZX. Rewritten
the 128/+3 banking function for more speed. Prepared support for ZX printer,
Centronics and FDC port on +3.
o If you read from a port that activates both the keyboard and a joystick
port (e.g. Kempston), the joystick takes priority.
To Damien: Please exclude XZX from the list of emulators which do not
have this feature corrected !!!
o New source tree introduced and updated Imakefile. Imakefile finds out most
of the defines (endianess, strcasecmp, uname). Please control the result of
imake. The produced Makefile might be wrong. If you find that the defines
are wrong, please mail me a desription of your system.
o When loading SNA snaphot, the screen wasn't updated.
o Added a function to dump the entire Spectrum screen to a file in .SCR
format.
o Added support for INing from nonexisting (idle) port. The CPU would read a
mixture of FF's and ATTR.
o Added a check for endianess to main(). Just to be sure, imake won't joke us.
o Rewritten color handling in screen-writing functions to improve the speed
of the emulator. This makes most of the games running with more then 100%
speed on my Linux box (Pentium 100, 48MB RAM, 8bpp) even with a scale of 3.
o Inspirated by xz80 I added a new screen writing algorithm to avoid consuming
CPU time by those 'rainbowing' programs. The old one can be selected on
compile time by defining OLD_VIDEO. Try Zynaps with and without OLD_VIDEO
defined. Thanks to Ian Collier for the inspiration.
o Renamed xspec.[ch] to screen.[ch]. Sorry...
o Fixed problems with '-ansi' in makefiles (Razvan Surdulescu).
o Cleanup in audio.c. I have still problems with signal handling under Linux
(see TODO).
o According to Z80 specs, interrupts are not enabled until AFTER the
instruction following the EI. Thanks to A.J.Skillman <ajs@hep.ucl.ac.uk>.
o Print out snapshot format and hardware type on snapshot loading.
o Introduced a new debugging feature. By defining XDEBUG XZX prints out all
XZX specific X resources.
o Support for both versions of IFI ROMs from Sinclair. Thanks again to Ian
Collier.
o Fixed a bug with the X event mask on the main window (Razvan Surdulescu).
o Fixed a bug with magnification by 3.
o Fixed a bug in calcWinPosition().
o Updated the documentation files. Well, some '#ifdef's are intentional
undocumented.
o Back againg: emul.[ch] :-) Shifted Z80 emulation to a subdirectory. This
will become a generic (standalone) emulation kernel.
o Shifted audio emulation to a subdirectory. From now on each audio emulation
type is held in a separate file. Prepared for Sun AY emulation and NAS
support.
o Fixed some typos
Version 2.0.4 (Thu Oct 3 1996)
-------------
o Fixes the bugs with audio emulation.
Version 2.1.0 (Wed Nov 13 1996)
-------------
o DAA optimized
o When reading from Port 31 (Kempston) bit 5-7 are allways 0 (from the FAQ).
Is that really true???
o On-screen-menus (Razvan Surdulescu)
o Reset the Z80 before loading a snapshot.
o Fixed a bug in readZ80Format() when loading a Z80 V1.0 format (Razvan
Surdulescu).
o Fixed a bug where the CARRY flag wasn't preserved on CP[ID](R) operations.
o Fixed all known bugs in the Z80 emulation. I hope there's no one left.
All my 128K snaps run fine and Arkanoid (idle port!) too.
o Renamed the variable HAS_UNAME to NEED_UNAME (the name is misleading
since it sez 'Uncomment this if your machine needs the functions get_uname
etc).
o Fixed a bug in SelectModel() where the Z80 never gets reseted.
o Added check for 128K SNA snapshots to readSnaFormat(). XZX does not and
will not support 128K SNA snapshots. Please use a snapshot converter
utility to load those snapshots.
o Ignore SamRam and M.G.T. when loading Z80 V3.X snapshots rather then
aborting the loading process (Razvan Surdulescu).
o Changed makefile.std.
o Added TAP support (loading/saving). Loading from and saving to UNIX files
(the old implementation) is no longer supported. Defining LOAD_SAVE is now
absolete, because the TAP support is mandatory.
o Made the border emulation switchable. This is necessary for programms
which try to do fancy border drawing. That makes the program EXTREMELY slow
since it updates/flushes the display a lot (Razvan Surdulescu).
o Turn off IF1 and MF128 emulation in SelectModel() when entering +3 mode.
o Check for ROM type before setting the BEEP (XBELL_AUDIO) trap.
o Print out an additional information in version() if XZX was compiled with
debugging enabled (Anders Hallstrm).
o Multiface 128 works now in 48K and 128K mode. Thanks to Gerton Lunter for
the help.
o XZX can display a picture of the way the keyboard is laid out on the real
Speccy (ZX Spectrum 48). Useful if you can't remember that one key
combination for getting "CHR$" :-) Thanks to Gerton Lunter for giving
me the permission to use layout.scr from Z80, his Spectrum emulator.
o Shading on monochrome X servers works again (Anders Hallstrm).
o The control keys (XK_CTRL_L/XK_CTRL_R) switch now to EXTENDED MODE.
o Fixed a bug in the Level-Loader (.LLT).
o Added support for Super-Level-Trap (.SLT) files. The level loader is now
mandatory (Razvan Surdulescu).
o Fixed a bug in ADD_HL macro with access above array boundary (Razvan
Surdulescu).
o Fixed a bug in Imakefile with endianess on Alpha machines (Anders
Hallstrm).
o Fixed a problem with AY daemon when starting with '-sound off' on machines
running Linux.
o Fixed a lot of memory leaks and access errors. Thanks to Pure Software
Inc. for making Purify. Purify still claims an memory leak in XPutImage(),
but I think it's a bug in the X11 lib here on my Sparc-2 running SunOS
4.1.2.
Version 2.1.1 (Tue Dec 3 1996)
-------------
o Changed lincense conditions (see the COPYRIGHT file). THE CODE MAY NOT BE
MODIFIED OR REUSED WITHOUT PERMISSION!
o Some values in the Z80 v3.0+ snapshot header were not correctly
interpreted. Added more debug prints in the snaphot code.
o LINTified source code.
o Changed XDEBUG into D_X11 debug level.
o Fixed a bug in SBC_HL macro where the P/V flag got wrong values. Cauldron
depends on it.
o Moved all configuration variables from Imakefile to xzx.config (Des
Herriot).
o Register DE didn't get loaded from SNA snapshots.
o Save keyboard issue settings to Z80 snapshot.
o The Z80 operations LD H,n and DAA were broken in v2.1.0.
o Changed the possible lowest time interval (ms/frame) that is selectable
in the Generics Menu from 10 to 1. Note that PC based machines allow
only steps of 10ms.
o You must confirm overwriting an existing file when saving the Spectrum
screen.
o Support for Z80 v3.05+ format snapshots.
o TAP browser
Version 2.1.2 (Sat Mar 15 1997)
-------------
o Fixed a bug with Z80 interrupt handling (N.E.X.O.R., Defcon).
o Removed delayed EI handling, because this breaks some games. Tank 128k
is one of them.
o New option '-rr' overwrites both 'rrShm' and 'rrNoShm' values (Anders
Hallstrm).
o Made the key for escaping the OSD's selectable. See xzx.config (Anders
Hallstrm).
o New style OSD's (128/+3 look-alike) with pointer wraparound on first<->last
item.
o PrintLetter() increments cursor position.
o Fixed syntax errors under Linux in joystick.c
o Store border color even when border emulation is turned off. Important if
you turn the border emulation on again.
o The distributed source code is now striped from comments.
o If the emulator fails to load a level data block (.DAT), it complements
the carry flag.
o Fixed speaker emulation under SunOS and Solaris (Des Herriot).
o Fixed a bug with zero-length tape blocks in .TAP files (Alan Moore).
o Fixed recognition of Z80 v3.05 format snapshots.
o XZX writes Z80 v3.05 format snapshots now.
o Turn Interface I emulation off when loading SNA snapshots.
o ZX printer is selected with bit A2 and not A1.
o The FileSelector accepts directories in the input field, too (Anders
Hallstrm, George Lebl).
o Changed all static character arrays in the Conf structure into dynamic
allocated strings. Reduces memory used by XZX.
o Better keyboard emulation of Spectrum keys. See xzx.man for more
information how it works (Anders Hallstrm).
o Fixed extended RAM paging on the +3 (Thomas Ahn Kolbeck).
o Fixed memory leaks and several bugs in the microdrive emulation. Added
sanity check to SetupCartridgeFile() to avoid insertation of one cartridge
file into two drives simultaneous.
o Added missed functions to the 'Interface I/+3 Options' menu. Removed menu
item for cartridge write protection, because this is controlled by the
UNIX file permissions.
o Made the +3 disk handling more user friendly. XZX pops up a file requester
if the +3 DOS tries to access a disk in a drive and there is no disk in that
drive.
o Some strange tape files contain many zero length blocks. Suppress displaying
them in the tape browser.
o Don't unlink the destination snapshot file in case of an error! In the past
it could happen that an allready existing file was deleted.
o Ignore SIG_XCPU not only on machines running ULTRIX but on all systems
where it's defined.
o Moved classifyDescripor()/setBlocking() to util.c for later use with the
printer emulation.
o XZX works now slightly different for X terminals so it doesn't lose key
events anymore. Don't forget to adjust xzx.config for this extra
functionality (Allan Skillman).
o AY emulation for SPARC machines (Des Herriot).
o Fixed Imakefile for ddtrans and mkcart (Nils Philippsen).
o Fixed s bug in FileSelector() which was introduced by the changes made
earlier. FileSelector now accepts filenames of nonexistent files if it's
called for save operations.
o Fast mode implemented. XZX can now either run at true Spectrum speed or
as fast as possible.
o XZX allways saves the contents of the AY registers to Z80 snapshots.
Gerton Lunter and I decided to use bit 2 of byte 37 for that purpose. See
TECHINFO.DOC (comes with Z80) for more information (Gerton Lunter).
o XZX as distributed won't work when 'make install' is done: the default
libDir is set to '/usr/local/lib/xzx:.', and the ROM images are set to
'roms/xxx.rom'. But since the ROM images are put in /usr/local/lib/xzx,
XZX doesn't find them. Fixed in Xzx.ad (Des Herriot).
o 'make install' will fail if the Multiface 128 ROM is not present in the
roms/ subdirectory, which it isn't as distributed. Fixed by puting an
empty mf128.rom in there, which can be copied over if the user has the
image (Des Herriot).
Version 2.1.3 (Sat Apr 19 1997)
-------------
o Renamed XzxMesg() to Msg() and changed some message levels and strings.
o Fixed keyboard handling (Anders Hallstrm).
o New OSD interface function GetKey().
o New OSD menu for selecting the keys used for Kempston emulation (Anders
Hallstrm).
o Print out the messages for joystick calibration on the OSDs. You must
calibrate your joystick before you can use it. This is no longer done
in JoyInit() during startup of the emulator. Use the 'Joystick Options'
menu from the OSDs (George Lebl).
o Yet another optimisation for speed in the video emulation. This affects
both monochrome and color displays.
o Some programs (Fairlight 128) rely on the fact that the 128K memory paging
port is addressed with A15. Naturally this won't work on a +2A or +3, but
they didn't exist when the games were written (James McKay).
o Improved KeyPress and KeyRelase event handling for X terminals (Anders
Hallstrm).
o Changed level loader to search at first for .dat and then for .DAT files.
If this all fails then popup the FileSelector so the user can choose a
file to load.
o Leave the OSD's after an action only if not invoked by the F1 key. This
allows to alter the settings right after loading a snapshot and then save
it with the same CPU state as loaded. Usefull for converting between
snapshot formats.
o The FileSelector didn't handle filenames with path correctly.
o Stopping and restarting the AY daemon very fast causes problems with nested
signals. Even when the signals are blocked while the signal handler is
active, it's not guaranteed that further signals are not out of order.
Replaced the communication by signals with communication through the pipe
(Alexander Eggerer).
o If allocation of colors fails for the default colormap then give the
allocatetd colors back to the X server.
o Reset Spectrum keys if the mouse pointer leaves the emulator window.
o If the FileSelector() has been called for a write operation it calls
ConfirmBox() directly. If FileSelector() returns a non NULL-pointer the
user confirmed the overwriting of an existing file.
o Build-in debugger!
o Added port address of the Fuller box. Maybe XZX will support it in the
future.
o Fixed a bug in Z80 snapshot loading with enabling/disabling Interface I
emulation (Gladwell G D <gladgd@essex.ac.uk>).
o XZX now handles the WM_DELETE protocol, i.e. it exits cleanly if closed by
the window manager (e.g. the little "X" button in Fvwm95 and AfterStep).
Previously, it left shared memory segments lying around, and confused the
AY subprocess (Des Herriott).
o New option '-quiet' suppresses all non-error messages. You will see neither
warnings nor informations. Use at your own risk!
Version 2.1.4 (Tue Apr 22 1997)
-------------
o Optional OffiX drag'n'drop support. OffiX is a free implementation of
drag'n'drop for X which is gaining popularity on Linux at least. This lets
you drag a file from other Offix-enabled programs and drop it on XZX,
whereupon XZX will try to load it as a snapshot (Des Herriott).
See http://leb.net/OffiX for more details.
o Added port address of the ZX LPRINT III interface. Maybe XZX will support
it in the future.
o Optional pause after each loaded tape block.
o Moved getBaseName() to util.c for common use.
o Changed the OSD menus to repaint only things that have changed. Saves some
memory too.
o Splitted dialog.c into dialog.c (OSD main code) and menu.c (menus).
Version 2.2.0 (Fri Oct 24 1997)
-------------
o Starting with this version XZX is a shareware program. The program is not
completely functional, and the parts which are left out are included when
you register. The registered version has a better user interface (needs
Motif) and more features.
o Improved debugger's error recovering after a syntax error (Alexander
Eggerer).
o Renamed getSnapshotType() to GetFileType() and moved it to util.c for common
use.
o X11 event handling improved.
o Added port address of the Grafpad by British Micro.
o Some minor cleanups in various parts of the emulator.
o When reading from the ULA bit 6 represents the state of the EAR socket (and
not bit 5 as stated in the comp.sys.sinclair FAQ). More games respond to the
keyboard now.
x Support for sampled tapes in Creative Labs' VOC format. Not perfect but it
works.
o Enable interrupts before leaving the LOAD_BYTES routine. A real Spectrum
disables interrupts at #559 and enables interrupts again at #54F.
o Autorepeat was not turned off when you leave the OSD's (Anders Hallstrm).
o Implemented a line-by-line type video emulation now. Define LINE_VIDEO to
use the new scheme (see xzx.config). It kills flicker nicely (Anders
Hallstrm).
o Removed OLD_VIDEO compile time option.
o Enable interrupts before leaving the SAVE_BYTES routine. A real Spectrum
disables interrupts at #4D4 and enables interrupts again at #54F.
o Entering the OSD's does not process the last KeyRelease event. Resetting the
Spectrum keyboard matrix in EnterOSD() fixes the problem.
o Store default values for joystick keys in Z80 snapshot as described in Z80
TECHINFO.DOC rather than zeros.
o XZX now writes true +3 snapshots (Z80 format) when in +3 mode. The Z80
snapshot format has been expanded for this purpose. Optimised loading and
saving of SNA snapshots. Some minor cleanups in snapshot.c.
o Fixed typos in the documentation files (Anders Hallstrm).
o Emulate the delay when writing to/reading from the ULA contended memory.
Corrected timings when OUTing to the ULA. Because this slows down the
emulation I made this a compile-time option (see xzx.config).
x Line-by-line border and screen emulation, what makes true rainbowing and
overscan possible. Currently available only for 8/16/32bpp displays.
o Speeded up IF1 and MF128 paging. Overwriting the ROMs is no longer possible.
Has this ever been used?
o Some minor optimization for speed in various parts of the emulator. No
Assembler - still pure 'C'!
o Fixed a bug in XImage initialization.
o SelectModel() resets tstates per frame (-cycles) to its default value
(69888/70908) when the hardware type changes.
o Options quiet/mono/private require a boolean argument (on/off/true/false).
Man page updated.
x Problem with stopping and re-starting the virtual tape player fixed.
x Replaced the OSD's by Motif 1.2 widgets.
o Fixed screen update problems when LINE_VIDEO is defined.
o The default value for the 'pause' resource was not set correctly. Changed
to 'false'.
o Do not allocate space for memory pages that are not used.
x BORDER and FLASH emulation are mandatory from now on. Since the registered
version draws the screen line-by-line there is no need to turn off BORDER
and FLASH emulation.
x Fixed syntax error when XZX is compiled with XBELL_AUDIO defined.
o Improved audio handling when in the OSD's. Does no longer allow to turn on
a sound emulation type if that type is not active.
o Renamed OpenXzxFile() into Fopen().
o NMI saves the state of IFF2 in the P/V flag (c.s.s. FAQ).
o New menu item for turning the usage of the analogue joystick on and off.
o Changed joystick.c to compile with the latest Linux joystick driver. If you
are using a version prior 0.9 please upgrade to a newer kernel.
x Reset FDC only when in +3 mode.
x Emulate FDC at hardware level (i.e. Z80 IN/OUT commands). Formatting is not
supported yet.
Version 2.2.1 (Sun Nov 2 1997)
-------------
o Added emulation of bit 3 and 5 of the Z80 flag register. Fixed some wrong
flag settings.
x Redisplay flags frame after user alteration of the AF register.
o Added new FTP site for distributing XZX.
x FLASH emulation did not work.
o Analogue joystick emulation was broken (Erling Jacobsen).
x Mark menu item for the Debugger as selected when the Debugger is entered
through a breakpoint.
Version 2.3.0 (Tue Dec 30 1997)
-------------
o Rewritten loadsave.c. Moved all tape format specific code into separate
files. Fixed some memory leaks.
o Added support for the ZX Tape format (aka TZX). Uses mmap() for faster
file access. If you don't have mmap() on your system you won't ever have
TZX support with XZX! Switch to a real UNIX. Many thanks to Martijn van der
Heide for helping me a lot.
o Changed all TAP and VOC functions to use memory mapped file access - no more
fgetc(). Speed increased.
o Cleaned up ROM image handling. Removed ReadROMs().
o Preserve 'Tstates per frame' setting when changing the Spectrum model.
o Fixed bugs with 32bpp displays on 64bit Alpha machines (Razvan Surdulescu).
x Additional support for VOC block types 4 and 5. XZX now supports block types
0 - 5.
x VOC browser
x Don't enable 'Playback inputfile' in the tape options if TS_ERRIN is set.
o Display the type of tape blocks in TAP browser.
o Do not call munmap() in InsertTape() if mmap() failed.
x Fixed some minor bugs in +3 FDC emulation and implemented 'READ/WRITE
DELETED DATA' commands.
x Added Spectrum +3 parallel printer support.
x The emulator lets you select the scaling factor by resizing the emulator
window with the mouse.
x Fixed a bug in sound options menu.
o Hold all Spectrum model dependent stuff (BasicRom, TVLINES, etc.) in a
config array, what makes the emulation of different models more exactly and
simplifies future extensions.
o Removed '-cycles' option. Will be replaced by an option that lets you choose
emulator speed (like Z80 and X128).
o Sometimes .SLT files didn't get closed. This was wrong since XZX started
supporting the .SLT file format. Curiously nobody ever noticed it.
x Activate/deactivate SA_BYTES trap as well as LD_BYTES trap from the tape
options.
o Menu 'Interface I/+3 Options' doesn't disable items anymore if they are at
least compiled in. No need to turn on IF1 or switch to +3 mode for drive
operations (inserting/removing cartridge or disk).
o Tape player state wasn't redrawn after it has been altered.
x GetResources() did overwrite its own stack - core dump.
x Exchanged default settings for slowdown keys (KP_Add/KP_Subtract).
o Removed '-pause' option. Reorganized menu 'Tape Options'.
x New GUI based tape manager (VTP). Combines tape loading and saving with a
real-time tape browser.
o Two different variables had the same name (PSG in io.c and ay8912.c).
Version 2.4.0 (Tue Dec 31 1997)
-------------
o New directory structure.
Version 2.4.1 (Mon Jan 5 1998)
-------------
o Fixed syntax error in screen.c when XZX is compiled for monocrome displays.
o Moved all memory mapped operations to util.c.
x Cleaned up the debugger and don't compile in debug.c anymore. Should be
slightly faster and smaller.
o Added TZX support to the tape browser.
x Added TZX support to the VTP. Tape blocks are also selectable with the mouse
now. Added autorepeat functionality to the REW and FF button.
o Block numbers were calculated wrong for Jump, Loop and Call blocks.
x Update the state of 'Additional settings' in the hardware options if the
emulated Spectrum model has been changed to Spectrum +3.
o Loading noise: tries to give you an approximation of the sound that a real
Spectrum produces while loading from tape.
o Fixed syntax error in mem.c when XZX is compiled without Spectrum +3 support.
o Completly rewritten Interface I emulation to use memory mapped files. Saves
a lot of memory (over 200 lines of source code!) and is faster in execution.
x Fixed bugs in 'WRITE (DELETED) DATA' command: wrong setting of the FDC main
status register and missing check for write protection.
o Better error handling in the management of tape files.
o Updated to TZX specification v1.11.
o Check file permissions before open the file in Mmap().
o Delay incrementing the block counter on 'Stop the tape' blocks until tape
playback gets started again.
o SELECT blocks in TZX files are now supported.
x Spectrum +3 printer support needs of course support for the basic machine.
Therefore XZX_PLUS3 has be defined!
Version 2.4.2 (Tue Jan 6 1998)
-------------
x Added some limitations and additional README file in order to produce demo
versions.
Version 2.4.3 (Tue Jan 6 1998)
-------------
o XZX now provides two compile-time configuration files:
- xzx.config configures the Imakefiles and the compilation process,
- config.h defines whould features should be compiled in.
Updated INSTALL documentation and Imakefiles.
o Changed the way the sound emulation source is handled. Now has its own
library (libaudio.a) and completely resides in a separate directory.
Prepared for future rewriting (see TODO).
o Defining XZX_PLUS3 but not XZX_IF1 caused a syntax error in menu.c.
x Using less than 8 microdives caused a syntax error in resource.c.
Version 2.4.4 (Sun Feb 8 1998)
-------------
o Implemented undocumented flag settings to block operations (ED A0-BB).
o Map memory shared (MAP_SHARED) and not private (MAP_PRIVATE)!
x Save default button labels of standard message dialog and use them if no
alternate label is given to function Dialog().
o A couple of minor bugfixes in the TZX part of the emulator.
x Spectrum +3 printer emulation does compile without Interface I emulation
now.
x Adjusted Imakefile.
o Use checksum to identify ROM images. Necessary for the correct patching of
the LD_BYTES and SA_BYTES routines.
o XZX now recognizes Ian Collier's Interface I ROM and sets the RS232 traps.
o Added Interface I v2 ROM image (if1-v2.rom).
o If a tape file (TAP/TZX/VOC) contains invalid data XZX may access memory
behind the end of the file. Must save process environment and catch SIGSEGV.
This is very UNIX'ish. I'd like to see how anyone will port this to another
operating system :-)
x Fixed multi-sector 'READ/WRITE (DELETED) DATA' commands.
o Fixed a bug in the Z80 core emulation (Speedlock 1/2 tapes).
o Changed signal handling to be POSSIX compliant. Catch SIGSEGV for clean
shutdown.
o Improved handling of the idle port and the ULA contended memory.
o Added support for Spetrum +2 ROMs.
o A couple of other minor bugfixes/optimisations in various parts of the
emulator.
Version 2.5.0 (Sat May 2 1998)
-------------
o Added formatted disk images (180/360/720kB) to the contrib archive.
x Added menu item to load screen dumps (.SCR files) back into the emulator.
Usefull for utilties that reside in the screen memory (utility3.scr).
o Got explicit permission of Derik van Zuetphen
<derik.vanzuetphen@koeln.netsurf.de> to distribute his program CPCFS
together with XZX.
x Save memory if neither LOW_BANDWIDTH nor LOWLOW_BANDWITDTH is defined.
x Profiler: checks libc's memset() and memcpy() against XZX's implementation
and uses the faster.
x Added some hidden defines for performance tests and improvement.
o Fixed a bug in the handling of 'Direct recording' blocks (1943.tzx).
o More accurate emulation of the AY register 14. Keypad and RS232 are not
emulated.
o Changed LD_BYTES trap from #556 to #562. Tape files created with Z802TAP
call #562 to load a tape block into memory (Mathematics.tap).
o Fixed a bug in the Z80 core emulation (Chase H.Q. and other tapes).
o Updated FAQ und man page files.
o Some TAP files contain illegal values for blocktype in tape headers
(Wild Street).
o Removed several core dump problems.
o Fixed a bug when writing into Spectrum's screen memory (Miguel Barrio).
x Additional support for VOC block type 9 (used by Creative Lab's WaveStudio).
XZX now supports block types 0 - 5 and 9.
o Rewritten audio emulation. Speaker and AY are emulated via /dev/audio or
/dev/dsp simultaneous. Speaker emulation is synchronized with Z80 T-states.
AY emulation allows digital samples (speech). XZX's audio emulation has
drawn level with X128.
o Added audio support for IRIX 5.x and 6.x.
Version 2.6.0 (Wed Jul 15 1998)
-------------
o Modularized Spectrum hardware detection and emulation for future extension.
XZX will emulate various Spectrum models and clones (Scorpion and Pentagon).
o Replaced screen emulation with the one from the registered version. It is
sooo much faster. Removed support for X11 pixmaps (option '-pixmaps').
Users of the shareware version, are you happy now?
x Fixed minor bugs in the X11 part of the video emulation.
o Fixed installation problem in src/Imakefile (Stephen Thomas).
x Added emulation of the BetaDisk 128 interface by Technology Research Ltd.
Thanks to Potapov Vsevolod Viktorovich <random@cybermail.net> for his help
and the wrong informations in the Russian FAQ - it took me some time to
find out how the BetaDisk works in practice!
x The demo version uses the flag MAP_PRIVATE to map cartridge/disk images.
This allows write access to the image in the memory, but does not update
the image on the harddisk.
o Removed unused tables from tables.c.
o Moved Spectrum's keyboard handling from screen.c to keyboard.c.
x Some smaller optimizations in the uPD765-A emulation.
o XZX did not restore the blocking mode of stdin and stdout, what caused
problems with the parent shell (Borne and C Shell).
x Debugger's hardware panel does show the memory pages now. The contents of
the AY registers can be altered through the hardware panel now.
o Fixed R-register increment on Z80 interrupts (Alvin Albrecht).
o Added sound support for Linux/AXP, Solaris/SPARC and SunOS/SPARC. Thanks
to Andras Petri for testing the Solaris and SunOS versions.
x Added a set of tools to deal with Hobeta and .TRD files. The tools have
been verified to compile and run on Linux, SINIX, IRIX and SunOS.
o Removed SIGSEGV problem when accessing Spectrum's memory (Andras Petri).
o Even better AY emulation - improved envelope handling and playback of
digital samples.
o Changed from Imake to GNU autoconf/automake.
Version 2.6.1 (Fri Sep 11 1998)
-------------
o Spectrum BEEP emulation on X terminals can be turned on and off.
o XZX did print the wrong endianess of the host CPU when called with option
'-version'.
x Non GNU make programs do not understand the macros '$@' and '$<' when used
in standard rules.
o Save emulator settings to $HOME/.xzxrc on exit. See file README chapter
'Configuration file' for details (Des Herriott).
o Added an usage description of the Multiface 128 to the README file.
o Added sound support for the Network Audio System by NCD.
o Due to an erroneous Makefile the files for the analogue joystick emulation
were not distributed.
o The built-in debugger wrote into the OSD screenbuffer rather than into
Spectrum's memory.
o Removed option '-slowdown'.
o Rewritten local/remote display detection when using MIT-SHM.
o Rewritten large parts of the Z80 core emulation. Improved emulation of the
ULA contended memory. The emulation is still not perfect but a good
compromise on compatibility and speed (Flashpoint.tzx and others).
o The audio emulation wrote behind the audio buffer, what randomly resulted
in core dumps. Block only SIGALRM while writing to the audio device.
o Autoconf did not find the include file 'X11/Intrinsic.h' on Solaris (Uros
Bizjak).
o The screen was not updated when loading from TAP files.
o Standard TZX blocks (ID 0x10) will be 'fast' loaded if the LD_BYTES routine
in the ROM is used.
o Fixed cartridge formatting when using the Interface I v2 ROM (Andrew
Petry). Many thanks to Ian Collier for investigating the problem.
x XZX did dump a core when opening the assembler panel.
o Rewritten TAP loading to be more robust.
o Fixed X11 resource handling on Solaris (Uros Bizjak).
Version 2.7.0 (Fri Dec 11 1998)
-------------
o XZX failed to compile the shareware version with debug code.
o Added support for TZX specification 1.12.
o Fixed screen emulation for 16bpp x 1 display mode (Julie Brandon).
o Fast TZX loading (introduced with version 2.6.1) can now be turned off,
because some loaders do not like it. A pause of 0ms resulted in a pause
of 2^16ms.
o Added generic support for the Open Sound System (OSS). We now have audio
support via OSS for Linux (x86, Alpha, PowerPC), SCO Open Server,
SCO UnixWare, Solaris (x86, Sparc), IBM AIX, FreeBSD, BSD/OS, OpenBSD and
NetBSD.
x Made the +3 FDC emulation more robust. CP/M Plus from Locomotive Software
runs fine on the emulator.
o Added support for disks in 'CPC system format' to the +3 emulation. Fixed
problem with disk images in PCW SD/DS format (Alien_Storm.dsk).
o Corrected Z80 core emulation according to the latest version of the c.s.s.
FAQ. P/V flag on block IN and OUT operations is not emulated yet!
o Added emulation of the Multiface 3. XZX is the very first Spectrum emulator
with Multiface 3 support!
x Update VTP if output filename has been changed from the SA_BYTES trap.
o Disable emulation of a particular additional hardware if its ROM could not
be loaded.
x Added support for disk images in .FDI format to the BetaDisk emulation.
x Patch TR-DOS ROM to speed-up disk operations (Mac Buster).
o Display the type of tape blocks in TZX browser.
o Corrected emulation of ULA's memory contention and the idle port in +3
mode (c.s.s. FAQ).
o Shareware version now draws screen and border line by line. Emulator window
can be scaled during runtime. Removed options '-border' and '-flashing'.
o The audio code supports IRIX 6.5's new al functions (Tristram Scott).
o Added support for X11 visuals. XZX can utilize a different visual than the
default one. PseudoColor, TrueColor and StaticGray with either 8, 15, 16,
24 or 32 bpp are supported. More will follow.
o Fixed installation of XZX's app-defaults file on Solaris/OpenWindows (Uros
Bizjak).
o Paul Hill <paul@lagernet.clara.co.uk> managed to compile and run XZX under
Linux/68k:
Hi Erik, just in case you wanted to know:
I tried compiling XZX versions 2.6.1 & 2.7.0b1 under Linux/68k (running
on my Amiga) and they both work fine. Using RedHat 5.1 dist.
It's a little slow, but usable. The X server for my graphics card
doesn't help (no h/w acceleration).
o Added option '-xysnc', which selects between XSync() and XFlush() to update
the Spectrum screen. Updated manual page.
x The current emulator settings are no longer saved automatically on exit. It
now depends on the value of a variable, which can be changed by a new menu
item.
x Registered version does no longer share the documantation and manual page
with the shareware version. These reflect the additional options and
features.
x Added new menu items to the help menu to show the emulator documentation.
x Betadisk emulation could access tracks behind the disk image boundary
(7th_Reality.trd).
Version 2.7.1 (Tue Dec 22 1998)
-------------
o Fixed handling of TAP blocks with a length of 2 bytes and less
(World_Cup_Football.tap)
o Added experimental audio support for AIX and HP-UX.
o Interrupt mode 0 increased the R-register by two (c.s.s. FAQ).
o Fixed emulation of the EAR bit on issue 2/3 Spectrums. Use the small BASIC
program listed in the FAQ to verify the correct response of the emulator
(Tranz_AM.tap).
o Minor adjustments to the Spectrum timings so Flashpoint and Joe Blade 3 will
load.
x The filename of the tapefile for SAVE operations was displayed in the LOAD
window.
o The emulator can load from TAP files which use a custom loader, because
internally they are converted into TZX format.
o The menu item 'Select microdrive' should be active even when Interface I
emulation is turned off.
o Fixed (hopefully) the X11 keyrepeat problem.
o Key releases are delayed if neccessary, so the emulated Spectrum program
will not lose any key presses.
o X11 can sometimes give the KeyPress event with the shifted KeySym, and the
KeyRelease one with the same KeySym unshifted, so the emulator loses
control of what has been pressed and what has been released (Andrew Petry).
o Fixed wrong handling of Z80 snapshots, caused by a wrong c.s.s. FAQ (Philip
Kendall).
o Replaced the options '-rrShm', '-rrNoShm' and '-rr' by the option
'-refresh'. Added new option '-cache', that enables a video cache that can
speed up the emulation when little graphics activity is going on.
The option '-xsync' can now be changed on startup of the emulator and while
running.
x Added new menu item to pause Spectrum emulation. Operations like loading
or saving a snapshot file are possible in paused mode too.
o Replaced the option '-ms' by the option '-speed', which controls the speed
of the emulated Spectrum. Speed can be selected from 10% to 200% in steps of
10%. Unlimited speed is also possible.
o Option '-fast' enables special speed mode. If this mode is enabled, it will
cause the emulator to disable any speed limit, turn sound emulation off and
use a 1/10 refresh rate, so that it will run at the maximum possible speed.
Version 2.8.0 (Wed Jan 6 1999)
-------------
o Save memory by allocating variables dynamically in snapshot.c.
o Added emulation of the Pentagon, a Russian Spectrum clone. This computer
has a built-in BetaDisk interface, which is not emulated in the shareware
version, therefore no disk support.
o Fixed compile problems when XZX_MF is defined and XZX_PLUS3 is not.
o Must call XSync() after XShmAttach(), otherwise Sun's XWin server will
respond with a 'BadAccess' error (Uros Bizjak).
o Merged ROM image files of emulated machines into a single file per machine.
Remove any installed Spectrum ROM and execute 'make install' to install the
new ROMs.
o Reject +3 snapshots if XZX has not been compiled with +3 emulation.
o Fixed reading from AY register 15 (various articles from DejaNews).
o All Pentagons equiped with YM2149F and they return a different value when
reading from a non-existent chip register (Mac Buster, Enlight_96/
Action.trd).
o AY register were stored wrong in .Z80 snapshot.
x BetaDisk emulation disabled all (!) other ports as long as TR-DOS ROM was
active.
o Added emulation of the Scorpion, a Russian Spectrum clone. This computer
has a built-in BetaDisk interface, which is not emulated in the shareware
version, therefore no disk support.
o Resizing the emulator window sometimes caused a core dump. Screen was not
redrawn correctly if video cache is enabled.
o If a Spectrum 48K is emulated, changing the issue type from the OSDs must
change emulated Spectrum type.
o No snapshot format can hold Pentagon or Scorpion informations at the moment
so XZX cannot dump snapshots in these modes.
o The resource 'sound' was not saved correctly on exit.
o Updated documentation and manual page.
x Fixed geometry bug in the debugger gui.
x Added a statusbar below the emulator window. It shows the current emulator
speed (%) and frame rate (fps). The shareware version shows this information
in the window title.
o Fixed wrong screen addressation in mode 32bpp x 3.
x Hide items for disk and cartridge operations from the pulldown menus if they
are unavailable.
o Function SetBorderColor() used wrong colour array.
o Fixed minor bugs in the On-Screen-Dialogs.
o Added emulation of the Kempston Mouse. The emulation is limited to Pentagon
and Scorpion mode at the moment. Be warned: X pointer motion events consume
lots of CPU power,
o Fixed bug in the emulation of AY's noise channel and evelope generator.
Version 2.8.1 (Tue Mar 16 1999)
-------------
o Added support for 24bit packed-pixel-mode. XFree86 uses this mode on some
grafics cards.
x Fixiated the size of VTP's tape contents list.
x Show and utilize the drive led in statusbar if any disk emulation is active,
hide it if not.
o Fixed a typo in the SunOS audio code (Andras Petri).
x The state of the Debugger panels was not updated if the panel is poped down.
x Added interface for Z80 breakpoints to the Debugger GUI. Breakpoints can be
set and removed with a mouse click. The number of breakpoints is only
limited by Spectrum's memory (you can only set one breakpoint on each memory
location).
x VTP disabled the 'Close' button on tape errors. So there was no way to
close the file.
o XZX supports Linux/FreeBSD joystick driver either v0.8 or v1.x interface.
A nice feature for cheating with games is available for joysticks with more
than one fire button. Read section 'Joystick emulation' of the file README!
x Retrieve colour of drive led from X resources.
o Rewritten debugger's error recovery. Added human readable error messages
(no longer the silly 'eh?'). Changed the syntax of some commands. Read
section 'Commands' of the file README!
o Added new commands to add, remove and show breakpoints to the built-in
debugger.
o Added new commands to modify and show the contents of the AY registers to
the built-in debugger.
o Must call function KmouseOff() if resource 'kmouseActive' is changed from 1
to 0.
o Added new option '-grab' to grab the X pointer when Kempston Mouse emulation
is active.
x WD1793 emulation handles data timeouts (Enlight Music Collection).
x Added a new feature: Virtual Disk Images. Put Hobeta files in a directory or
in a .SCL file and the emulator will treat it as a readonly .TRD disk image.
o Since I upgraded from RedHat 5.0 (gcc 2.7.2) to RedHat 5.2 (egcs 1.0.3)
the emulator does not dump a core anymore when running Zx_Land_2.tap. Must
have been a problem with GCC.
o Do more validation checks on TAP files.
o Fixed X11 error with multi-visual displays (Mattias Engdegrd).
o The OSD code did not save the position of next write to the XImage. This
resulted in random segfaults when returning from the OSDs (Miguel Barrio).
x Fixed a bug in the WD1793 Force Interrupt command.
Version 2.9.0 (Tue May 11 1999)
-------------
o Corrected the handling of the R-register in Z80 snapshots (see .Z80 format
description in Z80 v4).
x Fixed a bug in the debugger GUI that could cause a segmentation fault.
x New GUI based poke manager. Reads poke instructions from .POK files.
x Pop up VTP if a tape file has been opened from the LD_BYTES trap.
x The registered versions now shows a picture of the Spectrum keyboard
(resource 'kbdlayout') if the system has the XPM library installed. The
picture has to be in XPM format.
o Mmap() did not use the resource 'libDir' to detect files. It does now, but
the bad point is that these annoying messages "xzx: error: couldn't open
<diska.dsk> for reading" are back.
x The dialog "Add Breakpoint" does not ask for a page number anymore if the
emulator runs in 48K mode. It now accepts linear, non-segmented addresses.
x Changed default settings of the menu items "Reset when changing mode" and
"Save on exit".
x Made some changes to the menus to match the Motif style guide.
x Motif ungrabs the pointer if the menus are entered by a keystroke. If the
pointer re-enters the emulator window grab it.
x Kempston Mouse emulation now sets an invisible cursor for the emulator
window when active.
x Disable Kempston Mouse emulation in popup dialogs.
x Added emulation of the +D interface by Miles Gordon Technology. +D emulation
reads and writes disk images in .MGT and .IMG format. Thanks to Denis
Moreaux <endor@mygale.org> for the technical informations.
o The emulator saved the state of the Interface I when in +3 mode to
snapshots (Philip Kendall).
o FileSelector() now uses FT_XXX enums rather than strings to match files.
o While in the OSDs and waiting for a key XZX consumed up to 99% of CPU time
(Miguel Barrio Orsikowsky).
o Due to a typo XImage routines for 24bpp mode did not work on big-endian
machines. Fortunately nobody ever complained.
o Calculate size and number of audio buffer fragments in dependece of sample
rate. This should remove the problem "couldn't write all bytes to audio
device" with Linux kernels 2.2.X (Tom Hauerland).
o Some minor corrections in the documentation (Philip Kendall).
x Compile demo version without any sound emulation!
o Check for the correct sizes of char, short and int data types.
x Emulate ACB-Stero hardware on systems with the Open-Sound-System. Support
for other platforms follows.
x Added profiling for 24bpp mode.
x When the WD17XX is busy, it ignores CPU writes to the command register
unless the new command is a FORCE INTERRUPT (Worms Demo with Intro by
Silicon Brains)
x Treat .TRD disk images with invalid media byte as DD/DS (Double_Xinox.trd).
o Funtion GetFilType() accessed an array behind its boundary (Tristan 'Minty'
Colgate).
o Do not compile in code for IF1 RS232 emulation if ROM traps are inactive.
o Disable the menu item "Quick loading" if ROM traps are inactive.
o Duncan Harvey <d.harvey@hubris2.demon.co.uk> managed to compile and run XZX
under Linux/PPC:
Erik,
In case you don't already know, xzx v2.8.1 runs well on LinuxPPC 4.0 --
that's Linux (based on Red Hat 5.0) running on a PowerPC processor.
Note that my Linux installation is cobbled together from downloads, and
not a complete installation from a distributor's CD -- but I can't
imagine that xzx would work on a partial installation and not on a
complete one!
x VTP: On right mouse button clicks pop up a window containing informations
about the selected tape block. This feature is more powerfull than the
command 'tzxinfo' supplied with the XZX tools set.
o The TZX block 'Jump' calculated the right number of the destination block
but displayed a wrong value in the tape browser.
|