User talk:RHansen: Difference between revisions
(The next bailout) |
No edit summary |
||
Line 80: | Line 80: | ||
: [[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) | :: 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) | ||
Thanks for helping ! | |||
I have a debugger that supports breakpoint on memory execution, read and write. I can single step, and I can trace :) | |||
Here is the 50 instructions from the breakpoint at 035500, I will try to add some more meaning to it with traced values | |||
* 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 | |||
035507 174000 BSET ZRO SSPTM | |||
035510 044076 LDA *76 | |||
035511 135073 JPL I *73 | |||
035512 174200 BSET ONE SSPTM | |||
035513 125074 JMP I *74 | |||
035514 050077 LDT *77 | |||
035515 054077 LDX *77 | |||
035516 173401 AAX 1 | |||
035517 143300 LDATX 0 | |||
035520 004103 STA *103 | |||
035521 060073 ADD *73 | |||
035522 004074 STA *74 | |||
035523 173401 AAX 1 | |||
035524 143300 LDATX 0 | |||
035525 060071 ADD *71 | |||
035526 004073 STA *73 | |||
035527 173401 AAX 1 | |||
035530 143300 LDATX 0 | |||
035531 154402 SHA 2 | |||
035532 060064 ADD *64 | |||
035533 004067 STA *67 | |||
035534 173401 AAX 1 | |||
035535 143300 LDATX 0 | |||
035536 060060 ADD *60 | |||
035537 064064 SUB *64 | |||
035540 146154 COPY SA DL | |||
035541 064061 SUB *61 | |||
035542 004061 STA *61 | |||
035543 173401 AAX 1 | |||
035544 143300 LDATX 0 | |||
035545 146045 RADD SL DA | |||
035546 004056 STA *56 | |||
035547 173773 AAX -5 | |||
035550 054046 LDX *46 | |||
035551 173500 AAX 100 | |||
035552 143300 LDATX 0 | |||
035553 004045 STA *45 | |||
035554 142015 SKP IF DA UEQ SD | |||
035555 124021 JMP *21 | |||
035556 174000 BSET ZRO SSPTM | |||
035557 175375 BSKP ONE 170 DA | |||
035560 124006 JMP *6 | |||
035561 175171 BSKP ZRO 170 DD | |||
035562 124004 JMP *4 | |||
035563 044025 LDA *25 | |||
035564 135020 JPL I *20 | |||
035565 135024 JPL I *24 | |||
035566 175175 BSKP ZRO 170 DA | |||
035567 124006 JMP *6 | |||
035570 175371 BSKP ONE 170 DD | |||
035571 124004 JMP *4 | |||
035572 044016 LDA *16 | |||
035573 135011 JPL I *11 | |||
: [[User:RHansen|RHansen]] ([[User talk:RHansen|talk]]) 16:30, 7 October 2022 (UTC) |
Revision as of 14:30, 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)
- 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)
Thanks for helping !
I have a debugger that supports breakpoint on memory execution, read and write. I can single step, and I can trace :)
Here is the 50 instructions from the breakpoint at 035500, I will try to add some more meaning to it with traced values
* 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 035507 174000 BSET ZRO SSPTM 035510 044076 LDA *76 035511 135073 JPL I *73 035512 174200 BSET ONE SSPTM 035513 125074 JMP I *74 035514 050077 LDT *77 035515 054077 LDX *77 035516 173401 AAX 1 035517 143300 LDATX 0 035520 004103 STA *103 035521 060073 ADD *73 035522 004074 STA *74 035523 173401 AAX 1 035524 143300 LDATX 0 035525 060071 ADD *71 035526 004073 STA *73 035527 173401 AAX 1 035530 143300 LDATX 0 035531 154402 SHA 2 035532 060064 ADD *64 035533 004067 STA *67 035534 173401 AAX 1 035535 143300 LDATX 0 035536 060060 ADD *60 035537 064064 SUB *64 035540 146154 COPY SA DL 035541 064061 SUB *61 035542 004061 STA *61 035543 173401 AAX 1 035544 143300 LDATX 0 035545 146045 RADD SL DA 035546 004056 STA *56 035547 173773 AAX -5 035550 054046 LDX *46 035551 173500 AAX 100 035552 143300 LDATX 0 035553 004045 STA *45 035554 142015 SKP IF DA UEQ SD 035555 124021 JMP *21 035556 174000 BSET ZRO SSPTM 035557 175375 BSKP ONE 170 DA 035560 124006 JMP *6 035561 175171 BSKP ZRO 170 DD 035562 124004 JMP *4 035563 044025 LDA *25 035564 135020 JPL I *20 035565 135024 JPL I *24 035566 175175 BSKP ZRO 170 DA 035567 124006 JMP *6 035570 175371 BSKP ONE 170 DD 035571 124004 JMP *4 035572 044016 LDA *16 035573 135011 JPL I *11