User talk:RHansen: Difference between revisions

From NDWiki
Jump to navigation Jump to search
No edit summary
(The next bailout)
Line 79: Line 79:
  034100    151000                      WAIT 0
  034100    151000                      WAIT 0
: [[User:RHansen|RHansen]] ([[User talk:RHansen|talk]]) 12:46, 7 October 2022 (UTC)
: [[User:RHansen|RHansen]] ([[User talk:RHansen|talk]]) 12:46, 7 October 2022 (UTC)
:: There's a test after that which may bail out without any message, but I would have to trace that to see exactly what's supposed to happen and my emulator isn't up to that. Can you single-step your emulator at that point? There's approx. 50 instructions to trace (after the above) [[User:TArntsen|TArntsen]] ([[User talk:TArntsen|talk]]) 14:08, 7 October 2022 (UTC)

Revision as of 14:08, 7 October 2022

Hi fellow emulator writer! My own emulator is more similar to Carl-Victor's, I emulate SINTRAN but can't boot it. As for the K version it doesn't need a 110 CPU, but if it's /VSX it needs a 100/CX, i.e. the extra CX instructions must be there. K came in both VSE (no CX needed) and VSX (CX needed). From version L and later only CX versions would work - I think even version M would run on a plain 100/CX. As for the disk for M, as with all SINTRAN images they were generated for a specific configuration, and the version I have, at least, was generated for a setup with SCSI disks only. TArntsen (talk) 08:53, 5 October 2022 (UTC)
(EDIT: I checked my M version and it does seem to have the disk type choices (in addition to SCSI) shown in that disk-choice picture) TArntsen (talk) 11:45, 5 October 2022 (UTC)

Hello, it's great to have other emulator writers to discuss with and learn from!
In regards to the CX instructions, if I am not wrong its these: ADDD,SUBD,COMD, PACK, UPACK, SHDE. Those I have not yet finished implemented, but I have enforced a breakpoint in the code if they get called - and so far they havent. 
It might be the fact that I havent been able to get very far in the boot sequence of SIII K or M. They will be implemented ASAP I have some code calling them, right now I am focusing on getting boot to work.
The M disk's I have is actually disks I have found here [1]. Its SINTRAN M Std C. I dont know what the requirements are, as I dont have access to the "SINTRAN III M-version Release Information", the closest I have is "ND-860230-6-EN Sintran III - Release Information - 
L-Version" - which does mention type A and B, but nothing about C. When booting, I do have a choice of disks, ref this screenshot [2]. I have now started the implementation of the SCSI driver to see if it will solve the boot error, but I would think that it should be 
able to boot from SMD disks as they are valid choides...
Where can I find a copy of the SINTRAN M you are using ? RHansen (talk) 13:58, 5 October 2022 (UTC)
The instructions you listed are the decimal instructions from the CE set, there are also stack handling instructions, and the CX instructions are those plus some more (see ND-1xx_Instructions. But in addition to that you'll need to implement a dummy GECO instruction because SINTRAN uses that to detect if the CE (in practice it's the CX) instruction set is present.. if not, it won't even bother. As for SINTRAN M, Tingo's floppy set which you are using seems to be version 250306M06, what I have is 250305M05, which would be slightly older. I can't recall if I uploaded those somewhere, or if Tingo got a copy, but if you want them I can upload them somewhere. The M release info should be here: [3] TArntsen (talk) 13:13, 5 October 2022 (UTC)
BTW I suspect that those decimal instructions you listed aren't used by SINTRAN/VSX, only by user programs. The stack handling instructions I'm not sure about. But it'll likely need MOVEW, TSET, RDUS, and the segment changing instructions. TArntsen (talk)


Thanks, I have downloaded the documentation - and it seems that SIII M supports ND-100 and SMD DISK. It states:
ND-100 CPU, one of
  ND-100/CX  with 32/48 FPP and Memory Management II 
If SMD disk controller (10MHZ) is to be used, the following applies:
  SMD Control (print 3018). ECO Level R is required
  SMD Data (print 3019). ECO level BE is required.
I have implemented Memory Management II, and a buggy 32 bit FPP (which I need to improve). I also need to work on the missing CX instructions, but so far they havent been called - maybe except MOVEW which I have implemented. GECO/GECOX is there after I found it in the 110 microcode - It does nothing, except being callable.
And the SMD disk controller should work - i need to identify what the specifics with ECO level means. I definitively will spend more time making sure the implementation is passing TPE-MON validation with DISC-TEMA.
I would love to have a copy of your SIII M disks. And if you have other boot floppies for J or L or K that is not uploaded somwehere else, i would be happy to test a bit with those. RHansen (talk)

SINTRAN III and hardware configuration

As far as I know, each set of install floppies was created for a specific customer machine in the early days. This didn't change until whatever version of SINTRAN III that included the CONFIGURATION-S3 program came. If this hardware configuration also included locking it down to only the serial number of the machine in question, I do not know.

Oh - congrats on the nice progress with your emulator! Torfinn (talk) 01:40, 6 October 2022 (UTC)

Micro-code not loaded

Just did a quick dig at this. If this were Sintran L then it would mean that the micro code level reported by your CPU is too low. The code executed looks like this:

171500 SAX 100
150017 TRA CS
004115 STA * 115
146151 COPY SA DD
171013 SAT 13
143465 SKP IF DA MLST ST
124006 JMP * 6
174000 BSET ZRO SSPTM
044076 LDA * 76
135073 JPL I * 73
174200 BSET ONE SSPTM
125074 JMP I * 74

which is (pseudo-code):

set X = 0100
read control store
copy A to variable (A=micro code version. hold it somewhere where other code can get it)
copy A to D
if A < 13
 set 1bank
 call output with string "Micro-code not loaded. CPU revision too low" (that 'LDA *76' loads a pointer to the string)
 set 2bank
 bail out
endif

However, I haven't been able to find the same code or something similar in Sintran M yet, even though I can find the same string. TArntsen (talk) 09:02, 7 October 2022 (UTC)

SINTRAN M

035500     171500                      SAX 100
035501     150017                      TRA CS
035502     004115                      STA *115
035503     146151                      COPY SA DD
035504     171013                      SAT 13
035505     143465                      SKP IF DA MLST ST
035506     124006                      JMP *6  => [EA:035514]
035507     174000                      BSET ZRO SSPTM
035510     044076                      LDA *76
035511     135073                      JPL I *73
035512     174200                      BSET ONE SSPTM
035513     125074                      JMP I *74

Tried with returning 14d/16oct, ended up in Opcom with no message

034100     151000                      WAIT 0
RHansen (talk) 12:46, 7 October 2022 (UTC)
There's a test after that which may bail out without any message, but I would have to trace that to see exactly what's supposed to happen and my emulator isn't up to that. Can you single-step your emulator at that point? There's approx. 50 instructions to trace (after the above) TArntsen (talk) 14:08, 7 October 2022 (UTC)