1
0
mirror of synced 2026-01-11 23:42:44 +00:00

88 Commits

Author SHA1 Message Date
andrastantos
d2196023aa
Update unicos_install.md 2025-04-09 09:55:58 -07:00
Andras Tantos
c4afce2866 Changed defaults.
Now unknown or unimplemented instructions won't throw by default.
2025-02-17 22:49:23 +00:00
Andras Tantos
2ac3afbaad Morphed undocumented behavior asserts into things that can be silenced.
Some instruction encoding combinations are not documented
in the Cray manuals. These were asserted upon previously.
This causes crashes if those instructions are encountered.
Obviously not ideal for "production" code. The new behavior
replaces these by the exceptions that can be supressed.
2025-02-17 22:30:44 +00:00
Andras Tantos
21b5680ba8 Added support for more flexible console URL linking. 2025-02-13 22:35:31 +00:00
Andras Tantos
7bc3cca110 Hopefully fixed console hang (again). 2025-02-13 22:27:42 +00:00
Andras Tantos
87192f2a6c Disabled "error on all warnings" as it's a constant maintenance headache. 2025-02-13 22:27:10 +00:00
andrastantos
447e1ccf66
Merge pull request #16 from trholding/master
Build Fix: boost 1.87+ / Automation support / Custom Disks
2025-02-13 10:00:27 -08:00
Vulcan
ba161a948d build_exp_disk_swd bash fix
When tested, new build_exp_disk_swd features require bash to work on ubuntu. This is a fix.
2025-02-13 20:49:29 +05:30
Vulcan
9214fbe83d run_tmux bash fix
When tested, new run_tmux features require bash to work on ubuntu. This is a fix.
2025-02-13 20:35:07 +05:30
Vulcan
a09e08c69f Build fix: support boost 1.87+
The cray simulator would  not start after a system wide boost update. Re-building also failed as the code relied on stuff that has been depreciated in boost 1.87. This commit provides a fix.
2025-02-13 19:55:31 +05:30
Vulcan
64b0836a79 Update run_tmux / Add automation
Fixes:
- Fixed unstable tmux hooks

Additions:
- Automation to install and boot COS
- Automation to create custom disks with specified file
- Automation to load file from custom disk and execute it
- Updated menu and options in interactive mode

```
Usage: ./run_tmux {start|stop|restart|kill|attach|status}

  start    - Start cray simulator session
  stop     - Stop cray simulator session
  restart  - Restart cray simulator session
  kill     - Kill cray simulator session (unsafe)
  attach   - Attach to cray simulator session
  status   - List running cray simulator and consoles

Advanced Usage:

    ./run_tmux cos_install       - Automated COS installation (Do only once)
    ./run_tmux cos_boot          - Automated COS boot (Do only after installation)
    ./run_tmux cos_shell         - Automated log on to COS interactive shell (Do only after boot)
    ./run_tmux cos_boot_shell    - Automated COS boot and log on to interactive shell

Advanced CLI Usage:

    ./run_tmux cos_exec     <binary>  - Execute a COS binary (do only after interactive shell logon)
    ./run_tmux cos_gen_disk <binary>  - Create a COS extender disk with specified binary
    ./run_tmux cos_run_disk <binary>  - Same as above and execute it (do only after interactive shell logon)

```
2025-02-13 18:57:58 +05:30
Vulcan
64041b954e Add file to disk tool
Generate COS disk which includes specified file

Usage: ./build_exp_disk_swd <filename>

Note:
- File will be included as all caps with no extension
2025-02-13 18:50:09 +05:30
andrastantos
11a1488019
Merge pull request #14 from trholding/master
Fix error in run. Add tmux and alternate terminal support.
2025-02-05 10:51:49 -08:00
Andras Tantos
0f35c81237 Added patches to toolchain. 2025-02-04 13:18:17 -08:00
Vulcan
e8427289d2 Add alternate terminal support for Linux
**Alternate Terminal Support for Linux**

