-
Notifications
You must be signed in to change notification settings - Fork 93
/
sim_rev.h
2727 lines (1978 loc) · 124 KB
/
sim_rev.h
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
/* sim_rev.h: simulator revisions and current rev level
Copyright (c) 1993-2012, Robert M Supnik
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
ROBERT M SUPNIK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Except as contained in this notice, the name of Robert M Supnik shall not be
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from Robert M Supnik.
*/
#ifndef SIM_REV_H_
#define SIM_REV_H_ 0
#ifndef SIM_MAJOR
#define SIM_MAJOR 4
#endif
#ifndef SIM_MINOR
#define SIM_MINOR 1
#endif
#ifndef SIM_PATCH
#define SIM_PATCH 0
#endif
#ifndef SIM_DELTA
#define SIM_DELTA 0
#endif
#ifndef SIM_VERSION_MODE
#define SIM_VERSION_MODE "Current"
#endif
/*
SIM__GIT_COMMMIT_ID is undefined when working with an
archive (zip file or tar ball). Use Git keyword substitution
to record the archive's commit id via the .gitattributes
"export-subst".
*/
#define SIM_ARCHIVE_GIT_COMMIT_ID $Format:%H$
#define SIM_ARCHIVE_GIT_COMMIT_TIME $Format:%aI$
/*
The comment section below reflects the manual editing process which was in place
prior to the use of the git source control system on at https://github.com/simh/simh
Details about all future fixes will be visible in the source control system's
history.
*/
/*
V3.9 revision history
patch date module(s) and fix(es)
0 01-May-2012 scp.c:
- added *nix READLINE support (Mark Pizzolato)
- fixed handling of DO with no arguments (Dave Bryan)
- fixed "SHOW DEVICE" with only one enabled unit (Dave Bryan)
- clarified some help messages (Mark Pizzolato)
- added "SHOW SHOW" and "SHOW <dev> SHOW" commands (Mark Pizzolato)
- fixed bug in deposit stride for numeric input (John Dundas)
sim_console.c
- added support for BREAK key on Windows (Mark Pizzolato)
sim_ether.c
- major revision (Dave Hittner and Mark Pizzolato)
- fixed array overrun which caused SEGFAULT on hosts with many
devices which libpcap can access.
- fixed duplicate MAC address detection to work reliably on switch
connected LANs
sim_tmxr.c:
- made telnet option negotiation more reliable, VAX simulator now
works with PuTTY as console (Mark Pizzolato)
h316_cpu.c:
- fixed bugs in MPY, DIV introduced in 3.8-1 (from Theo Engel)
- fixed bugs in double precision, normalization, SC (from Adrian Wise)
- fixed XR behavior (from Adrian Wise)
hp2100 all peripherals (Dave Bryan):
- Changed I/O signal handlers for newly revised signal model
- Deprecated DEVNO modifier in favor of SC
hp2100_cpu.c (Dave Bryan):
- Minor speedup in "is_mapped"
- Added casts to cpu_mod, dmasio, dmapio, cpu_reset, dma_reset
- Fixed I/O return status bug for DMA cycles
- Failed I/O cycles now stop on failing instruction
- Revised DMA for new multi-card paradigm
- Consolidated DMA reset routines
- DMA channels renamed from 0,1 to 1,2 to match documentation
- Changed I/O instructions, handlers, and DMA for revised signal model
- Changed I/O dispatch table to use DIB pointers
- Removed DMA latency counter
- Fixed DMA requests to enable stealing every cycle
- Fixed DMA priority for channel 1 over channel 2
- Corrected comments for "cpu_set_idle"
hp2100_cpu.h:
- Changed declarations for VMS compiler
hp2100_cpu0.c (Dave Bryan):
- Removed DS note regarding PIF card (is now implemented)
hp2100_cpu4.c (Dave Bryan):
- Added OPSIZE casts to fp_accum calls in .FPWR/.TPWR
hp2100_cpu5.c (Dave Bryan):
- Added sign extension for dim count in "cpu_ema_resolve"
- Eliminated unused variable in "cpu_ema_vset"
hp2100_cpu6.c (Dave Bryan):
- DMA channels renamed from 0,1 to 1,2 to match documentation
hp2100_cpu7.c (Dave Bryan):
- Corrected "opsize" parameter type in vis_abs
hp2100_defs.h (Dave Bryan):
- Added hp_setsc, hp_showsc functions to support SC modifier
- DMA channels renamed from 0,1 to 1,2 to match documentation
- Revised I/O signal enum values for concurrent signals
- Revised I/O macros for new signal handling
- Added DA and DC device select code assignments
hp2100_di.c, hp2100_di.h (Dave Bryan):
- Implemented 12821A HP-IB Disc Interface
hp2100_di_da.c (Dave Bryan):
- Implemented 7906H/20H/25H ICD disc drives
hp2100_dp.c (Dave Bryan):
- Added CNTLR_TYPE cast to dp_settype
hp2100_ds.c (Dave Bryan):
- Rewritten to use the MAC/ICD disc controller library
- ioIOO now notifies controller service of parameter output
- Corrected SRQ generation and FIFO under/overrun detection
- Corrected Clear command to conform to the hardware
- Fixed Request Status to return Unit Unavailable if illegal
- Seek and Cold Load Read now Seek Check if seek in progress
- Remodeled command wait for seek completion
- Corrected status returns for disabled drive, auto-seek
beyond drive limits, Request Sector Address and Wakeup
with invalid or offline unit
- Address verification reenabled if auto-seek during
Read Without Verify
hp2100_fp1.c (Dave Bryan):
- Added missing precision on constant "one" in fp_trun
- Completed the comments for divide; no code changes
hp2100_ipl.c (Dave Bryan):
- Added CARD_INDEX casts to dib.card_index
- A failed STC may now be retried
- Consolidated reporting of consecutive CRS signals
- Revised for new multi-card paradigm
hp2100_lps.c (Dave Bryan):
- Revised detection of CLC at last DMA cycle
- Corrected 12566B (DIAG mode) jumper settings
hp2100_ms.c (Dave Bryan):
- Added CNTLR_TYPE cast to ms_settype
hp2100_mt.c (Dave Bryan):
- Removed redundant MTAB_VUN from "format" MTAB entry
- Fixed command scanning error in mtcio ioIOO handler
hp2100_stddev.c (Dave Bryan):
- Add TBG as a logical name for the CLK device
hp2100_sys.c (Dave Bryan):
- Deprecated DEVNO in favor of SC
- Added hp_setsc, hp_showsc functions to support SC modifier
- Added DA and dummy DC devices
- DMA channels renamed from 0,1 to 1,2 to match documentation
- Changed DIB access for revised signal model
hp_disclib.c, hp_disclib.h (Dave Bryan)
- Created MAC/ICD disc controller library
i1401_cd.c:
- fixed read stacker operation in column binary mode
- fixed punch stacker operation (Van Snyder)
id_pas.c:
- fixed TT_GET_MODE test to use TTUF_MODE_x (Michael Bloom)
- revised to use clock coscheduling
id_tt.c, id_ttc.p:
- revised to use clock coscheduling
id_uvc.c:
- added clock coscheduling routine
1401_cpu.c:
- reverted multiple tape indicator implementation
- fixed EOT indicator test not to clear indicator (Van Snyder)
- fixed divide not to clear word marks in quotient (Van Snyder)
- revised divide algorithm (Van Snyder)
i1401_mt.c:
- reverted multiple tape indicator implementation
- fixed END indicator test not to clear indicator (Van Snyder)
- fixed backspace over tapemark not to set EOR (Van Snyder)
- added no rewind option (Van Snyder)
i1401_sys.c:
- fixed misuse of & instead of && in decode (Peter Schorn)
pdp1_cpu.c:
- fixed misuse of & instead of && in Ea_ch (Michael Bloom)
pdp1_stddev.c:
- fixed uninitialized variable in tty output service (Michael Bloom)
pdp10_fe.c:
- revised to use clock coscheduling
pdp11_defs.h:
- fixed priority of PIRQ vs IO; added INT_INTERNALn
pdp11_io.c:
- fixed Qbus interrupts to treat all IO devices (except clock) as BR4
- fixed order of int_internal (Jordi Guillaumes i Pons)
pdp11_rf.c
- fixed bug in updating mem addr extension (Peter Schorn)
pdp11_rk.c:
- fixed bug in read header (Walter F Mueller)
pdp11_rl.c:
- added debug support
pdp11_rq.c:
- added RD32 support
pdp11_tq.c: (Mark Pizzolato)
- set UNIT_SXC flag when a tape mark is encountered
during forward motion read operations
- fixed logic which clears UNIT_SXC to check command modifier
- added CMF_WR flag to tq_cmf entry for OP_WTM
- made non-immediate rewind positioning operations take 2 seconds
- added UNIT_IDLE flag to tq units.
- fixed debug output of tape file positions when they are 64b
- added more debug output after positioning operations
- added textual display of the command being performed
- fixed comments about register addresses
pdp11_ts.c:
- fixed t_addr printouts for 64b big-endian systems (Mark Pizzolato)
pdp11_tu.c:
- fixed t_addr printouts for 64b big-endian systems (Mark Pizzolato)
pdp11_vh.c: (Mark Pizzolato)
- fixed SET VH LINES=n to correctly adjust the number
of lines available to be 8, 16, 24, or 32.
- fixed performance issue avoiding redundant polling
pdp11_xq.c: (Mark Pizzolato)
- Fixed missing information from save/restore which
caused operations to not complete correctly after
a restore until the OS reset the controller.
- Added address conflict check during attach.
- Fixed loopback processing to correctly handle forward packets.
- Fixed interrupt dispatch issue which caused delivered packets
(in and out) to sometimes not interrupt the CPU after processing.
- Fixed the SCP visible SA registers to always display the
ROM mac address, even after it is changed by SET XQ MAC=.
- Added changes so that the Console DELQA diagnostic (>>>TEST 82)
will succeed.
- Added DELQA-T (aka DELQA Plus) device emulation support.
- Added dropped frame statistics to record when the receiver discards
received packets due to the receiver being disabled, or due to the
XQ device's packet receive queue being full.
- Fixed bug in receive processing when we're not polling. This could
cause receive processing to never be activated again if we don't
read all available packets via eth_read each time we get the
opportunity.
- Added the ability to Coalesce received packet interrupts. This
is enabled by SET XQ POLL=DELAY=nnn where nnn is a number of
microseconds to delay the triggering of an interrupt when a packet
is received.
- Added SET XQ POLL=DISABLE (aka SET XQ POLL=0) to operate without
polling for packet read completion.
- Changed the sanity and id timer mechanisms to use a separate timer
unit so that transmit and receive activities can be dealt with
by the normal xq_svc routine.
Dynamically determine the timer polling rate based on the
calibrated tmr_poll and clk_tps values of the simulator.
- Enabled the SET XQ POLL to be meaningful if the simulator currently
doesn't support idling.
- Changed xq_debug_setup to use sim_debug instead of printf so that
all debug output goes to the same place.
- Restored the call to xq_svc after all successful calls to eth_write
to allow receive processing to happen before the next event
service time. This must have been inadvertently commented out
while other things were being tested.
pdp11_xu.c: (Mark Pizzolato)
- Added SHOW XU FILTERS modifier (Dave Hittner)
- Corrected SELFTEST command, enabling use by VMS 3.7, VMS 4.7, and Ultrix 1.1 (Dave Hittner)
- Added address conflict check during attach.
- Added loopback processing support
- Fixed the fact that no broadcast packets were received by the DEUNA
- Fixed transmitted packets to have the correct source MAC address.
- Fixed incorrect address filter setting calling eth_filter().
pdp18b_stddev.c:
- added clock coscheduling
- revised TTI to use clock coscheduling and to fix perpetual CAF bug
pdp18b_ttx.c:
- revised to use clock coscheduling
pdp8_clk.c:
- added clock coscheduling
pdp8_fpp.c: (Rick Murphy)
- many bug fixes; now functional
pdp8_tt.c:
- revised to use clock coscheduling and to fix perpetual CAF bug
pdp8_ttx.c:
- revised to use clock coscheduling
pdp8_sys.c:
- added link to FPP
pdp8_td.c:
- fixed SDLC to clear AC (Dave Gesswein)
sds_mt.c:
- fixed bug in scan function decode (Peter Schorn)
vax_cpu.c:
- revised idle design (Mark Pizzolato)
- fixed bug in SET CPU IDLE
- fixed failure to clear PSL<tp> in BPT, XFC
vax_cpu1.c:
- revised idle design Mark Pizzolato)
- added VEC_QMODE test in interrupt handler
vax_fpa.c:
- fixed integer overflow bug in EMODx (Camiel Vanderhoeven)
- fixed POLYx normalizing before add mask bug (Camiel Vanderhoeven)
- fixed missing arguments in 32b floating add (Mark Pizzolato)
vax_octa.c (Camiel Vanderhoeven)
- fixed integer overflow bug in EMODH
- fixed POLYH normalizing before add mask bug
vax_stddev.c:
- revised to use clock coscheduling
vax_syscm.c:
- fixed t_addr printouts for 64b big-endian systems (Mark Pizzolato)
vax_sysdev.c:
- added power clear call to boot routine (Mark Pizzolato)
vax780_sbi.c:
- added AUTORESTART switch support (Mark Pizzolato)
vax780_stddev.c
- added REBOOT support (Mark Pizzolato)
- revised to use clock coscheduling
vaxmod_def.h
- moved all Qbus devices to BR4; deleted RP definitions
V3.8 revision history
1 08-Feb-09 scp.c:
- revised RESTORE unit logic for consistency
- "detach_all" ignores error status returns if shutting down (Dave Bryan)
- DO cmd missing params now default to null string (Dave Bryan)
- DO cmd sub_args now allows "\\" to specify literal backslash (Dave Bryan)
- decommitted MTAB_VAL
- fixed implementation of MTAB_NC
- fixed warnings in help printouts
- fixed "SHOW DEVICE" with only one enabled unit (Dave Bryan)
sim_tape.c:
- fixed signed/unsigned warning in sim_tape_set_fmt (Dave Bryan)
sim_tmxr.c, sim_tmxr.h:
- added line connection order to tmxr_poll_conn,
added tmxr_set_lnorder and tmxr_show_lnorder (Dave Bryan)
- print device and line to which connection was made (Dave Bryan)
- added three new standardized SHOW routines
all terminal multiplexers:
- revised for new common SHOW routines in TMXR library
- rewrote set size routines not to use MTAB_VAL
hp2100_cpu.c (Dave Bryan):
- VIS and IOP are now mutually exclusive on 1000-F
- Removed A/B shadow register variables
- Moved hp_setdev, hp_showdev to hp2100_sys.c
- Moved non-existent memory checks to WritePW
- Fixed mp_dms_jmp to accept lower bound, check write protection
- Corrected DMS violation register set conditions
- Redefined ABORT to pass address, moved def to hp2100_cpu.h
- Combined dms and dms_io routines
- JSB to 0/1 with W5 out and fence = 0 erroneously causes MP abort
- Unified I/O slot dispatch by adding DIBs for CPU, MP, and DMA
- Rewrote device I/O to model backplane signals
- EDT no longer passes DMA channel
- Added SET CPU IDLE/NOIDLE, idle detection for DOS/RTE
- Breakpoints on interrupt trap cells now work
hp2100_cpu0.c (Dave Bryan):
- .FLUN and self-tests for VIS and SIGNAL are NOP if not present
- Moved microcode function prototypes to hp2100_cpu1.h
- Removed option-present tests (now in UIG dispatchers)
- Added "user microcode" dispatcher for unclaimed instructions
hp2100_cpu1.c (Dave Bryan):
- Moved microcode function prototypes to hp2100_cpu1.h
- Moved option-present tests to UIG dispatchers
- Call "user microcode" dispatcher for unclaimed UIG instructions
hp2100_cpu2.c (Dave Bryan):
- Moved microcode function prototypes to hp2100_cpu1.h
- Removed option-present tests (now in UIG dispatchers)
- Updated mp_dms_jmp calling sequence
- Fixed DJP, SJP, and UJP jump target validation
- RVA/B conditionally updates dms_vr before returning value
hp2100_cpu3.c (Dave Bryan):
- Moved microcode function prototypes to hp2100_cpu1.h
- Removed option-present tests (now in UIG dispatchers)
- Updated mp_dms_jmp calling sequence
hp2100_cpu4.c, hp2100_cpu7.c (Dave Bryan):
- Moved microcode function prototypes to hp2100_cpu1.h
- Removed option-present tests (now in UIG dispatchers)
hp2100_cpu5.c (Dave Bryan):
- Moved microcode function prototypes to hp2100_cpu1.h
- Removed option-present tests (now in UIG dispatchers)
- Redefined ABORT to pass address, moved def to hp2100_cpu.h
- Rewrote device I/O to model backplane signals
hp2100_cpu6.c (Dave Bryan):
- Corrected .SIP debug formatting
- Moved microcode function prototypes to hp2100_cpu1.h
- Removed option-present tests (now in UIG dispatchers)
- Rewrote device I/O to model backplane signals
hp2100 all peripherals (Dave Bryan):
- Rewrote device I/O to model backplane signals
hp2100_baci.c (Dave Bryan):
- Fixed STC,C losing interrupt request on BREAK
- Changed Telnet poll to connect immediately after reset or attach
- Added REG_FIT to register variables < 32-bit size
- Moved fmt_char() function to hp2100_sys.c
hp2100_dp.c, hp2100_dq.c (Dave Bryan):
- Added REG_FIT to register variables < 32-bit size
hp2100_dr.c (Dave Bryan):
- Revised drc_boot to use ibl_copy
hp2100_fp1.c (Dave Bryan):
- Quieted bogus gcc warning in fp_exec
hp2100_ipl.c (Dave Bryan):
- Changed socket poll to connect immediately after reset or attach
- Revised EDT handler to refine completion delay conditions
- Revised ipl_boot to use ibl_copy
hp2100_lpt.c (Dave Bryan):
- Changed CTIME register width to match documentation
hp2100_mpx.c (Dave Bryan):
- Implemented 12792C eight-channel terminal multiplexer
hp2100_ms.c (Dave Bryan):
- Revised to use AR instead of saved_AR in boot
hp2100_mt.c (Dave Bryan):
- Fixed missing flag after CLR command
- Moved write enable and format commands from MTD to MTC
hp2100_mux.c (Dave Bryan):
- SHOW MUX CONN/STAT with SET MUX DIAG is no longer disallowed
- Changed Telnet poll to connect immediately after reset or attach
- Added LINEORDER support
- Added BREAK deferral to allow RTE break-mode to work
hp2100_pif.c (Dave Bryan):
- Implemented 12620A/12936A Privileged Interrupt Fences
hp2100_sys.c (Dave Bryan):
- Fixed IAK instruction dual-use mnemonic display
- Moved hp_setdev, hp_showdev from hp2100_cpu.c
- Changed sim_load to use WritePW instead of direct M[] access
- Added PIF device
- Moved fmt_char() function from hp2100_baci.c
- Added MPX device
hp2100_cpu.h (Dave Bryan):
- Rearranged declarations with hp2100_cpu.c and hp2100_defs.h
- Added mp_control to CPU state externals
hp2100_cpu1.h (Dave Bryan):
- Moved microcode function prototypes here
hp2100_defs.h (Dave Bryan):
- Added POLL_FIRST to indicate immediate connection attempt
- Rearranged declarations with hp2100_cpu.h
- Added PIF device
- Declared fmt_char() function
- Added MPX device
i1401_cpu.c:
- fixed bug in ZA and ZS (Bob Abeles)
- fixed tape indicator implementation (Bob Abeles)
- added missing magtape modifier A (Van Snyder)
i1401_mt.c:
- added -n (no rewind) option to BOOT (Van Snyder)
- fixed bug to mask input to 6b on read (Bob Abeles)
lgp_stddev.c:
- changed encode character from # to !, due to overlap
pdp11_cpu.c:
- fixed failure to clear cpu_bme on RESET (Walter Mueller)
pdp11_dz.c:
- added MTAB_NC modifier on SET LOG command (Walter Mueller)
pdp11_io.c, vax_io.c, vax780_uba.c:
- revised to use PDP-11 I/O library
pdp11_io_lib.c:
- created common library for Unibus/Qbus support routines
pdp11_cis.c, vax_cis.c:
- fixed bug in ASHP left overflow calc (Word/NibbleLShift)
- fixed bug in DIVx (LntDstr calculation)
sds_lp.c:
- fixed loss of carriage control position on space op
vax_stddev.c, vax780_stddev.c
- modified to resync TODR on any clock reset
0 15-Jun-08 scp.c:
- fixed bug in local/global register search (Mark Pizzolato)
- fixed bug in restore of RO units (Mark Pizzolato)
- added SET/SHO/NO BR with default argument (Dave Bryan)
sim_tmxr.c
- worked around Telnet negotiation problem with QCTerm (Dave Bryan)
gri_defs.h, gri_cpu.c, gri_sys.c:
- added GRI-99 support
hp2100_baci.c (Dave Bryan):
- Implemented 12966A Buffered Asynchronous Communications Interface simulator
hp2100_cpu.c (Dave Bryan):
- Memory ex/dep and bkpt type default to current map mode
- Added SET CPU DEBUG and OS/VMA flags, enabled OS/VMA
- Corrected MP W5 (JSB) jumper action, SET/SHOW reversal,
mp_mevff clear on interrupt with I/O instruction in trap cell
- Removed DBI support from 1000-M (was temporary for RTE-6/VM)
- Enabled EMA and VIS, added EMA, VIS, and SIGNAL debug flags
- Enabled SIGNAL instructions, SIG debug flag
- Fixed single stepping through interrupts
hp2100_cpu0.c (Dave Bryan and Holger Veit):
- Removed and implemented "cpu_rte_vma" and "cpu_rte_os"
- Removed and implemented "cpu_vis" and "cpu_signal"
- Removed and implemented "cpu_rte_ema"
hp2100_cpu1.c (Dave Bryan):
- Added fprint_ops, fprint_regs for debug printouts
- Enabled DIAG as NOP on 1000 F-Series
- Fixed VIS and SIGNAL to depend on the FPP and HAVE_INT64
hp2100_cpu3.c (Dave Bryan):
- Fixed unsigned divide bug in .DDI
- Fixed unsigned multiply bug in .DMP
- Added implementation of DBI self-test
hp2100_cpu4.c (Dave Bryan):
- Fixed B register return bug in /CMRT
hp2100_cpu5.c (Holger Veit):
- Implemented RTE-6/VM Virtual Memory Area firmware
- Implemented RTE-IV Extended Memory Area firmware
hp2100_cpu6.c (Dave Bryan):
- Implemented RTE-6/VM OS accelerator firmware
hp2100_cpu7.c (Holger Veit):
- Implemented Vector Instruction Set and SIGNAL/1000 firmware
hp2100_ds.c (Dave Bryan):
- Corrected and verified ioCRS action
- Corrected DPTR register definition from FLDATA to DRDATA
hp2100_fp.c (Mark Pizzolato)
- Corrected fp_unpack mantissa high-word return
hp2100_fp1.c (Dave Bryan):
- Reworked "complement" to avoid inlining bug in gcc-4.x
- Fixed uninitialized return in fp_accum when setting
hp2100_mux.c (Dave Bryan):
- Sync mux poll with console poll for idle compatibility
hp2100_stddev.c (Dave Bryan):
- Fixed PTR trailing null counter for tape re-read
- Added IPTICK register to CLK to display CPU instr/tick
- Corrected and verified ioCRS actions
- Changed TTY console poll to 10 msec. real time
- Synchronized CLK with TTY if set for 10 msec.
- Added UNIT_IDLE to TTY and CLK
- Removed redundant control char handling definitions
- Changed TTY output wait from 100 to 200 for MSU BASIC
hp2100_sys.c (Dave Bryan):
- Added BACI device
- Added RTE OS/VMA/EMA mnemonics
- Changed fprint_sym to handle step with irq pending
hp2100_cpu.h (Dave Bryan):
- Added calc_defer() prototype
- Added extern sim_deb, cpu_dev, DEB flags for debug printouts
- Added extern intaddr, mp_viol, mp_mevff, calc_int, dev_ctl,
ReadIO, WriteIO for RTE-6/VM microcode support
hp2100_cpu1.h (Dave Bryan):
- Corrected OP_AFF to OP_AAFF for SIGNAL/1000
- Removed unused operand patterns
- Added fprint_ops, fprint_regs for debug printouts
- Revised OP_KKKAKK operand profile to OP_CCCACC for $LOC
hp2100_defs.h (Dave Bryan):
- Added BACI device
- Added 16/32-bit unsigned-to-signed conversions
- Changed TMR_MUX to TMR_POLL for idle support
- Added POLLMODE, sync_poll() declaration
- Added I_MRG, I_ISZ, I_IOG, I_STF, and I_SFS instruction masks
- Added I_MRG_I, I_JSB, I_JSB_I, and I_JMP instruction masks
nova_defs.h (Bruce Ray):
- added support for third-party 64KW memory
nova_clk.c (Bruce Ray):
- renamed to RTC, to match DG literature
nova_cpu.c (Bruce Ray):
- added support for third-party 64KW memory
- added Nova 3 "secret" instructions
- added CPU history support
nova_dkp.c (Bruce Ray):
- renamed to DKP, to match DG literature
- fixed numerous bugs in both documented and undocumented behavior
- changed bootstrap code to DG official sequence
nova_dsk.c (Bruce Ray):
- renamed to DSK, to match DG literature
- added support for undocumented behavior
- changed bootstrap code to DG official sequence
nova_mta.c (Bruce Ray):
- renamed to MTA, to match DG literature
- changed bootstrap code to DG official sequence
nova_plt.c, nova_pt.c (Bruce Ray):
- added 7B/8B support
nova_sys.c (Bruce Ray):
- fixed mistaken instruction mnemonics
pdp11_cpu.c, pdp11_io.c, pdp11_rh.c:
- fixed DMA memory address limit test (John Dundas)
- fixed MMR0 treatment in RESET (Walter Mueller)
pdp11_cpumod.h, pdp11_cpumod.c:
- fixed write behavior of 11/70 MBRK, LOSIZE, HISIZE (Walter Mueller)
- added support to set default state of KDJ11B,E clock control register
pdp11_dc.c:
- added support for DC11
pdp11_defs.h:
- added KE, KG, RC, DC support
- renamed DL11 devices
pdp11_dl.c:
- renamed devices to DLI/DLO, to match DC11
- added modem control
pdp11_io.c:
- added autoconfigure support for DC11
pdp11_ke.c:
- added support for KE11A
pdp11_kg.c (John Dundas):
- added support for KG11A
pdp11_rc.c (John Dundas):
- added support for RC11
pdp11_sys.c:
- modified to allow -A, -B use with 8b devices
- added KE, KG, RC, DC support
- renamed DL11 devices
vax_cmode.c, vax_io.c, vax780_uba.c:
- fixed declarations (Mark Pizzolato)
V3.7 revision history
3 02-Sep-07 scp.c:
- fixed bug in SET THROTTLE command
pdp10_cpu.c:
- fixed non-portable usage in SHOW HISTORY routine
pdp11_ta.c:
- forward op at BOT skips initial file gap
pdp8_ct.c:
- forward op at BOT skips initial file gap
- fixed handling of BEOT
vax_cpu.c:
- fixed bug in read access g-format indexed specifiers
2 12-Jul-07 sim_ether.c (Dave Hittner):
- fixed non-ethernet device removal loop (Naoki Hamada)
- added dynamic loading of wpcap.dll;
- corrected exceed max index bug in ethX lookup
- corrected failure to look up ethernet device names in
the registry on Windows XP x64
sim_timer.c:
- fixed idle timer event selection algorithm
h316_lp.c:
- fixed loss of last print line (Theo Engel)
h316_mt.c:
- fixed bug in write without stop (Theo Engel)
h316_stddev.c:
- fixed bug in clock increment (Theo Engel)
i1401_cpu.c:
- added recognition of overlapped operation modifiers
- remove restriction on load-mode binary tape operations
i1401_mt.c:
- fixed read tape mark operation (Van Snyder)
- remove restriction on load-mode binary tape operations
pdp1_cpu.c:
- fixed typo in SBS clear (Norm Lastovica)
pdp11_rh.c, pdp11_rp.c, pdp11_tu.c:
- CS1 DVA is in the device, not the MBA
pdp8_ct.c:
- fixed typo (Norm Lastovica)
vax_cpu.c:
- revised idle detector
1 14-May-07 scp.c:
- modified sim_instr invocation to call sim_rtcn_init_all
- fixed bug in get_sim_opt (reported by Don North)
- fixed bug in RESTORE with changed memory size
- added global 'RESTORE in progress' flag
- fixed breakpoint actions in DO command file processing
(Dave Bryan)
all CPU's with clocks:
- removed clock initialization (now done in SCP)
hp2100_cpu.c (Dave Bryan):
- EDT passes input flag and DMA channel in dat parameter
hp2100_ipl.c (Dave Bryan):
- IPLI EDT delays DMA completion interrupt for TSB
hp2100_mux.c (Dave Bryan):
- corrected "mux_sta" size from 16 to 21 elements
- fixed "muxc_reset" to clear lines 16-20
- fixed control card OTx to set current channel number
- fixed to set "muxl_ibuf" in response to a transmit interrupt
- changed "mux_xbuf", "mux_rbuf" declarations from 8 to 16 bits
- fixed to set "mux_rchp" when a line break is received
- fixed incorrect "odd_par" table values
- reversed test in "RCV_PAR" to return "LIL_PAR" on odd parity
- fixed mux reset (ioCRS) to clear port parameters
- fixed to use PUT_DCH instead of PUT_CCH for data channel status
- added DIAG/TERM modifiers to implement diagnostic mode
pdp11_cpumod.c:
- changed memory size routine to work with RESTORE
pdp11_hk.c:
- NOP and DCLR (at least) do not check drive type
- MR2 and MR3 only updated on NOP
pdp10_tu.c, pdp11_tu.c:
- TMK sets FCE only on read (Naoki Hamada)
pdp11_xu.c:
- added missing FC_RMAL command
- cleared multicast on write
vax_moddefs.h, vax_cpu1.c:
- separated PxBR and SBR mbz checks
vax780_defs.h
- separated PxBR and SBR mbz checks
- modified mbz checks to reflect 780 microcode patches
(Naoki Hamada)
vax_mmu.c:
- added address masking to all SBR-based memory reads
0 30-Jan-07 scp.c:
- implemented throttle commands
- added -e to control error processing in DO command files
(Dave Bryan)
sim_console.c:
- fixed handling of non-printable characters in KSR mode
sim_tape.c:
- fixed bug in reverse operations for P7B-format tapes
- fixed bug in reverse operations across erase gaps
sim_timer.c:
- added throttle support
- added idle support (based on work by Mark Pizzolato)
gri_stddev.c, h316_stddev.c, pdp18b_tt1.c
- fixed handling of non-printable characters in KSR mode
hp2100_cpu.c, hp2100_cpu0.c, hp2100_cpu1.c, hp2100_cpu2.c,
hp2100_cpu3.c, hp2100_cpu4.c (Dave Bryan):
- reorganized CPU modules for easier addition of new instructions
- added Double Integer instructions, 1000-F CPU, 2114 and
2115 CPUs, 12K and 24K memory sizes, 12607B and 12578A DMA
controllers, and 21xx binary loader protection
- fixed DMS self-test instruction execution on 1000-M
- fixed indirect interrupt holdoff logic
hp2100_ds.c:
- fixed REQUEST STATUS to clear status-1 (Dave Bryan)
hp2100_fp1.c:
- Added Floating Point Processor (Dave Bryan)
hp2100_lps.c:
- fixed diag-mode CLC response
i7094_cpu.c:
- fixed new bug in halt IO wait loop
- added IFT, EFT expanded core test instructions
id16_cpu.c, id32_cpu.c:
- removed separate multiplexor clock
- added idle support
id_pas.c:
- synced multiplexor poll to real-time clock
id_tt.c, id_ttp.c:
- fixed handling of non-printable characters in KSR mode
- synced keyboard poll to real-time clock
id_uvc.c:
- changed line-time clock to be free-running
pdp1_cpu.c:
- added 16-channel sequence break system (API) support
- added PDP-1D support
pdp1_clk.c:
- first release
pdp1_dcs.c:
- first release
pdp1_stddev.c:
- separated TTI, TTO for API support
pdp1_sys.c:
- added PDP-1D, 16-channel SBS, clock, DCS support
- fixed bugs in character input, block loader
pdp10_cpu.c:
- added idle support
pdp10_defs.h, pdp10_sys.c:
- added CR support
pdp10_fe.c, pdp10_tim.c:
- synced keyboard poll to real-time clock
pdp11_cr.c:
- revised for PDP-10 compatibility (CD11 only)
pdp11_cpu.c:
- added idle support
- fixed bug in ASH -32 C value
pdp11_rf.c:
- fixed unit mask (John Dundas)
pdp11_stddev.c, vax_stddev.c, vax780_stddev.c:
- synced keyboard poll to real-time clock
- added clock coscheduling support
pdp11_ta.c:
- first release
pdp11_vh.c:
- synced service poll to real-time clock
- changed device to be off by default
pdp11_dz.c, pdp11_xq.c, pdp11_xu.c:
- synced service poll to real-time clock
pdp11_sys.c:
- fixed operand order in EIS instructions (W.F.J. Mueller)
- added TA11 support
pdp18b_cpu.c:
- fixed incorrect value of PC on instruction fetch mem mmgt error
- fixed PDP-15 handling of mem mmgt traps (sets API 3)
- fixed PDP-15 handling of CAL API 4 (sets only if 0-3 inactive)
- fixed PDP-15 CAF to clear memory management mode register
- fixed boundary test in KT15/XVM (reported by Andrew Warkentin)
- added XVM RDCLK instruction
- added idle support and infinite loop detection
pdp18b_rf.c:
- fixed bug, DSCD does not clear function register
pdp18b_stddev.c:
- added PDP-15 program-selectable duplex handling instruction
- fixed PDP-15 handling of reader out-of-tape
- fixed handling of non-printable characters in KSR mode
- added XVM RDCLK instruction
- changed real-time clock to be free running
- synced keyboard poll to real-time clock
pdp18b_tt1.c
- fixed handling of non-printable characters in KSR mode
pdp18b_sys.c:
- added XVM RDCLK instruction
pdp8_cpu.c:
- fixed SC value after DVI overflow (Don North)
- added idle support and infinite loop detection
pdp8_ct.c:
- first release