open-simh / simh

The Open SIMH simulators package
https://opensimh.org/
Other
473 stars 89 forks source link

IBM 704 memory size initialized to 16Ki #325

Closed diyessi closed 6 months ago

diyessi commented 10 months ago

If you first

sim> set cpu 32k

and repeat the two instructions, you will correctly get 77777.

The problem is related to https://github.com/open-simh/simh/blob/2396fd03499af3d01cf637b3e04409dc25572d2f/I7000/i7090_cpu.c#L305 and goes away if you change the 4 to a 5 and get rid of the memory size halving in the next line, but I don't know what the implications of that would be on other processors.

BTW, 704s were only available in 4Ki, 8Ki and 32Ki according to the manual of operation on bitsavers.

IBM 704 simulator Open SIMH V4.1-0 Current Simulator Framework Capabilities: 64b data 32b addresses Threaded Ethernet Packet transports:PCAP:VDE:NAT:UDP Idle/Throttling support is available Virtual Hard Disk (VHD) support RAW disk and CD/DVD ROM support Asynchronous I/O support (Lock free asynchronous event queue) Asynchronous Clock support FrontPanel API Version 12 Host Platform: Compiler: GCC Apple LLVM 15.0.0 (clang-1500.0.40.1) Simulator Compiled as C arch: x64 (Debug Build) on Nov 26 2023 at 21:35:56 Build Tool: CMake (Ninja) Memory Access: Little Endian Memory Pointer Size: 64 bits Large File (>2GB) support SDL Video support: No Video Support PCRE RegEx (Version 8.45 2021-06-15) support for EXPECT commands OS clock resolution: 1ms Time taken by msleep(1): 1ms Ethernet packet info: libpcap version 1.10.1 OS: Darwin Cuyamaca.local 23.1.0 Darwin Kernel Version 23.1.0: Mon Oct 9 21:27:27 PDT 2023; root:xnu-10002.41.9~6/RELEASE_X86_64 x86_64 Processor Name: Intel(R) Core(TM) i7-8700B CPU @ 3.20GHz tar tool: bsdtar 3.5.3 - libarchive 3.5.3 zlib/1.2.12 liblzma/5.0.5 bz2lib/1.0.8 curl tool: curl 8.1.2 (x86_64-apple-darwin23.0) libcurl/8.1.2 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.12 nghttp2/1.55.1 git commit id: 2396fd03 git commit time: 2023-11-15 20:36:10-05:00

ninja

rcornwell commented 10 months ago

Will look into this. I have a bunch of patches for my I7000 simulators pending final checks that they are working correctly. I will check this one out as well.

diyessi commented 10 months ago

memmask is initialized to 077777 but cpu_reset sets it to MEMMASK which is initialized to 037777.

rcornwell commented 10 months ago

Thanks, was simple fix. In cpu_reset the memmask = MEMSIZE - 1; I will try and get fixes out today.