Commit graph

20 commits

Author SHA1 Message Date
Richard Cornwell
9b631bffc5 B5500: Updated u-variable to names, updated to handle new translations. 2019-01-13 22:39:27 -05:00
Richard Cornwell
b4d185f3af B5500: Second release of Burroughs B5500 simulator.
1) Minor cleanup of some instruction execution to better match
     flowcharts.
  2) Changes to allow proper reboot if OS crashed.
  3) Changes to terminal muliplexer to allow for simH expect/send
     to work.
  4) Some corrections to translation table.
  5) Support for new sim_card interface. This includes support for
     stacking of multiple decks on the input stream.
2018-08-05 22:43:59 -04:00
Mark Pizzolato
ed1a6f313e B5500: Move extern declarations to b5500_defs.h 2018-05-23 20:10:13 -07:00
Mark Pizzolato
6bfad051a8 I7000, B5500: Make sure card reader devices always perform read-only.file opens 2018-03-25 18:09:48 -07:00
Richard Cornwell
8494112ee4 B5500: Fixed so Idling will work on B5500. 2017-12-22 15:05:01 -05:00
Richard Cornwell
3f27200f88 B5500: Cleanup some coverity errors. 2017-12-02 21:04:44 -05:00
Richard Cornwell
485114cae3 B5500: Fixed Coverity bugs. 2017-03-14 20:50:09 -04:00
Richard Cornwell
5efbd203a3 B5500: Fixed Coverity errors, and fixed for current SCP. 2017-03-12 22:33:06 -04:00
Richard Cornwell
2503532d13 B5500: Added architecture description to head of b5500_cpu.c. 2017-01-30 20:55:16 -05:00
Richard Cornwell
057120e0b3 SIM_CARD: cleaned up handling of binary cards.
Handling of first character ~ to simulate End of File, now only
is treated as End of File if it appears on a line by itself.
2017-01-30 20:49:32 -05:00
Richard Cornwell
c717ee928f B5500: Added buffer size option to DTC.
Added buffer size option allowing buffers to be set at a multiple of
28 characters. This is to allow R/C to be run without modifications.
2016-05-24 20:36:22 -04:00
Richard Cornwell
0e1f84357c B5500: Changes to allow DCMCP to use DTC device.
Also changed how interrupts are generated. When a line changes state
and interrupt should be generated. Once this is read no further
notification should be posted. If no characters are written in a
record the DTC should transition to IDLE state.
2016-05-16 08:14:44 -07:00
Richard Cornwell
44f523a036 B5500: Fixed bug with Alpha mode reads
If the record ended as a multiple of 8 characters, an extra gm would be
addded and an extra word written.
2016-05-16 08:13:11 -07:00
Mark Pizzolato
03445f5f94 B5500: Promote sim_card to a top level simh library
Rich Cornwell's sim_card module is about to be used by another new simulator
so it is being promoted.
2016-05-15 18:01:38 -07:00
Mark Pizzolato
5531ccb175 ALL: Massive 'const' cleanup
These changes facilitate more robust parameter type checking and helps
to identify unexpected coding errors.

Most simulators can now also be compiled with a C++ compiler without
warnings.

Additionally, these changes have also been configured to facilitate easier
backporting of simulator and device simulation modules to run under the
simh v3.9+ SCP framework.
2016-05-15 15:25:33 -07:00
Richard Cornwell
d8aafde723 B5500: Fixed bugs in handling of ? and empty writes to DTC device.
This is to allow for DCMP to do remote job entry.
2016-04-29 08:22:33 -07:00
Richard Cornwell
f4300500e8 B5500: Added EBCDIC support to sim_card. 2016-04-29 08:22:04 -07:00
Richard Cornwell
b1d0eb3492 B5500: Added CPU Idle support, clean minor bugs.
b5500_cpu.c: Added idle support to cpu. Cleaned up some
        bugs introduced when cleaning up compiler warnings.
2016-02-08 17:09:29 -05:00
Richard Cornwell
c45878feb3 B5500: Added macros to detect buffer empty to remove compiler warnings.
b5500_mt.c: Changed checking of hwmark from -1 to 0xfffffff.
2016-02-08 17:08:06 -05:00
Richard Cornwell
0a33758e47 B5500: Initial checking of simulator for current simh
The B5500 simulator supports the following peripherals.

Two CPUs with between 4K and 32K of memory. The second CPU can be
enabled with "set cpu1 enable". "set cpu1 disable" disables the
second CPU.

Up to 4 floating IO channels. Individual channels can be enabled with
"set io# enable", or "set io# disable".

There are two card readers. The second reader is disabled by default.

There is one Card Punch.

The Card reader and Card Punch support the following options:
  set cr format=

     auto   - will automatically determine the format based on the
              text it recieves.
     text     Text based cards. Tabs are converted to the correct
              number of spaces. A record of
              ~raw octal will enter a binary card.
              ~eor will enter a 7/8/9 punch in column 1.
              ~eof will enter a 6/7/9 punch in column 1.
              ~eoi will enter a 6/7/8/9 punch in column 1.
              ~~ will enter a ~ as the first character.

     bin      Binary Card format:
              Each record 160 characters.
              First characters 6789----
              Second character 21012345
                               111
              Top 4 bits of second character are 0.
              It is unlikely that any other format could
              look like this.

     bcd      BCD Format:
              Each record variable length (80 chars or less).
              Record mark has bit 7 set.
              Bit 6 is even parity.
              Bits 5-0 are character.

    cbn       CBN Format:
              Each record 160 charaters.
              First char has bit 7 set. Rest set to 0.
              Bit 6 is odd parity.
              Bit 5-0 of first character are top 6 bits
                      of card.
              Bit 5-0 of second character are lower 6 bits
                      of card.

    For punch format of auto if the card can't be converted to text it is
    output as a raw record.

 There are two line printers, the second one is disabled by default. The LP
 supports the option "set lp# linesperpage=#" which determines when the
 printer will force out a page break.

 There are up to 16 mag tape drives, the format is controlled by the standard
 simh format control for tapes. These are 6 bit tapes, 1 character per record
 with parity. Units 8-16 are disabled by default.

 There are up to two drum units DR0 and DR1. These can either be attached
 to a file or set to AUXMEM. Setting to AUXMEM causes them to exist only
 during the given simh run. Setting back to DRUM will clear whatever was
 stored on the drum. To enable use of DRUM on XV the following options should
 be turned on "DRA,DRB,CODEOLAY,DATAOLAY". MCP will then use the drum as a
 overlay device instead of the disk system.

 Disks can be attached to the various ESU's, ESU0-9 are on DKA by default,
 ESU10-19 are on DKB. If "set dk1 dfx" is set, then ESU10-19 are not used and
 the disks are shared by both DKA and DKB. To use more then 10 ESU's in a non
 shared mode, a new version of MCP must be created. MCP must be compiled with
 DFX option set to false. For MCP XV DKBNODFX must also be set to true.  ESU units
 can be set to MODI or MODIB. MODIB will double the size of the drive.

 The DTC can be attached to a telnet port with "attach dtc #" to enable dialup
 access to the sim.

The loader card for the card reader is:
~raw0104441100204231524012004000004444550211002041317700000000000024045303040243
00050000006501004131011041310055005500000062005042310000006600304231000000720010
42310000007675610165001002310010413100040107202500440106202533554061256520252265
20251765202514655355536117650000004401062025155522610165225572610465044101160500
4131

  This card should be all in one line.
2016-02-06 15:51:04 -05:00