The `run` script with `cos_117.cfg` spawns xterms for consoles, but users may prefer other terminals such as konsole, gnome-terminal or even cool-retro-term.

To resolve, this commit adds alternate terminal support via:

+ gen_term_run_cfg - Generates run script and config combo for any alternate terminal.

Benefits:

- Consoles will launch in the user's desired terminal when the generated script is executed.

Usage:

```
gen_term_run_cfg <terminal-name>
```

Full Usage:
```
Generate run script and configuration for cray_sim
to launch consoles in alternate terminals instead of
xterm.

Usage: ./gen_term_run_cfg <terminal-name>

  Example    - ./gen_term_run_cfg cool-retro-term

```

Tests:

- The script was checked in shellcheck with no issues detected.
- Tested on Ubuntu 22.04.3 LTS (aarch64)
- Tested on Arch Linux (x86_64)
2025-02-04 01:41:48 +05:30
Vulcan
82b684e376 tmux support for Linux
**tmux Support for Linux**

The `run` script with `cos_117.cfg` spawns xterms for consoles, which works well on desktops but not on VPS/servers without X forwarding or for users preferring SSH/shell/mosh.

To resolve, this commit adds tmux support via:

+ run_tmux - Script that manages a cray simulator session.
+ cos_117_tmux.cfg - Modified config that spawns tmux windows instead of xterms.

Benefits:

- Organizes cray simulator and consoles as tmux windows in a tmux session.
- Allows attaching, detaching, and exiting without stopping the simulator.
- Console windows can be scripted to pass input / output for development.

Usage:

```
run_tmux start
run_tmux attach
or execute `run_tmux` and select from menu.
```

Full Usage:
```
Usage: run_tmux {start|stop|restart|kill|attach|status}

start - Start the Cray simulator session
stop - Stop the Cray simulator session
restart - Restart the Cray simulator session
kill - Kill the Cray simulator session (unsafe)
attach - Attach to the Cray simulator session
status - List running Cray simulator and consoles

Use keys 'Ctrl b <0 to ...>' to move to specific windows
Use keys 'Ctrl b n' to move to the next window
Use keys 'Ctrl b p' to move to the previous window
Use keys 'Ctrl b d' to detach from the simulator session.
```

Tests:

- The script was checked in shellcheck with minimal issues detected.
- Tested on Ubuntu 22.04.3 LTS (aarch64)
- Tested on Arch Linux (x86_64)
2025-02-04 01:28:14 +05:30
Vulcan
547be8ca89 Update run
Use mkdir -p to resolve the following errors:

```

mkdir: cannot create directory ‘dump’: File exists
mkdir: cannot create directory ‘disk’: File exists
mkdir: cannot create directory ‘tape’: File exists

```
2025-02-04 01:08:37 +05:30
Vulcan
cc3ee9f07c
Add experimental tmux support (Linux)
**Experimental tmux Support for Linux**

The `run` script with `cos_117.cfg` spawns xterms for consoles, which works well on desktops but not on VPS/servers without X forwarding or for users preferring SSH/shell/mosh.

To resolve, this commit adds tmux support via:

+ tmux_run                   - Script that manages a cray simulator session.
+ cos_117_tmux.cfg    - Modified config that spawns tmux windows instead of xterms.

Benefits:

- Organizes cray simulator and consoles as tmux windows in a tmux session.
- Allows attaching, detaching, and exiting without stopping the simulator.

Usage:

```
tmux_run start
tmux_run attach
or execute `tmux_run` and select from menu. 
```

Full Usage:
```
Usage: tmux_run {start|stop|restart|kill|attach|status}

  start    - Start the Cray simulator session
  stop     - Stop the Cray simulator session
  restart  - Restart the Cray simulator session
  kill     - Kill the Cray simulator session (unsafe)
  attach   - Attach to the Cray simulator session
  status   - List running Cray simulator and consoles

Use keys 'Ctrl b <0 to ...>' to move to specific windows
Use keys 'Ctrl b n' to move to the next window
Use keys 'Ctrl b p' to move to the previous window
Use keys 'Ctrl b d' to detach from the simulator session.
```

