User:RHansen
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.
I have tried booting SINTRAN K and M. Requires ND-110 it seems. Dumping to HDD works great, but I haven't successfully managed to boot SINTRAN from HD with 22! Both ends up in ERRFATAL, K does it very quiet - while M actually dumps something on the console:
System malfunction: Sintran halt in ERRFATAL. L-reg: 042471 Current page index tables (NPIT/APIT): 000000 / 0000000 Level: 000020
> After consulting "SINTRAN III/VSX Fatal Error Routine Addresses ND-820059EN2" it turns out its actually "Wrong disk type. Error returned from disk driver". I am suspecting that SIII M is wanting something else than my DISC-38MB-1 (SMD-15MHZ). Or I have a bug in the driver.. It does stop after just ~100 opcodes.
What's working in the emulator
- 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
- "32 BITS FLOATING INSTRUCTIONS" - Failing on (NLZ, FMU,FDV, FAD,FSB)
- "INTERNAL INTERRUPTS" Failing (dies) - Earlier I had a more descriptive fail, but I guess I fixed that bug (Expected IIC value:5, Found IIC value: 2)
- PAGING - Version: C00 - 1986-10-16
- All tests report success MMS-1 and MMS-2 mode.
- INSTRUCTION - Version: C00 - 1986-10-30
What's NOT working in the emulator
- SINTRAN K and M doesnt boot
- 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)
- 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.
- 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
- Images of SINTRAN J floppies. The source code that has been scanned is SINTRAN J - And it would help immensely in debugging the emulator if I could boot and debug version J.
- Documentation on ST-506 Winchester, SMB 10 MHZ and SCSI HDD controllers.
- Documentation on the ND-100 register ACTL (Active Level). It looks like it's 3 bits, and its not PIL.
- 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.
- ROM's with Microcode for ND-10, ND-100, ND-110
- Documentation on device and 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.
- A better understanding on what SIII really does during boot. Is the (few) boot floppies that are found on the internet bound to some specific HW configuration ?
Things I am working on
- Getting the I/O devices to work flawlessly. I especially want to finish all details in the HDD driver (and emulating different disk sizes and versions of the controller hw)
- 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
- Floating point 48 bits (doing 32 bits "buggy" now)
- «Commercial Extended» (CE) option
- ND-110 Specific opcodes (Stack, Segment,)
- Focusing on getting SINTRAN H work 100% flawlessly (could be opcodes, but at the moment all my trouble is inside MON 131 ABSTR)
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.