NDWiki:Community Portal

From NDWiki
Revision as of 07:29, 23 December 2019 by CVS (Talk | contribs) (Instruction test program)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

5-year anniversary! We celebrate with a 100 Mbit/s connection to the wiki!

I missed the anniversary with a month, gah! But now the server got a 100 Mbit/s fiber connection! Enjoy! /Mike (talk) 19:48, 18 November 2013 (UTC)

NDWiki moved to a new server

Due to unforeseen circumstances, NDWiki went offline sometime in 2015 (April?). Efforts were made by parties involved to get it back online again, but failed. A year later (April 2016), discussions on how to remedy the situation was started. As I had available time, I offered to set up a server to run to wiki on, and manage it. I only have a "normal" broadband connection at home, which means a dynamic IP address. This is not ideal for running a server, so I asked my local makerspace, Bitraf, if I could host the server there - they were willing and agreed. All this took a while, but in the middle of May 2016 I set up the server, installed the necessary software, restored the backup and started fixing stuff that didn't work (some templates, images not showing). Most of the problems were due to my lack of experience with configuring Mediawiki and the software it needs. Anyway, on May 24th, 2016 NDWiki was ready for use again. Enjoy! Torfinn (talk) 13:45, 29 May 2016 (UTC)

600 articles!

This wiki now has 600 articles (or pages if you like)! Torfinn (talk) 19:52, 23 August 2017 (UTC)

MON 15

I just joined NDWiki and would like to contribute. I have not found any doc on MON 15 which is used by NPL, MAC and QED. Years back I tried to find out what this monitor call wa doing. In my emulator I have this notes:

Old undocumented monitor call, used by NPL/MAC/QED in connection with old open file
  These programs invoke this monitor call using instruction code 161015 octal
  X points to data area to set up
  T is a pointer and is used as a parameter to set up the data structure
  D indicates the buffer length in bytes

Establish data structure to be used by MON 20 Then used by MON 42 to open file (old open)

Carl-Victor Sundling

Ref. the undocumented MON 15. I was trying to figure out the moncall myself some years ago. The last information I found was from (from my notes) 'the TSS manual', which must have been Norsk Data Document ND–60.039.01 REFERENCE MANUAL FOR THE NORD TIMESHARING SYSTEM
So it looks like it was a moncall in NORD-TSS (TimeSharing System) and may have been backwards supported in SINTRAN due to those old tools. If it is the same call. I suspect it is, although I'm not sure if the full functionality of the old one is there - if it only needs to work with NPL/MAC/QED then maybe it doesn't. See below for what I basically copied from the TSS manual. Thanks for bringing it up, it reminds me that we need to work on the documentation for monitor calls.
--TArntsen (talk) 07:50, 13 May 2019 (UTC)
SETUP - Generate a string descriptor
 X = address of string descriptor (5 word object)
 T = location of string
 AD = maximum size of string in bytes
   4 character pointers:
     beginning pointer
     end pointer
     reader pointer
     writer pointer
    A string is the characters between the reader and writer pointers.
    reader <= writer and both pointers must be within beg/end
SETUP seems to take T and A and write a descriptor to (X), with reader=writer=beg

Instruction test program

Does anyone have a :BPUN file of the instruction test program? I would like to have it to test my emulator. The idea is to replace the IOX instructions for terminal input/output with MON 1 and MON 2. I have tried to find a floppy image with the instruction test program (and use ndfs) to extract it, but without success so far.

Try this one: https://www.dropbox.com/s/6x2vw7cquaa3b7o/10523D01-XX-01D.image.gz It includes INSTRUCTION-B:BPUN. But note that this test program needs a nearly fully functioning emulation of 16 interrupt levels, ION/IOF instructions, etc. TArntsen (talk) 10:04, 19 May 2019 (UTC)
As said above, to test with that program, you have to emulate on cpu level, with interrupts, iox calls, cpu runlevels etc. Tingo has put nd100em on github I saw, so you can download that and try with. Btw, am back coding again on that and hopefully will have it booting from a virtual tapereader soonish. Skipping floppy for now until I have running real hw to compare with. Roger (talk) 10:37, 20 May 2019 (UTC)
I got my emulator booting from a (virtual) tapereader recently, however that's not much different from loading a BPUN - but if you're having issues just ask. Of course the tricky part is booting something that needs the full monthy of interrupts, rings, privileged instructions etc.. my emulator is still mostly good for just user level. As for test programs - have you figured out how the instruction-c is to be used? The :TEST and :NEXT file formats? TArntsen (talk) 10:50, 20 May 2019 (UTC)
Exactly, it should be very similar to just loading a BPUN, but it will allow that BPUN to pull in more stuff later if it wants if its register compatible. Anyway, the testdisk I use have all test programs as BPUNs, so I can use them by just loading them instead. If you have the TEST and NEXT file endings it's newer. I haven't tried those yet. Roger (talk) 15:19, 20 May 2019 (UTC)
My emulator is now running the TPE-MONITOR program (with two patches). TPE-MONITOR can load :TEST programs, but most of them requires I/O-handling, paging etc. I have patched the INSTRUCTION-C03:TEST program and can now run all tests without getting the "NOT EXECUTABLE UNDER SINTRAN" message. All tests of non-priveleged instructions like BIT, SHIFT, BYTE etc. work fine. I did, however, need to implement interrupt level changing since the test program runs on levels 1 to 9. The MOVEW instruction works as well with some "tricks" in the emulation code. This test seems to be using the paging system, which my emulator can not handle. Running the tests I found an error in the BCD instructions, an error in floating (the two last bits in the mantissa) and a fault in SUB (carry). Currently I believe there is an error in the stack instructions which I will look further into. It was worth the effort to do this work, but I think there are still errors in the emulation, the test program did not look very extensive.... CVS (talk) 07:29, 23 December 2019 (UTC).