Tests:

All options work as intended, except repeated starts/stops may cause race conditions, requiring the `kill` option.

The script passed shellcheck with no issues detected.
2025-02-03 02:05:39 +05:30
andrastantos
7d0131d74c
Merge pull request #12 from trholding/master
Support Full Dynamic Linking (Linux)
2025-01-31 15:06:18 -08:00
Andras Tantos
7931ea4343 Calling sub-command registration during initialization of IOP clusters. 2025-01-31 12:04:14 -08:00
Vulcan
dc7deefc00
Add dynamic linking support
The original static linking works on distributions like Ubuntu that provide static libraries, but it would fail on some distributions like Arch Linux that primarily provide dynamic libraries.

This commit adds dynamic linking support to accommodate these distributions.

Usage:

```
make LINK_TYPE=dynamic build
```
2025-01-31 12:46:06 +05:30
Vulcan
ebba0c1900
Add Dynamic Linking Info 2025-01-31 12:35:59 +05:30
Andras Tantos
597127ed80 Removed stripe-1 from available drive set.
This is to work around some data
corruption issues on that drive.
The root cause of said corruption
is still unknown.
2024-12-23 11:54:32 -08:00
andrastantos
e7b5ab587b
Merge pull request #10 from trholding/master
Add missing boost/array header to console.h
2024-12-09 15:28:04 -08:00
Vulcan
5cefb36eee
include missing boost array header to console.h
Fixes build error:

