User:RHansen: Difference between revisions

From NDWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 33: Line 33:
[[File:Disk-choice-m.png|200px|thumb|right|Possible disk choices to install SIII M on]]
[[File:Disk-choice-m.png|200px|thumb|right|Possible disk choices to install SIII M on]]


I have tried booting SINTRAN K, L and M.  Dumping to HDD works great, but I haven't successfully managed to boot SINTRAN from HD with 22!  
I have tried booting SINTRAN K, L and M.  Dumping to HDD works great, but I haven't successfully managed to boot SINTRAN from HD with 22!  
If using DISK-75MB-1, I am actually able to make SINTRAN start. However it fails after a while, which I am now looking into.
If using DISK-75MB-1, I am actually able to make SINTRAN start. However it fails after a while with a




Line 42: Line 42:


== What's working in the emulator ==
== What's working in the emulator ==
* SINTRAN H boots and runs (with a minor hardcode in the emulator to fix ABSTR bug (?))
* Test programs that validates the opcodes so far
* Test programs that validates the opcodes so far
** ONE—CHECK, TWO—CHECK, THREE—CHECK
** ONE—CHECK, TWO—CHECK, THREE—CHECK
Line 50: Line 51:
** Test programs on floppy "210523E00-XX-01D"
** Test programs on floppy "210523E00-XX-01D"
*** INSTRUCTION - Version: C00 - 1986-10-30
*** INSTRUCTION - Version: C00 - 1986-10-30
**** "32 BITS FLOATING INSTRUCTIONS" - Success!
**** "48 BITS FLOATING INSTRUCTIONS" - not working as I am only emulating 32 bits FPU
**** "INTERNAL INTERRUPTS" Failing (dies) - Earlier I had a more descriptive fail (Expected IIC value:5, Found IIC value: 2), but I guess I fixed that bug and now something new has surfaced (or is after the IIC bug)
****  
***  PAGING - Version: C00 - 1986-10-16
***  PAGING - Version: C00 - 1986-10-16
**** All tests report success MMS-1 and MMS-2 mode.
**** All tests report success in MMS-1 and MMS-2 mode.
[[File:fpp32.png|200px|thumb|right|INSTRUCTIONS FPP test]]
[[File:fpp32.png|200px|thumb|right|INSTRUCTIONS FPP test]]


Line 59: Line 60:


== What's NOT working in the emulator ==
== What's NOT working in the emulator ==
* SINTRAN K,L and M doesnt boot fully to login prompt
* SINTRAN K,L and M doesn't boot fully yet..


* MON 131 ABSTR behaves "buggy" in SINTRAN H
* MON 131 ABSTR behaves "buggy" in SINTRAN H
** Because of "bugs" in ABSTR (or in floppy drivers) I am not able to enter-directory on FLOPPY-DISC-1 (both PIO and DMA floppy drivers)
** Something odd happens with zero-pointers for some logical devices sending the CPU into a loop at P=0
* Odd behaviour in CONFIGURATION on interrupt detection (see picture on the right)
* Odd behaviour in CONFIGURATION on interrupt detection (see picture on the right)
* Copying file from papertape driver to SINTRAN disk with "COPY 'FILE:BPUN' PT1' fails after 129 bytes. It just stops, and I have to cancel the copy with ESC key.
* Copying file from papertape driver to SINTRAN disk with "COPY 'FILE:BPUN' PT1' fails after 129 bytes. It just stops, and I have to cancel the copy with ESC key.
* Since I cannot "enter-directory floppy-disc-1", I am unable to run NEW-SYSTEM. I dont know how critical this is to get SINTRAN to work.


