-
Notifications
You must be signed in to change notification settings - Fork 1
/
CHANGELOG
789 lines (761 loc) · 40.5 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
/**
\page changelog Changelog
\section c018 version 0.17 -> 0.18
Version 0.18 contains a lot of compatibility fixes, both with
host and guest operating systems.
- Merged Brian wheeler's New IDE code into the standard
controller. NewIde class has disappeared. (04-mar-2008,
Camiel Vanderhoeven)
- Support some basic MP features. (CPUID read from C-Chip MISC
register, inter-processor interrupts) (04-mar-2008, Camiel
Vanderhoeven)
- Allow memory sizes over 1 GB. (02-mar-2008, Brian Wheeler)
- Natural way to specify large numeric values ("10M") in the
config file. (02-mar-2008, Camiel vanderhoeven)
- Add BREAKPOINT INSTRUCTION command to IDB. (29-feb-2008, Brian
Wheeler)
- Restart serial port connection if lost. (29-feb-2008, Brian
Wheeler)
- Fix RMC reported psu and temperature status. (29-feb-2008, Brian
Wheeler)
- Compute SROM checksum for network interface. Tru64 needs this.
(29-feb-2008, Brian Wheeler)
- Fix vms boot problems from ide cdrom and make Tru64 installation
possible by: a) Clearing the busmaster active bit when the bit 1
is written to the busmaster status register; and b) Attempting
to refire the interrupt if the driver seems to have missed it.
(27-feb-2008, Brian Wheeler)
- Major rewrite of NIC code. Real internal loopback support, ring
queue for incoming packets, and various other improvements.
(26-feb-2008, David Hittner)
- Improvements to backtrace functionality on GNU systems
(26-feb-2008, Brian Wheeler)
- Better config file syntax checking and error reporting.
(26-feb-2008, Brian Wheeler)
- Moved DMA code into it's own class (CDMA). (26-feb-2008, Camiel
Vanderhoeven)
- Shut down display refresh thread when emulator exits.
(20-feb-2008, David Leonard)
- Return SYSTEM RESOURCE FAILURE sense if dato/dati buffer size
is exceeded in SCSI operations. (20-feb-2008, David Leonard)
- Support MSF in READ TOC scsi command. (20-feb-2008, Brian
Wheeler)
- Show disk creation progress. (20-feb-2008, David Leonard)
- Avoid 'Xlib: unexpected async reply' errors on Linux/Unix/BSD's
by adding some thread interlocking. (20-feb-2008, David Leonard)
- GNU compiler support on Windows. (20-feb-2008, Alex)
- HCI register space for UISB added. (18-feb-2008, Brian Wheeler)
- Added vital product data page 0 (Required for Tru64).
(18-feb-2008, Brian Wheeler)
- The READ CAPACITY scsi command now properly returns the number of
the last LBA (n-1); not the number of LBA's (n). INITIALIZE now
works properly on a scsi disk. (18-feb-2008, Camiel Vanderhoeven)
- Added READ_LONG scsi command, and support for MODE_SENSE
changeable parameter pages. (last bit needed to get SCSI
working on OpenVMS) (16-feb-2008, Camiel Vanderhoeven)
- The owner of the SCSI bus is allowed to re-arbitrate for it.
(16-feb-2008, Camiel Vanderhoeven)
- Added Symbios 53C810 SCSI controller. (16-feb-2008, Camiel
Vanderhoeven)
- Moved keyboard code into it's own class. (CKeyboard).
(12-feb-2008, Camiel Vanderhoeven)
- Show originating device name on memory errors. (08-feb-2008,
Camiel Vanderhoeven)
- Set default keyboard translation to scanset 3 (PS/2).
(08-feb-2008, Camiel Vanderhoeven)
- On GNU systems, display a backtrace when a segmentation fault
occurs, and DEBUG_BACKTRACE has been defined. (07-feb-2008, Brian
Wheeler)
- Fixed registration of ROM expansion address. (06-feb-2008, Camiel
Vanderhoeven)
- Check for FPEN in old floating point code. (06-feb-2008, Camiel
Vanderhoeven)
- Proper interrupt handling in serial port device. Fixes an
initialization bug spotted by David Hittner. (06-feb-2008, Camiel
Vanderhoeven)
- Disable unaligned access check alltogether; it doesn't work properly
for some reason. (05-feb-2008, Camiel Vanderhoeven)
- The new floating point code (21-jan-2008) has some unidentified
problems. The OpenVMS installation routine fails with this new code.
For now, the old floating point code has been restored, and the new
floating-point code is used only when HAVE_NEW_FP has been defined.
The new code should be fixed, so we can take advantage of floating
point exceptions. (05-feb-2008, Camiel Vanderhoeven)
- Display a message when system initialization has failed. (05-feb-2008,
Brian Wheeler)
- Put X64 around 64-bit constants in DO_CVTQL. (compilation issue on some
Linux'es) (05-feb-2008, Camiel Vanderhoeven)
- Corrected a typo in the definition of PCI_PTE_SHIFT (2 should be 12)
that caused an OpenVMS procgone bugcheck. (04-feb-2008, Camiel
Vanderhoeven)
- Completed LPT support so it works with FreeBSD as a guest OS.
(02-feb-2008, Brian Wheeler)
- Avoid unnecessary shift-operations to calculate constant values.
(01-feb-2008, Camiel Vanderhoeven)
- Improved speed by remembering the number of instructions left in current
memory page, so that the translation-buffer doens't need to be consulted
on every instruction fetch when the Icache is disabled. (30-jan-2008,
Camiel Vanderhoeven)
- Remember separate last found translation-buffer entries for read and write
operations. This should help with memory copy operations. (29-jan-2008,
Camiel Vanderhoeven)
- Avoid interrupts from the new IDE device that originated while interrupts
were disabled. (29-jan-2008, Brian Wheeler)
- Improved floating-point exception handling. (28-jan-2008, Camiel
Vanderhoeven)
- Lifted hardcoded file-size limit of 10,000 bytes for config file.
(26-jan-2008, Camiel Vanderhoeven)
- Bugfix in the VAX floating point STF and the IEEE floating point STS
instructions. (26-jan-2008, Camiel Vanderhoeven)
- Don't repeat interrupts from the new IDE controller too soon.
(26-jan-2008, Brian Wheeler)
- Do unaligned trap only when a page boundary is crossed. Something is
causing alignment traps in the SRM console, with the DAT bit set to false,
and no OS handler in place. Also, when OpenVMS boots there are alignment
traps that shouldn't happen. None of these cross page boundaries, so we're
safe for now. (26-jan-2008, Camiel Vanderhoeven)
- Trap on unaligned memory access. The previous implementation where
unaligned accesses were silently allowed could go wrong when page
boundaries are crossed. (25-jan-2008, Camiel Vanderhoeven)
- Allow specifying autocreate_size on a disk image to have it created if it
doesn't exist. (25-jan-2008, Camiel Vanderhoeven)
- Added an option to disable the processor Icache. The emulator runs faster
when this is disabled, but that might lead to problems with some OS'es.
(25-jan-2008, Camiel Vanderhoeven)
- Added do_pci_write and do_pci_read functions to the PCI base device.
(24-jan-2008, Camiel Vanderhoeven, David Hittner)
- Fixed overflow-detection. (24-jan-2008, Camiel Vanderhoeven)
- Added missing integer /V instructions (22-jan-2008, Camiel Vanderhoeven,
Bob Supnik)
- win32 GUI made compatible with older windows SDK. (22-jan-2008, Camiel
Vanderhoeven)
- New floating-point code (21-jan-2008, Camiel Vanderhoeven, Bob Supnik)
- Fixed misinterpretation of the INT bit in integer overflow traps. (Camiel
Vanderhoeven, 21-jan-2008)
- Limited the maximum number of sectors, as the OpenVMS IDE driver doesn't
like 255 sectors. (Camiel Vanderhoeven, 21-jan-2008)
- Added X11 GUI. (20-jan-2008, Camiel Vanderhoeven)
- Added win32 GUI. (19-jan-2008, Camiel Vanderhoeven)
- Run CPU in a separate thread if CPU_THREADS is defined. NOTA BENE: This is
very experimental, and has several problems. (19-jan-2008, Camiel
Vanderhoeven)
- Replaced sext_64 inlines for performance reasons (18-jan-2008, Camiel
Vanderhoeven, David Hittner)
- Process device interrupts after a 100-cpu-cycle delay. (18-jan-2008,
Camiel Vanderhoeven)
- Added ADDL/V instruction (16-jan-2008, David Hittner, Bob Supnik)
- Fixed some timeouts on new IDE controller. (16-jan-2008, Brian Wheeler)
- When a keyboard self-test command is received, and the queue is not empty,
the queue is cleared so the 0x55 that's sent back will be the first thing
in line. Makes the keyboard initialize a little better with SRM.
(15-jan-2008, Brian Wheeler)
- Bugfix regarding double deletion of disk device objects. (13-jan-2008,
Brian Wheeler)
- New IDE-controller working on big-endian host architectures. (13-jan-2008,
Fang Zhe)
- Support additional CD-ROM commands. (13-jan-2008, Brian Wheeler)
- Smart algorithm for determining optimal cylinder/head/sector disk layout.
(13-jan-2008, Camiel Vanderhoeven)
- End debugger run on Ctrl-C. (12-jan-2008, Brian Wheeler)
- SCSI Engine added to Disk class. SCSIBus class and SCSIDevice base class
added. (12-jan-2008, Camiel Vanderhoeven)
- bugfix to ATAPI code in new IDE controller. SRM can now boot from IDE
CD-ROMs. (09-jan-2008, Brian wheeler)
- ATAPI improvements to new IDE controller. (09-jan-2008, Brian wheeler)
- Put filename without path in disk model number. (09-jan-2008, Brian
Wheeler)
- Save disk state to state file. (09-jan-2008, Camiel Vanderhoeven)
- Use Brian Wheeler's CNewIde class instead of the CAliM1543C_ide class if
HAVE_NEW_IDE is defined. This change will be undone when the new ide
controller will replace the old standard one. (08-jan-2008, Camiel
Vanderhoeven)
- "Old" IDE-controller working on big-endian host architectures.
(08-jan-2008, Fang Zhe)
- S3 Trio VGA-card working on big-endian host architectures. (08-jan-2008,
Fang Zhe)
- Removed last references to IDE disk read SRM replacement. (08-jan-2008,
Camiel Vanderhoeven)
- Added NewIde class. Due to replace the current IDE controller
implementation. (08-jan-2008, Brian Wheeler)
- PCI scatter/gather DMA memory mapping support added. (07-jan-2008, Camiel
Vanderhoeven)
- Default blocksize set to 2048 bytes for CD-ROM devices. (06-jan-2008,
Camiel Vanderhoeven)
- Allow changing block-size on disk devices. (06-jan-2008, Camiel
Vanderhoeven)
- Fixed typo in network-code (05-jan-2008, Fausto Saporito)
- Do 64-bit file I/O properly for FreeBSD and OS X. (05-jan-2008, Fang Zhe)
- Added CDiskDevice class to allow using raw devices. (05-jan-2008, Camiel
Vanderhoeven)
- Made MAC-address of network-card configurable (04-jan-2008, David Hittner)
- Make telnet work on Apple OS X. (04-jan-2008, Fang Zhe)
- Improved compatibility with SDL on Apple OS X (including keyboard).
(04-jan-2008, Fang Zhe)
- Added swap_xx macro's for use in places where bytes need to be swapped
regardless of endianess. (04-jan-2008, Camiel Vanderhoeven)
- Support for larger disk images by using 64-bit file I/O. (04-jan-2008,
Camiel Vanderhoeven)
- Cirrus VGA-card working on big-endian host architectures. (03-jan-2008,
Camiel Vanderhoeven)
- PCI base device working on big-endian host architectures. (03-jan-2008,
Camiel Vanderhoeven)
- Compatibility with SDL on Apple OS X. (03-jan-2008, Fang Zhe)
- Compileable on Apple OS X and FreeBSD. (03-jan-2008, Fang Zhe)
- CPU working on big-endian host architectures. (02-jan-2008, Camiel
Vanderhoeven)
- Recognize endianess on more architectures. (02-jan-2008, Fang Zhe)
.
\section c017 version 0.16 -> 0.17
Version 0.17 adds VGA and SCSI support. The configuration file format has
changed.
- Ignore loopback mode on network card. (02-jan-2008, Camiel Vanderhoeven)
- Fixed memory leaks. (29-dec-2007, Camiel Vanderhoeven)
- Throw exceptions rather than just exiting when errors occur. (28-dec-2007,
Camiel Vanderhoeven)
- Only delay IDE interrupts when NO_VMS is defined. (Need to fix this
properly) (28-dec-2007, Camiel Vanderhoeven)
- Close files and free memory when shutting down. (20-dec-2007, Camiel
Vanderhoeven)
- Do SCSI reselection on read commands. (20-dec-2007, Camiel Vanderhoeven)
- More checks if IDE disks exist. (20-dec-2007, Camiel Vanderhoeven)
- Basic ATAPI support added. (19-dec-2007, Brian Wheeler)
- Allow for different block sizes for SCSI disks. (19-dec-2007, Camiel
Vanderhoeven)
- Allow for reporting disk-size in bytes. (19-dec-2007, Camiel Vanderhoeven)
- Faster IEEE floating-point operations on machines that support IEEE.
(18-dec-2007, Camiel Vanderhoeven)
- Fixed silly mis-interpretation of "add-with-carry" instruction on SCSI
controller. (18-dec-2007, Camiel Vanderhoeven)
- Byte-sized disk transfers for SCSI controller. (18-dec-2007, Camiel
Vanderhoeven)
- Bugfix in disk-controller initialization. (18-dec-2007, Camiel
Vanderhoeven)
- SCSI timeout delayed until phase check. (18-dec-2007, Camiel Vanderhoeven)
- General timer added to SCSI controller. (17-dec-2007, Camiel Vanderhoeven)
- Format of state file changed to allow better error-checking. (17-dec-2007,
Camiel Vanderhoeven)
- Changed last disk cylinder number calculation. (17-dec-2007, Brian
Wheeler)
- Better DMA support. (17-dec-2007, Brian Wheeler)
- Delayed IDE interrupts. (NetBSD requirement) (17-dec-2007, Brian Wheeler)
- Added menu option to load state file to the serial port BREAK menu.
(16-dec-2007, Camiel Vanderhoeven)
- Register structure changed for SCSI card. (16-dec-2007, Camiel
Vanderhoeven)
- Corrected some weird uses of size_t. (16-dec-2007, Brian Wheeler)
- disabled out SRM IDE READ replacement; doesn't work with SCSI!
(14-dec-2007, Camiel Vanderhoeven)
- Symbios SCSI controller (CSym53C895) added. (14-dec-2007, Camiel
Vanderhoeven)
- Free RAMdisk memory on destruction. (14-dec-2007, Camiel Vanderhoeven)
- Use disk base class for direct IDE access from SRM. (12-dec-2007, Camiel
Vanderhoeven)
- Move disk operations to a separate CDisk base class, and it's descendent
CDiskFile and CDiskRam classes. (12-dec-2007, Camiel Vanderhoeven)
- Add a CDiskController base class. (12-dec-2007, Camiel Vanderhoeven)
- Don't let the floppy controller claim IO port 3f6 as this is in use by the
IDE controller. (11-dec-2007, Camiel Vanderhoeven)
- More complete IDE implementation allows NetBSD to recognize disks.
(11-dec-2007, Camiel Vanderhoeven)
- Improved system timer logic. (10/11-dec-2007, Brian Wheeler)
- Translate a 64-bit PCI access into 2 32-bit accesses. (10-dec-2007, Camiel
Vanderhoeven)
- Better error-reporting if the configuration-file is wrong. (10-dec-2007,
Brian Wheeler)
- Simplified gui plugin code. (10-dec-2007, Camiel Vanderhoeven)
- Format of configuration file changed, configurator class introduced. Far
more flexible configurations are now allowed. (10-dec-2007, Camiel
Vanderhoeven)
- PCI Card base device (CPCIDevice) added. (10-dec-2007, Camiel
Vanderhoeven)
- Don't let VGA-cards claim addressess they shouldn't claim. (11-dec-2007,
Camiel Vanderhoeven)
- Added CCirrus VGA card. Both VGA-cards now use the CVGA base class.
(10-dec-2007, Camiel Vanderhoeven)
- Make receiving network data in a separate execution thread work on Linux.
(10-dec-2007, Brien Wheeler)
- Ali chipset device split into separate ISA, IDE and USB parts.
(10-dec-2007, Camiel Vanderhoeven)
- Added configuration file item for vga_console (set console serial).
(10-dec-2007, Camiel Vanderhoeven)
- Better exec handling for starting serial port terminals. (10-dec-2007,
Brian Wheeler)
- Generate keyboard interrupts when needed. (07-dec-2007, Camiel
Vanderhoeven)
- Moved sdl_init from the VGA card to the SDL GUI implementation.
(07-dec-2007, Camiel Vanderhoeven)
- Let the network card identify itself as DE-500BA. (06-dec-2007, Camiel
Vanderhoeven)
- Corrected bug regarding make/break key settings. (06-dec-2007, Camiel
Vanderhoeven)
- Add an abstraction layer for keyboard, mouse and video support, using the
SDL gui plugin developed by the Bochs project. (06-dec-2007, Camiel
Vanderhoeven)
- Change VGA-card implementation to include most of Boch's VGA-code.
(06-dec-2007, Camiel Vanderhoeven, Brian Wheeler)
- Option to handle CPU interrupts by direct operations on the Typhoon
chipset's interrupt registers. (02-dec-2007, Camiel Vanderhoeven)
- VMS PAL replacement routines added. (02-dec-2007, Camiel Vanderhoeven)
- Implemented various often-used bitmask operations as inline functions.
(02-dec-2007, Camiel Vanderhoeven)
- Translation buffer class objects replaced with translation buffer arrays
in the CPU object. (02-dec-2007, Camiel Vanderhoeven)
- Keep track of when to check for interrupts and when not. (02-dec-2007,
Camiel Vanderhoeven)
- Timing / floppy tweak for Linux/BSD guests. (02-dec-2007, Brian Wheeler)
- Added code-profiling support. (02-dec-2007, Camiel Vanderhoeven)
- Receive network data in a separate execution thread. (02-dec-2007, Camiel
Vanderhoeven)
- Avoid misprobing of unused PCI configuration space. (02-dec-2007, Camiel
Vanderhoeven)
- Added keyboard support using SDL library. (01-dec-2007, Brian Wheeler)
- Corrected system timer behavior for Linux/BSD as a guest OS. (01-dec-2007,
Brian Wheeler)
- Added support for instruction counting and underlined lines in listings.
(01-dec-2007, Brian Wheeler)
- Use __int8, __int16 and __int32 on windows, instead of char, short, long.
This makes us compatible with SDL. (01-dec-2007, Camiel Vanderhoeven)
- Corrected some unsigned/signed issues. (01-dec-2007, Brian Wheeler)
- Use correct interrupt for secondary IDE controller. (01-dec-2007, Camiel
Vanderhoeven)
- Ignore address bits 35- 42 in the physical address. (01-dec-2007, Camiel
Vanderhoeven, Brian Wheeler)
- Added support for Ctrl+C and panic. (01-dec-2007, Brian Wheeler)
- Added CS3Trio64 VGA-card. (01-dec-2007, Brian Wheeler)
- Added IDB LOADREG and LOADFPREG commands. (22-nov-2007, Brian Wheeler)
- Added nic0.disabled configuration option. (22-nov-2007, Brian Wheeler)
.
\section c016 version 0.15 -> 0.16
Besides a few performance improvements, the biggest new feature is network
support. An emulated DE500BA NIC has been added.
- Use the standard pcap functions (not the extended windows ones), we want
to be compatible. (17-nov-2007, Camiel Vanderhoeven)
- Get the adapter and DECnet address to use from the configuration file.
(17-nov-2007, Camiel Vanderhoeven)
- Check memory allocations. (17-nov-2007, Camiel Vanderhoeven)
- Made it possible to disable the network at compile time by defining
NO_NETWORK. (17-nov-2007, Camiel Vanderhoeven)
- Changed the MAC address into the DigitalE-range. (17-nov-2007, Camiel
Vanderhoeven)
- Moved translation of PCI addresses to system-wide addresses to a separate
function (CSystem::PCI_Phys). (16-nov-2007, Camiel Vanderhoeven)
- More correct behaviour for some network interface registers.
(16-nov-2007,Camiel Vanderhoeven)
- Perfect filtering for network interface implemented using berkeley packet
filter. (16-nov-2007,Camiel Vanderhoeven)
- Made processor faster again by reducing TB size to 16 entries.
(15-nov-2007, Eduardo Marcelo Serrat)
- Rewrite network code to use libpcap/winpcap. Allows other protocols than
TCP/IP, and gives better portability. (15-nov-2007,Camiel Vanderhoeven)
- Include proper files for network support. (15-nov-2007,Camiel
Vanderhoeven)
- Use typedefs for type definitions rather than #define's. (15-nov-2007,
Camiel Vanderhoeven)
- Network card (CDEC21143) added. Based upon the GXEmul implementation.
(14-nov-2007, Anders Gavare, Camiel Vanderhoeven)
- Implemented inet_aton for architectures that lack it. (14-nov-2007,
Camiel Vanderhoeven)
- Added BSD-style typedef definitions. (14-nov-2007, Camiel Vanderhoeven)
- Bug-fix in CALL_PAL RSCC. (14-nov-2007, Camiel Vanderhoeven)
- Implemented most simple PALcode routines in C++. (14-nov-2007, Camiel
Vanderhoeven)
- Fix Software Interrupt behaviour (use correct bitmasks). (12-nov-2007,
Camiel Vanderhoeven)
- Made a start with implementing PALcode routines in C++. (12-nov-2007,
Camiel Vanderhoeven)
- Corrected IEEE conversion problem; made really sure no endless loops can
occur in any of the host2xxx conversions. (10-nov-2007, Camiel
Vanderhoeven)
- In the IDB, f12_f3 operations show fxx as registers instead of rxx.
(10-nov-2007, Camiel Vanderhoeven)
- Added menu option to save a state file to the serial port BREAK menu.
(10-nov-2007, Camiel Vanderhoeven)
- Drop LF when received on serial port; OpenVMS expects to receive a CR only
on its console. This allows entering the password during the OpenVMS 8.3
installation procedure. (09-nov-2007, Camiel Vanderhoeven)
.
\section c015 version 0.14 -> 0.15
Version 0.15 corrects a few small bugs, adds instruction set completeness,
true 32-bit floating point support, and increased speed.
- Added last missing CPU instructions (ITOFS, ITOFF). (08-nov-2007, Camiel
Vanderhoeven)
- Restructured floating point conversion routines. There now is a real
difference between 32-bit and 64-bit floating point operations.
(08-nov-2007, Camiel Vanderhoeven)
- Fixed IEEE conversion problem to avoid endless loop. (07-nov-2007, Camiel
Vanderhoeven)
- Performance improvements to ICACHE: last result is kept; cache lines are
larger (512 DWORDS in stead of 16 DWORDS), cache size is configurable
(both number of cache lines and size of each cache line), memcpy is used
to move memory into the ICACHE. CAVEAT: ICACHE can only be filled from
memory (not from I/O). (06-nov-2007, Camiel Vanderhoeven)
- Added integer /V instructions (without actual overflow detection support).
(02-nov-2007, Camiel Vanderhoeven)
- Added missing floating point instructions. (02-nov-2007, Camiel
Vanderhoeven)
- Remember the last found translation buffer entry to improve speed.
(02-nov-2007, Camiel Vanderhoeven)
.
\section c014 version 0.13 -> 0.14
First boot version. This version is capable of booting OpenVMS 7.3-1 in
conversational bootstrap mode.
- Fixed address translation sign extension. (31-oct-2007, Eduardo Marcelo
Serrat)
- Disable memory access checks for now. (31-oct-2007, Eduardo Marcelo
Serrat)
- Fixed floating point conversion routines. (31-oct-2007, Eduardo Marcelo
Serrat)
- Added CVTDG, CVTGD, CVTGF, MULG instructions. (31-oct-2007, Eduardo
Marcelo Serrat)
- EXC_SUM contained the wrong register (3 in stead of 1) on a DTBM
exception. (31-oct-2007, Eduardo Marcelo Serrat)
- Disable SRM replacement routines. (31-oct-2007, Eduardo Marcelo Serrat)
- Corrected IDE interface revision level. (31-oct-2007, Eduardo Marcelo
Serrat)
- IPR 0x2d identified as M_FIX (Mbox fixed behaviour). (30-oct-2007, Camiel
Vanderhoeven)
- On a big-endian system, the LBA address for a read or write action was
byte-swapped. Fixed this. (18-apr-2007, Camiel Vanderhoeven)
- Faster lockstep mechanism (send info 50 cpu cycles at a time).
(18-apr-2007, Camiel Vanderhoeven)
- Decompressed ROM image is now identical between big- and small-endian
platforms (put endian_64 around PALbase and PC). (18-apr-2007, Camiel
Vanderhoeven)
- Give ASM bit a value (true) for PALmode Icache entries. (17-apr-2007,
Camiel Vanderhoeven)
- Allow a telnet client program to be in a directory containing spaces on
Windows ("c:\program files\putty\putty.exe"). (17-apr-2007, Camiel
Vanderhoeven)
- PCI reset support added. (16-apr-2007, Camiel Vanderhoeven)
- Remove old address range if a new one is registered (same device/same
index). (16-apr-2007, Camiel Vanderhoeven)
- Allow configuration strings with spaces in them. (16-apr-2007, Camiel
Vanderhoeven)
- Never start a telnet client when running as lockstep slave, because we
want to receive a connection from the master instead. (16-apr-2007, Camiel
Vanderhoeven)
- Added possibility to start a Telnet client automatically. (16-apr-2007,
Camiel Vanderhoeven)
.
\section c013 version 0.12 -> 0.13
- Save more information in state file (11-apr-2007, Camiel Vanderhoeven)
- Fixed bug in TRC_DEV in SRM_READ_IDE_DISK (11-apr-2007, Camiel
Vanderhoeven)
- Explicitly convert integers to double for calls to log/pow in
floating-point conversion routines. (11-apr-2007, Camiel Vanderhoeven)
- Replaced CSystem::LoadROM and CSystem::SelectROM() calls with a single
CSystem::LoadROM call. (10-apr-2007, Camiel Vanderhoeven)
- Removed obsolete ROM-handling code. (10-apr-2007, Camiel Vanderhoeven)
- Extended ROM-handling code to favor loading decompressed ROM code
over loading compressed code, and to save decompressed ROM code
during the first time the emulator is run. (10-apr-2007, Camiel
Vanderhoeven)
- New mechanism for SRM replacements. Where these need to be executed,
CSystem::LoadROM puts a special opcode (a CALL_PAL instruction with an
otherwise illegal operand of 0x01234xx) in memory. CAlphaCPU::DoClock
recognizes these opcodes and performs the SRM action.Fixed address
translation sign extension. (10-apr-2007, Camiel Vanderhoeven)
- Added PCB to job context recognition in IDB tracing. (07-apr-2007,
Camiel Vanderhoeven)
- Fixed CAlphaCPU::get_prbr. The virtual address was returned instead of
the physical one! (05-apr-2007, Camiel Vanderhoeven)
- Fixed wrong IDE configuration mask (address ranges masked were too
short, leading to overlapping memory regions). (05-apr-2007, Camiel
Vanderhoeven)
- Reduced number of page-table entries back to 128. (01-apr-2007, Camiel
Vanderhoeven)
- InvalidateSingle invalidates all matching translation buffer entries,
if more than one match. (01-apr-2007, Camiel Vanderhoeven)
- Define NO_INTELLIGENT_TB by default, because some bug causes the
translation buffer to return bogus translations for IDE addresses to
the DQDRIVER. (31-mar-2007, Camiel Vanderhoeven)
.
\section c012 version 0.11 -> 0.12
- Added AST to the list of conditions that cause the processor to go to
the interrupt PAL vector (680). (29-mar-2007, Camiel Vanderhoeven)
- When DEBUG_PIC is defined, generate more debugging messages.
(27-mar-2007, Camiel Vanderhoeven)
- When an interrupt originates from the cascaded interrupt controller,
the interrupt vector from the cascaded controller is returned.
(27-mar-2007, Camiel Vanderhoeven)
- When interrupts are ended on the cascaded controller, and no
interrupts are left on that controller, the cascade interrupt (2) on
the primary controller is ended as well. I'M NOT COMPLETELY SURE IF
THIS IS CORRECT, but what goes on in OpenVMS seems to imply this.
(27-mar-2007, Camiel Vanderhoeven)
- When the system state is saved to a vms file, and then restored, the
ide_status may be 0xb9, this bug has not been found yet, but as a
workaround, we detect the value 0xb9, and replace it with 0x40.
(27-mar-2007, Camiel Vanderhoeven)
- Changed the values for cylinders/heads/sectors on the IDE identify
command, because it looks like OpenVMS' DQDRIVER doesn't like it if
the number of sectors is greater than 63. (27-mar-2007, Camiel
Vanderhoeven)
- All IDE commands generate an interrupt upon completion. (27-mar-2007,
Camiel Vanderhoeven)
- IDE command SET TRANSLATION (0x91) is recognized, but has no effect.
This is allright, as long as OpenVMS NEVER DOES CHS-mode access to the
disk. (27-mar-2007, Camiel Vanderhoeven)
- Add possibility to disable "smart" Translation Buffers by defining
NO_INTELLIGENT_TB. (27-mar-2007, Camiel Vanderhoeven)
- Specific-EOI's (end-of-interrupt) now only end the interrupt they are
meant for. (26-mar-2007, Camiel Vanderhoeven)
- When DEBUG_PIC is defined, debugging messages for the interrupt
controllers are output to the console, same with DEBUG_IDE and the IDE
controller. (26-mar-2007, Camiel Vanderhoeven)
- If IDE registers for a non-existing drive are read, 0xff is returned.
(26-mar-2007, Camiel Vanderhoeven)
- Generate an interrupt when a sector is read or written from a disk.
(26-mar-2007, Camiel Vanderhoeven)
- Possibility to disable SRM-code replacements with the defines
SRM_NO_IDE, SRM_NO_SRL, and SRM_NO_SPEEDUPS. (26-mar-2007, Camiel
Vanderhoeven)
- Possibility to send SRM-code replacement debugging messages to the
console, with the defines DEBUG_SRM_IDE and DEBUG_SRM_SRL.
(26-mar-2007, Camiel Vanderhoeven)
- Added software-interrupts to the list of conditions that can cause
the processot to go to the interrupt PAL vector (680). (26-mar-2007,
Camiel Vanderhoeven)
- Show references to unknown memory regions when DEBUG_UNKMEM is
defined. (26-mar-2007, Camiel Vanderhoeven)
.
\section c011 version 0.09 -> 0.11
- Bugfix in CTLZ and CTTZ instructions. Fixes the INCON_SCHED bugcheck
(bug # 1680064). (18-mar-2007, Camiel Vanderhoeven)
- Removed pointles comparison (v_prbr > 0). (18-mar-2007, Camiel
Vanderhoeven)
- Debugger translation from virtual to physical address moved to an
inline function (code to do this was duplicated many times...).
(14-mar-2007, Camiel Vanderhoeven)
- Do not perform address translations when we are listing. (14-mar-2007,
Camiel Vanderhoeven)
- Added CTraceEngine::list_all method. (14-mar-2007, Camiel
Vanderhoeven)
- Bugfixes in debugging macro's. (14-mar-2007, Camiel Vanderhoeven)
- Basic floating point support added. (13-mar-2007, Camiel Vanderhoeven)
- Added support for TranslationBuffer debugging in IDB. (12-mar-2007,
Camiel Vanderhoeven)
- Added possibility to retrieve physical address of current instruction.
(12-mar-2007, Camiel Vanderhoeven)
- Added member function CAlphaCPU::get_pal_base. (12-mar-2007, Camiel
Vanderhoeven)
- When an exception occurs, debugging information for the previous
instruction is no longer lost. (12-mar-2007, Camiel Vanderhoeven)
- Made various printf-statements 64-bit safe in a neater way. (Use
printf("%" LL "x",value) instead of printf("%x",(u64)value)).
(12-mar-2007, Camiel Vanderhoeven)
- Added support for "smart" Translation Buffers. (12-mar-2007, Camiel
Vanderhoeven)
- Set values for EXC_SUM and MM_STAT on various exceptions.
(12-mar-2007, Camiel Vanderhoeven)
- In the listing-process, addresses were executed twice. (09-mar-2007,
Camiel Vanderhoeven)
- Try to translate a virtual PRBR value to a physical one in
CAlphaCPU::get_prbr. (09-mar-2007, Camiel Vanderhoeven)
- endian.h renamed to es40_endian.h. (08-mar-2007, Brian Wheeler)
- When tracing, try to convert virtual addresses to physical ones through
the translation buffers. (08-mar-2007, Camiel Vanderhoeven)
- CAlphaCPU::va_form now takes a boolean argument bIBOX to determine
which ASN and VPTB to use. (08-mar-2007, Camiel Vanderhoeven)
- LDL and LDQ where the destination is R31 do not cause exceptions.
(08-mar-2007, Camiel Vanderhoeven)
- When doing a double translationbuffer lookup, do it manually.
(08-mar-2007, Camiel Vanderhoeven)
- When no entry is found, try to look it up in the page table ourselves.
(08-mar-2007, Camiel Vanderhoeven)
- Inline translationbuffer functions turned into normal functions, and
moved to TranslationBuffer.cpp. (08-mar-2007, Camiel Vanderhoeven)
- TranslationBuffer functions get their asn information from
CAlphaCPU, rather than getting the ASN number as an argument.
(08-mar-2007, Camiel Vanderhoeven)
.
\section c009 version 0.08 -> 0.09
- Properly handle endianess on OpenVMS. (07-mar-2007, Camiel
Vanderhoeven)
- Limit write_printable_s to 100 characters. (07-mar-2007, Camiel
Vanderhoeven)
- When tracing to an unknown (not in CSV file) function, treat all
arguments as if they were strings. (07-mar-2007, Camiel Vanderhoeven)
- When displaying string arguments, try to translate a virtual address
to a physical one through the translation buffer. (07-mar-2007, Camiel
Vanderhoeven)
- Fixed error in hiding functions (tracing). (07-mar-2007, Camiel
Vanderhoeven)
- Bugfix in INSxH and EXTxH. The Wrong Thing(tm) was done when V_2 = 0.
Fixes bugs # 1667015, 1667018, 1674311, 1676079, 1676081 and 1676093.
(07-mar-2007, Camiel Vanderhoeven)
- HACK to stop APB.EXE from crashing when passing bootflags.
(07-mar-2007, Camiel Vanderhoeven)
- Added CAlphaCPU::get_tb, CAlphaCPU::get_asn and CAlphaCPU::get_spe
functions. (07-mar-2007, Camiel Vanderhoeven)
- Put 0x2d in HW_MTPR to get rid of error messages about this unknown
IPR. WE STILL NEED TO FIND OUT WHAT THIS REGISTER DOES. (03-mar-2007,
Camiel Vanderhoeven)
- Wrote code to be executed in stead of SRM console code for writing to
the serial port, and reading from IDE disks. Mechanism is based on
recognition of the PC value. Should be replaced with a better
mechanism in the future. (03-mar-2007, Camiel Vanderhoeven)
- Accesses to IDE-configuration space and data buffers are byte-swapped
on a big-endian architecture. This is done through the endian_xxx
macro's. (SPARC-port) (01-mar-2007, Camiel Vanderhoeven)
- All $-signs in variable names are replaced with underscores.
(SPARC-port) (01-mar-2007, Camiel Vanderhoeven)
- Some functions now get a const char * argument i.s.o. char * to avoid
compiler warnings. (SPARC-port) (01-mar-2007, Camiel Vanderhoeven)
- If ALIGN_MEM_ACCESS is defined, memory accesses are checked for
natural alignment. If access is not naturally aligned, it is performed
one byte at a time. (SPARC-port) (01-mar-2007, Camiel Vanderhoeven)
- Accesses to main-memory are byte-swapped on a big-endian architecture.
This is done through the endian_xx macro's, that differ according to the endianness of the architecture. (SPARC-port) (01-mar-2007, Camiel
Vanderhoeven)
.
\section c008 version 0.07 -> 0.08
- Lockstep mechanism added. (28-feb-2007, Camiel Vanderhoeven)
- Debugging now writes to the char* debug_string, rather than using
printf directly. This allows us to do other things with debugger
output. (lockstep-comparison, for instance). (28-feb-2007, Camiel
Vanderhoeven)
- Add support for OpenVMS as a host OS. (27-feb-2007, Camiel
Vanderhoeven)
- E_FAULT returned from translation buffer now causes DFAULT exception.
(22-feb-2007, Camiel Vanderhoeven)
- Bug-fix for MTPR and MFPR instructions (these instructions use
different registers). (22-feb-2007, Camiel Vanderhoeven)
- Made a couple of printf's multi-platform-safe. (22-feb-2007, Camiel
Vanderhoeven)
- Add the the ASM bit to the instruction cache. (22-feb-2007, Camiel
Vanderhoeven)
- CTranslationBuffer::convert_address now also may return E_FAULT when
FOR or FOW is set in the PTE. (22-feb-2007, Camiel Vanderhoeven)
- Allow user to terminate IDB execution from the serial port.
(21-feb-2007, Camiel Vanderhoeven)
- Use small menu to determine what to do when a <BREAK> is received.
(20-feb-2007, Camiel Vanderhoeven)
- Write sectors to disk when the IDE WRITE command (0x30) is executed.
(20-feb-2007, Camiel Vanderhoeven)
- Information about IDE disks is now kept in the ide_info structure.
(20-feb-2007, Brian Wheeler)
- Fixed a compiler-dependent bug (possible >> or <<by 64) in EXTxH,
INSxH and MSKxH SRA opcodes. (19-feb-2007, Camiel Vanderhoeven)
- Added HASHING and DUMPREGS commands to the IDB. (18-feb-2007, Camiel
Vanderhoeven)
- Split CPU instructions into different files. (18-feb-2007, Camiel
Vanderhoeven)
- Introduced POST_xxx and PRE_xxx macro's. When debugging, these are
included from the OP macro in AlphaCPU.cpp. (18-feb-2007, Camiel
Vanderhoeven)
- Keep track of the cycle-counter in single-step mode (using the
iSSCycles variable. (18-feb-2007, Camiel Vanderhoeven)
- Directly use the winsock functions from CSerial, don't use the CTelnet
class any more. windows and Linux code are more alike now.
(16-feb-2007, Camiel Vanderhoeven)
.
\section c007 version 0.06 -> 0.07
- No longer load CSV files, this can be done with the LOAD CSV command
in the Interactive De-Bugger. (16-feb-2007, Camiel Vanderhoeven)
- Removed most of the code from main. The main function no longer
controls every clocktick, but rather transfers control directly to
CSystem::Run, or to the Interactive Debugger. (16-feb-2007, Camiel
Vanderhoeven)
- In the IDB-version, the name of a script to execute can be specified
on the command line (es40_idb @script). (16-feb-2007, Camiel
Vanderhoeven)
- Added the Interactive Debugger (IDB). (16-feb-2007, Camiel
Vanderhoeven)
- Macro's that end CAlphaCPU::DoClock() now return 0. (16-feb-2007,
Camiel Vanderhoeven)
- Made a couple of printf's multi-platform-safe. (16-feb-2007, Camiel
Vanderhoeven)
- Added CAlphaCPU::listing. (16-feb-2007, Camiel Vanderhoeven)
- Provide slow and fast clocks for devices. Typical fast-clocked devices
are the CPU(s); most other devices that need a clock should probably
be slow clock devices. (16-feb-2007, Camiel Vanderhoeven)
- DoClock was replaced with CSystem::Run, which runs until one of the
connected devices returns something other than 0; and
CSystem::SingleStep. (16-feb-2007, Camiel Vanderhoeven)
- The define DISASM_START can be set to the number of processor cycles
after which the disassembly will start. (13-feb-2007, Camiel
Vanderhoeven)
- The define DO_SETPC can be set to the address of the first instruction
to be executed. (13-feb-2007, Camiel Vanderhoeven)
- Different algorithm used for UMULH (previous algorithm suffered from
portability issues). (13-feb-2007, Brian Wheeler)
- Corrected some typo's in printf statements. (13-feb-2007, Brian
Wheeler)
- Bugfix in the UMULH instruction. (13-feb-2007, Camiel Vanderhoeven)
- Bugfix in the HW_MTPR VA_CTL instruction. Now updates va_ctl_va_mode
instead of i_ctl_va_mode. (13-feb-2007, Camiel Vanderhoeven)
- Moved debugging macro's to cpu_debug.h. (12-feb-2007, Camiel
Vanderhoeven)
- Cleaned up SEXT and REG macro's (a lot neater now). (12-feb-2007,
Camiel Vanderhoeven)
- Moved CAlphaCPU::get_r and CAlphaCPU::get_prbr to AlphaCPU.h as
inline functions. (12-feb-2007, Camiel Vanderhoeven)
- Use SEXT macro in a some places where exotic constructions were used
previously. (12-feb-2007, Camiel Vanderhoeven)
- Added X64_BYTE, X64_WORD, X64_LONG and X64_QUAD, and used these
instead of the corresponding values. (12-feb-2007, Camiel
Vanderhoeven)
- Added ier to the variables that are saved to the state file.
(12-feb-2007, Camiel Vanderhoeven)
- Enable eating of first characters received on serial ports (needed for
now for WINDOWS). (09-feb-2007, Camiel Vanderhoeven)
- If DO_DISASM is defined, disassembly will be output. (09-feb-2007,
Camiel Vanderhoeven)
- Only open an IDE disk image, if there is a filename. (09-feb-2007,
Camiel Vanderhoeven)
- Moved debugging flags (booleans) to CSystem.cpp. (09-feb-2007, Camiel
Vanderhoeven)
- Removed loggin of last_write_loc and last_write_val. (09-feb-2007,
Camiel Vanderhoeven)
- Disable eating of first characters received on serial ports. Treat
Telnet commands properly for Linux. (07-feb-2007, Brian Wheeler)
- Debugging functions are enabled only when compiling with IDB defined
(Interactive Debugger, a future feature). (07-feb-2007, Camiel
Vanderhoeven)
- Configuration file may be specified on the command line. (07-feb-2007,
Brian Wheeler)
- Load disk images according to the configuration file. (07-feb-2007,
Brian Wheeler)
- Remove FindConfig function, and load configuration file from the
CSystem::CSystem constructor. (07-feb-2007, Brian Wheeler)
- CTraceEngine is no longer instantiated as a member of CSystem.
(07-feb-2007, Camiel Vanderhoeven)
- Removed a lot of pointless IDE messages. (07-feb-2007, Camiel
Vanderhoeven)
- Made various dubugging-related statements dependent on the
definition of IDB (interactive debugger). (07-feb-2007, Camiel
Vanderhoeven)
- RUN_LT can be defined to provide a breakpoint (end if pc < defined
value). (03-feb-2007, Camiel Vanderhoeven)
- Restructure Linux/Windows CSerial code mixing to make more sense.
(03-feb-2007, Camiel Vanderhoeven)
- Eat first incoming characters on serial ports (so we don't burden the
SRM with weird incoming characters. (03-feb-2007, Camiel Vanderhoeven)
- No longer start PuTTy. We might just want to do something wild like
connecting from a different machine! (03-feb-2007, Camiel
Vanderhoeven)
- Support for 4 IDE disks. (03-feb-2007, Brian Wheeler)
- Fixed error in trace_dev. String is no longer interpreted by printf.
(03-feb-2007, Camiel Vanderhoeven)
- Inline function printable moved to StdAfx.h. (03-feb-2007, Camiel
Vanderhoeven)
- Add definition of _strdup for Linux' benefit. (03-feb-2007, Brian
Wheeler)
- Support for execution speed timing on Linux. (03-feb-2007, Brian
Wheeler)
- Removed last conditional for supporting another system than an ES40
(#ifdef DS15). (03-feb-2007, Camiel Vanderhoeven)
- FindConfig() now returns the default value rather than crashing when
none of the standard configuration files can be found. (03-feb-2007,
Camiel Vanderhoeven)
- Portability of 64-bit constants (03-feb-2007, Brian Wheeler)
- Added possibility to load a configuration file. (03-feb-2007, Brian
Wheeler)
- Add Linux support to CSerial. (03-feb-2007, Brian Wheeler)
- Scanf and printf statements made compatible with Linux/GCC/glibc.
(03-feb-2007, Brian Wheeler)
- Includes are now case-correct (necessary on Linux). (03-feb-2007,
Brian Wheeler)
.
*/