```
g++  -std=c++14 -c -ffunction-sections -fdata-sections -g -Wall -Wno-unused-local-typedefs -Wno-reorder -fno-strict-aliasing -Wno-unused-variable -Wno-unused-result -Wno-psabi -Werror -gdwarf-2 -O3 -I. -I../sim_lib -I../httpd  -DCRAY_HOST_SYSTEM=linux -D_FILE_OFFSET_BITS=64 cray_channels.cpp -c -g -o ../_obj/linux_release/cray_channels.o
In file included from sim_iop_con.h:22,
                 from sim_iop.h:24,
                 from cray_mainframe.h:18,
                 from cray_channels.cpp:8:
console.h:106:31: error: field ‘mReceiveBuf’ has incomplete type ‘boost::array<char, 1>’
  106 |         boost::array<char, 1> mReceiveBuf;
      |                               ^~~~~~~~~~~
In file included from /usr/include/boost/lexical_cast/detail/converter_lexical.hpp:52,
                 from /usr/include/boost/lexical_cast/try_lexical_convert.hpp:32,
                 from /usr/include/boost/lexical_cast.hpp:33,
                 from /usr/include/boost/date_time/format_date_parser.hpp:14,
                 from /usr/include/boost/date_time/date_generator_parser.hpp:20,
                 from /usr/include/boost/date_time/date_facet.hpp:25,
                 from /usr/include/boost/date_time/gregorian/gregorian_io.hpp:16,
                 from /usr/include/boost/date_time/gregorian/gregorian.hpp:31,
                 from /usr/include/boost/date_time/posix_time/time_formatters.hpp:12,
                 from /usr/include/boost/date_time/posix_time/posix_time.hpp:24,
                 from /usr/include/boost/date_time/local_time/local_time.hpp:11,
                 from /usr/include/boost/date_time.hpp:15,
                 from logger.h:17,
                 from cray_logger.h:5,
                 from cray_channels.h:18,
                 from cray_channels.cpp:7:
/usr/include/boost/lexical_cast/detail/converter_lexical_streams.hpp:88:11: note: declaration of ‘class boost::array<char, 1>’
   88 |     class array;
      |           ^~~~~
make[1]: *** [../engine.mak:217: ../_obj/linux_release/cray_channels.o] Error 1
```
2024-12-06 16:09:57 +05:30
Andras Tantos
e8751fb2b6 Removed assert for monitor mode-only instructions.
These instructions should simply do nothing if attempted
in user mode. Now they should.
2024-11-30 20:04:14 -08:00
Andras Tantos
f183ef4f43 A few goodies and a typo fix. No change in functionality. 2024-04-26 16:45:29 -07:00
Andras Tantos
8b4a0a29e2 C example uses the MSG facility now to report in interactive mode. 2024-04-26 11:52:15 -07:00
Andras Tantos
adb4b05940 Added copyright attribution 2024-04-25 15:59:51 -07:00
Andras Tantos
1b1ebb30b8 Cleaned up C example. 2024-04-25 15:31:29 -07:00
Andras Tantos
7c59c4bd02 Added ASM and C examples. 2024-04-25 14:45:46 -07:00
Andras Tantos
958bac1858 Fixed typo in comment 2024-04-25 14:45:15 -07:00
Andras Tantos
d7174460c6 Introduced settings to disable unknown and unimplemented instruction asserts. 2024-04-04 08:31:06 -07:00
Andras Tantos
0c0d8a53f9 Merge branch 'master' of github.com:andrastantos/cray-sim 2023-01-31 16:46:36 -08:00
Andras Tantos
fae57fcf12 Fixes for mingw and cygwin builds. 2023-01-31 16:46:20 -08:00
Andras Tantos
3cec95203b Some more ignores. 2023-01-30 14:59:26 -08:00
Andras Tantos
7d0c73ea47 Fixing 'install' to work with CD from Archives.org 2023-01-30 14:59:11 -08:00
Andras Tantos
f323876d02 More files to ignore 2023-01-29 11:12:49 -08:00
Andras Tantos
dc11ecf6a5 Followed up with latest changes on Windows:
- Updated to boost 1.82
- Fixed TAP driver enumeration change
- Added .bat files to start simulator
- Updated to platform tolset v143
- Removed NuGET boost dependency
- Added gitignore to hide most stuff that we don't want to track
- Removed profile from putty command line
- Changed TAP driver name to what is the default with OpenVPN install
2023-01-29 11:11:22 -08:00
andrastantos
ac26629e29
Merge pull request #4 from davide125/map
Add missing include
2022-07-07 16:22:52 -07:00
Davide Cavalca
ae5b4f7af6 Add missing include 2022-07-05 21:37:06 -07:00
andrastantos
bca82a2542
Merge pull request #3 from kej715/master
Expand implementation of FEI protocol and make it interoperable with DtCyber, the CDC mainframe simulator
2022-06-16 09:34:51 -07:00
Kevin Jordan
b4a44d5029
Merge branch 'andrastantos:master' into master 2022-06-13 19:35:03 -04:00
andrastantos
f89873349c
Merge pull request #2 from jrrk2/maybe-uninitialized
Suggest fix for maybe-uninitialized problem
2021-12-29 07:59:13 -08:00
Jonathan Kimmitt
d4b502be9f Suggest fix for =maybe-uninitialized problem 2021-12-29 11:58:19 +00:00
Kevin Jordan
ff5d24af3a Implement front end data communication protocol, in compliance with
"COS FRONT-END PROTOCOL INTERNAL REFERENCE MANUAL SM-0042", and make it
compatible with the implementation in DtCyber, the CDC Cyber 6000 series
emulator.
2021-11-27 17:25:04 -05:00
Andras Tantos
52c9639808 Merge branch 'master' of https://github.com/andrastantos/cray-sim 2021-08-22 09:38:12 -07:00
andrastantos
0e7e835e0d
Merge pull request #1 from davide125/stream
Fix scope for streampos and streamoff
2021-08-22 09:36:13 -07:00
Andras Tantos
00e544f8dc Merge branch 'master' of https://github.com/andrastantos/cray-sim 2021-08-22 09:32:12 -07:00
Andras Tantos
59e8935a90 Some small fixes to the console code. Mostly about correctness... 2021-08-22 09:31:42 -07:00