==I am looking for the following==
==I am looking for the following==
* Documentation on the ND-100 register ACTL (Active Level). It looks like it's 3 bits, and its not PIL.
* Documentation on the ND-100 register ACTL (Active Level). It looks like it's 3 bits, and its not PIL.
* Images of SINTRAN J floppies. The source code that has been scanned is SINTRAN J, but since I now have access to source code for version L this is less important now.
* Images of SINTRAN J floppies. The source code that has been scanned is SINTRAN J, but since I now have access to source code for version L this is less important now.
* Documentation on ST-506 Winchester, SMB 10 MHZ and SCSI HDD controllers.
* Information on what REALLY happens in the registes that are "locked" (Like IIC, PEA, PES)  Documentation says its "locked" when there is an error, and "unlocked" during an TRA IIC
* Information on what REALLY happens in the register IIC as documentation says its "locked" when there is an error, and "unlocked" during an TRA IIC
* Other binary images (Tape, PaperTape, HDD, Floppy,+++) All SINTRAN III versions are of interrest.
* Other binary images (Tape, PaperTape, HDD, Floppy,+++) All SINTRAN III versions are of interrest.
* ROM's with Microcode for ND-10, ND-100, ND-110
* ROM's with Microcode for ND-10, ND-100, ND-110
* Documentation on device and register usage for all peripherals, especially Ethernet
* Documentation on device and IOX register usage for all peripherals, especially Ethernet
* Access to a REAL ND-100/ND-110 to run som test programs to compare with my emulator.
* Access to a REAL ND-100/ND-110 to run som test programs to compare with my emulator.
* Source Code. Any source code. Especially test programs and IO drivers.
* Source Code. Any source code. Especially test programs and IO drivers.
Line 82: Line 81:
==Things I am working on==
==Things I am working on==
* After getting the source code for SINTRAN L, I am now focusing on getting version L to boot to login prompt.
* After getting the source code for SINTRAN L, I am now focusing on getting version L to boot to login prompt.
** Dumping to DISK-75MB-1 works great. Boot startes and runs 2.5 million instructions before it hangs.
** Currently stuck on a page-fault in a none-demand segment after SINTRAN starts the RT system. SINTRAN Segment Administration on Level 3 tries to give it a PageTable setting, but can't. It then restarts the process, and we have a never-ending loop.
** JMP 042314  = ESCER => Page Fault! PT=9 VPN=17 PTe=00000000 Accessmode=FETCH PGS=141121
* Getting the I/O devices to work flawlessly. Normal read/write works in my drivers, but test-programs are not working 100% as they are enabling "test mode" which I havent implemented (yet).
* Getting the I/O devices to work flawlessly. Normal read/write works in my drivers, but test-programs are not working 100% as they are enabling "test mode" which I havent implemented (yet).
* I am focusing on getting the ND-10/ND-100 opcodes working 100%. (I do believe that the ones that are implemented are "almost" bugfree)
* I am focusing on getting the ND-10/ND-100 opcodes working 100%. (I do believe that the ones that are implemented are "almost" bugfree)
* Implementing the missing opcodes  
* Implementing the missing opcodes  
** «Commercial Extended» (CE) option  
** «Commercial Extended» (CE) option (BCD)
** CX opcodes (Stack, Segment,)
** CX opcodes (Stack, Segment,)
** ND-110 Specific opcodes  
** ND-110 Specific opcodes  
* Focusing on getting SINTRAN H work 100% flawlessly (could be opcodes, but at the moment all my trouble is inside ''MON 131 ABSTR'')
* Focusing on getting SINTRAN H work 100% flawlessly (could be opcodes, but at the moment all my trouble is inside ''MON 131 ABSTR'')
* ND-110 MicroCode CPU
** Creating a new CPU emulator at the MicroCode level to teach me more about the internals of the opcodes, but also to (hopefully) help me identify "features" in my ND-100 Emulator
*** Everything is written in C#/.NET7
*** MicroCode compiler works
*** MicroCode retrieved from PDF document using OCR techniques mixed with some "text washing" gives me a file with 16600 lines of microcode I manually have validate against the PDF. I wish I had a ROM export or the original microcode in a file.
*** MicroCode CPU somewhat working. Decoding of macro-instructions to micro-instructions and dekoding of the 64 bit microcode partially working. Still a lot to implement, but before I can implement every detail I need to understand the ND-110 CPU HW better.
*** This CPU will definitively be slower than the ND-100 emulator, but hopefully behave 100% like the original. This way I can verify behavior differences between the ND-100 opcodes and the ND-110 opcodes.


==Open Source==
==Open Source==
* When I have a stable working version, I am planning to put the source code on GitHub under a BSD License. Then everyone can look at the code, modify it or just run it.
* When I have a stable working version, I am planning to put the source code on GitHub under a BSD License. Then everyone can look at the code, modify it or just run it.
* I have been playing with the idea on porting my C# code to C - when its stable. And integrate it in the SIMH projects [https://github.com/open-simh/simh]. For this I may need help :)
* I have been playing with the idea on porting my C# code to C - when its stable. And integrate it in the SIMH projects [https://github.com/open-simh/simh]. For this I may need help :)

Revision as of 11:53, 7 November 2022

Ronny
 
Real name: Ronny Hansen
Role: Developer, Architect, Geek
Interrested in: Everything between Embedded and Cloud
 

A long time a go, in another universe it seems, I was using SINTRAN on an ND-100 at our electronics/computer school. We configured and ran the machine after we inherited it.

These days I am a Cloud Architect, Developer and Geek - and the last years I have been spending an unhealthy amount of time writing emulators. You can read how this crazy journey started here [1]

I have successfully (with some help) created an ND-100 emulator in .NET/C# with peripherals such as TeleType, Floppy and HardDrive. (I have to admit I have borrowed some of the complex opcodes from the existing nd100em emulator )

The emulator contains a debugger, dissasembler and code tracer in addition to logic to mount different floppy-image, read/write hardddrive, loading BPUN and PROG files directly into memory.

I have successfully dumped and booted SINTRAN version H in ND-100 mode, although there are still some bugs to iron out.


Booting SINTRAN H in the emulator

Possible disk choices to install SIII M on

I have tried booting SINTRAN K, L and M. Dumping to HDD works great, but I haven't successfully managed to boot SINTRAN from HD with 22! If using DISK-75MB-1, I am actually able to make SINTRAN start. However it fails after a while with a


