NDWiki:Community Portal

From NDWiki
Revision as of 14:12, 25 February 2021 by TArntsen (Talk | contribs) (Datormuseum floppy images converted)

(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
 Descriptor:
   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).

PASCAL compiler

I am trying to make PASCAL running in my emulator and have extracted files from ND-10076J.image.gz using ndfs. The :BRF files seems to corrupted, NRL and BRF-EDITOR reports illegal BRF control bytes in all of them. BRF-EDITOR lists a number of entries but some of them looks a little bit strange to me. The problem may be caused by an error in my emulator, a bad floppy image, an error in reading the floppy or an error in ndfs. I have retrieved a number of different files from other images using ndfs. Most of them are OK, but I have problems with some of them. My first guess is that the problems relate to bad floppy images or the reading of the floppies. Does anybody have a possibility to e.g. check the PASCAL files, e.g. running BRF-EDITOR - LIST-ENTRIES in an emulator or even on a ND-xxx computer? CVS (talk) 11:50, 25 february 2021 (UTC).

The ND-10076J image appears to be corrupted, possibly due to being a copy made by an early version of FluxEngine, or other reasons. One definite clue is that the file PASCAL-ERR-J:SYMB, which is a text file, definitely is corrupted. The same file (same size) is also in ND-10187J, where it looks fine. And yes my Linux command line tool which I wrote to examine .brf files also doesn't like the content. TArntsen (talk) 11:17, 25 February 2021 (UTC)
Thank you! I have another question: How can I extract files from the images I find at www.datormuseum.se They seem to be in a format not usable by ndfs.

CVS (talk) 13:30, 25 february 2021 (UTC).

They are in IMD format, so you need to convert from IMD to RAW, which will work with ndfs. On Linux/Unix you may use https://github.com/ptor/imd2raw which can be used as follows:
cat DISK9.IMD | imd2raw > disk9.img
ndfs -t disk9.img
Directory name            : N-10-102-I
Filesystem image size     : 154 pages
Object file index pointer : 149 SI: 0x1 (indexed)
User file index pointer   : 151 SI: 0x1 (indexed)
Bit file pointer          : 153 SI: 0x0 (contiguous)
No. of unreserved pages   : 1
Files:
 0   0: A       20 pages     31916 bytes 1985-12-22 15:20:22 (SYSTEM)MACM-1718K:BPUN
 0   1: A      127 pages    190735 bytes 1985-12-22 15:20:29 (SYSTEM)SINTRAN-I:DATA
Directory size            : 149 pages
Bit file size             : 1 page

NB: Some of the images are in non-floppy formats, they may e.g. be in tape format. They can also be extracted from by another tool than ndfs, but there aren't that many of them. But if you need them it can probably be done. TArntsen (talk) 13:54, 25 February 2021 (UTC)

I converted all the floppy images at datormuseum to image format and made a tar file with the image files, the labels, and the PDF file which describes the content. It's 18MB compressed, but I don't have a place to put it. TArntsen (talk) 14:12, 25 February 2021 (UTC)