SIII M ERROR
Results from PAGING:TEST

What's working in the emulator

  • SINTRAN H boots and runs (with a minor hardcode in the emulator to fix ABSTR bug (?))
  • Test programs that validates the opcodes so far
    • ONE—CHECK, TWO—CHECK, THREE—CHECK
    • FOUR—CHECK (a few bugs still)
    • INSTRUCTION-B.BPUN (PROGRAM NUMBER: 204384B DATE ISSUED  : 83.11.01)
    • PAGING-B.BPUN (PROGRAM NUMBER: 203098B 1982)
    • FLOPPY-FU-1986F (All tests work except Test 2 "Format Decoder Test" on my PIO floppy driver)
    • Test programs on floppy "210523E00-XX-01D"
      • INSTRUCTION - Version: C00 - 1986-10-30
        • "48 BITS FLOATING INSTRUCTIONS" - not working as I am only emulating 32 bits FPU
      • PAGING - Version: C00 - 1986-10-16
        • All tests report success in MMS-1 and MMS-2 mode.
INSTRUCTIONS FPP test
CONFIGURATION test tool

What's NOT working in the emulator

  • SINTRAN K,L and M doesn't boot fully yet..
  • MON 131 ABSTR behaves "buggy" in SINTRAN H
    • Something odd happens with zero-pointers for some logical devices sending the CPU into a loop at P=0
  • Odd behaviour in CONFIGURATION on interrupt detection (see picture on the right)
  • Copying file from papertape driver to SINTRAN disk with "COPY 'FILE:BPUN' PT1' fails after 129 bytes. It just stops, and I have to cancel the copy with ESC key.

I am looking for the following

  • Documentation on the ND-100 register ACTL (Active Level). It looks like it's 3 bits, and its not PIL.
  • Images of SINTRAN J floppies. The source code that has been scanned is SINTRAN J, but since I now have access to source code for version L this is less important now.
  • Information on what REALLY happens in the registes that are "locked" (Like IIC, PEA, PES) Documentation says its "locked" when there is an error, and "unlocked" during an TRA IIC
  • Other binary images (Tape, PaperTape, HDD, Floppy,+++) All SINTRAN III versions are of interrest.
  • ROM's with Microcode for ND-10, ND-100, ND-110
  • Documentation on device and IOX register usage for all peripherals, especially Ethernet
  • Access to a REAL ND-100/ND-110 to run som test programs to compare with my emulator.
  • Source Code. Any source code. Especially test programs and IO drivers.
  • Documentation on Date/Time format/calculation for file/timestamps
  • Hard Disk boot sector information - currently I must boot from via "boot floppies" and I would like to be able to boot directly from the HDD.

Things I am working on

  • After getting the source code for SINTRAN L, I am now focusing on getting version L to boot to login prompt.
    • Dumping to DISK-75MB-1 works great. Boot startes and runs 2.5 million instructions before it hangs.
    • Currently stuck on a page-fault in a none-demand segment after SINTRAN starts the RT system. SINTRAN Segment Administration on Level 3 tries to give it a PageTable setting, but can't. It then restarts the process, and we have a never-ending loop.
    • JMP 042314 = ESCER => Page Fault! PT=9 VPN=17 PTe=00000000 Accessmode=FETCH PGS=141121
  • Getting the I/O devices to work flawlessly. Normal read/write works in my drivers, but test-programs are not working 100% as they are enabling "test mode" which I havent implemented (yet).
  • I am focusing on getting the ND-10/ND-100 opcodes working 100%. (I do believe that the ones that are implemented are "almost" bugfree)
  • Implementing the missing opcodes
    • «Commercial Extended» (CE) option (BCD)
    • CX opcodes (Stack, Segment,)
    • ND-110 Specific opcodes
  • Focusing on getting SINTRAN H work 100% flawlessly (could be opcodes, but at the moment all my trouble is inside MON 131 ABSTR)
  • ND-110 MicroCode CPU
    • Creating a new CPU emulator at the MicroCode level to teach me more about the internals of the opcodes, but also to (hopefully) help me identify "features" in my ND-100 Emulator
      • Everything is written in C#/.NET7
      • MicroCode compiler works
      • MicroCode retrieved from PDF document using OCR techniques mixed with some "text washing" gives me a file with 16600 lines of microcode I manually have validate against the PDF. I wish I had a ROM export or the original microcode in a file.
      • MicroCode CPU somewhat working. Decoding of macro-instructions to micro-instructions and dekoding of the 64 bit microcode partially working. Still a lot to implement, but before I can implement every detail I need to understand the ND-110 CPU HW better.
      • This CPU will definitively be slower than the ND-100 emulator, but hopefully behave 100% like the original. This way I can verify behavior differences between the ND-100 opcodes and the ND-110 opcodes.

Open Source

  • When I have a stable working version, I am planning to put the source code on GitHub under a BSD License. Then everyone can look at the code, modify it or just run it.
  • I have been playing with the idea on porting my C# code to C - when its stable. And integrate it in the SIMH projects [2]. For this I may need help :)