![]() |
![]() |
![]() |
|
Vintage Computers Any vintage computer systems, calculators, video games etc., but with an emphasis on 1980s and earlier equipment. |
![]() |
|
Thread Tools |
![]() |
#1 |
Pentode
Join Date: Jan 2021
Location: Northampton, Northamptonshire, UK
Posts: 109
|
![]()
There was a thread last year 'Source code for NIBL recovered' which gave a link to the source files for NIBL http://www.moria.de/tech/scmp/software/. This page suggests that the source for NIBL-E is in the download but it only seems to have original NIBL in it ?
I was trying to find the source code to see how to run it ?, what is the entry address for NIBL-E ? |
![]() |
![]() |
![]() |
#2 |
Pentode
Join Date: Jan 2021
Location: Ashford, Kent, UK
Posts: 249
|
![]()
The file nibl.tar.gz does include a nible.asm (in the nibl folder) and a quick look shows the program area is in a different place to the original (0x1000 instead of 0x0000). Is that the one you need?
|
![]() |
![]() |
![]() |
#3 |
Heptode
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 911
|
![]()
https://github.com/ekuester/SCMP-INS...ree/main/NIBLE
My understanding (as a NIBL enthusiast) is that NIBL-E was created by manual patching of some 300 locations, its IL layered approach prevented a simple re-ORG and that any NIBL-E source comes from reverse engineering the Elektor binary image ![]() (This is my understanding of the situation & may not be correct) Last edited by Phil__G; 20th Sep 2023 at 10:25 pm. |
![]() |
![]() |
![]() |
#4 |
Pentode
Join Date: Jan 2021
Location: Northampton, Northamptonshire, UK
Posts: 109
|
![]()
Don't know what happened when I originally loaded the nibl.tar.gz as I only seemed to get one file, just tried again and I get the whole folder !
Thanks for the link to the github version Phil. I seem to have it running but I can't get the baud rate correct, I'm running the 600baud version but with a 4MHz crystal (MK14). I've tried just setting the terminal baud rate to 1200 but still get garbage ? |
![]() |
![]() |
![]() |
#5 |
Heptode
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 911
|
![]()
The serial routines are pretty much identical to Kitbug Chris, you could compare delay values. Also Ronald has a table of baud-rate patches for NIBL:
https://www.dos4ever.com/SCMP/SCMP.html#NIBLE Presumably you're running 4Mhz, not 4.43? |
![]() |
![]() |
![]() |
#6 |
Pentode
Join Date: Jan 2021
Location: Northampton, Northamptonshire, UK
Posts: 109
|
![]()
I was running it at 4MHz but I've just popped a 2MHz crystal on the back of the board and that works ! Though every other letter is missing so probably need to tweak the terminal program or something ?
Anyway I'm happy as now the MK14E is running NIBL-E ! I'm away for a few days but can get back to finishing MK14E off next week. Chris |
![]() |
![]() |
![]() |
#7 |
Heptode
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 911
|
![]()
That is weird. Literally every alternate character is omitted from a printed string or listing?
Maybe parity is enabled so its discarding characters that happen not to match up? (50:50) ![]() But its receiving every manually typed character from the terminal input? and this is at 1200baud and 2Mhz, with code thats expected to be 1200baud with 4Mhz delays? So presumably at 4Mhz you get a 2400bd console with 1200baud/4Mhz code? Re the 2Mhz/4Mhz thing, could the clock be ringing? (I always use unbuffered HCU for clocks, it goes linear more cleanly) Or could this be a "SCMP I" vs "SCMP II" thing with the NIBL-E software? (ie ISP-8A-500/600 clock speeds) I use 1200baud, 8bit, no parity, 1 stop, no flow control on the 4Mhz INS8060 SCMP II . Last edited by Phil__G; 21st Sep 2023 at 6:05 pm. |
![]() |
![]() |
![]() |
#8 |
Pentode
Join Date: Jan 2021
Location: Northampton, Northamptonshire, UK
Posts: 109
|
![]()
I only had time for a quick play - 'Syntax error' only came out as 4 or 5 characters and I think PRINT TOP returned 4 digits.
It'll have to wait till next week now though. |
![]() |
![]() |
![]() |
#9 |
Heptode
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 911
|
![]()
SNTX is correct Chis ! NIBL error messages are very brief!
Also, PR TOP applies only to the current 4k page, so unless you're on a higher page, 4 digits is quite likely. The PICLv2 for example has only two pages so will never report more than 4 digits for PR TOP ![]() Hope you catch this before you go away, so you're not worrying that something is wrong!!! Last edited by Phil__G; 21st Sep 2023 at 7:56 pm. |
![]() |
![]() |
![]() |
#10 |
Pentode
Join Date: Jan 2021
Location: Northampton, Northamptonshire, UK
Posts: 109
|
![]()
I've created a 4MHz Clock, 1200 baud version of NIBL-E using the table from DOS4Ever. Is there an error in the table as address 1F89 doesn't make sense and neither does 1F98 if its a typo ? Neither address refer to a delay value ?
I ignored that change and its kind of working. I had to enable local echo because NIBL doesn't although I'm getting a non-printable character after every character that I type ! Though output from NIBL seems to be correct e.g. from LIST. I'm using PUTTY ? That's enough for tonight having just returned from a long weekend away, I'll be able to have a better play tomorrow evening. |
![]() |
![]() |
![]() |
#11 |
Octode
Join Date: Mar 2020
Location: Kitchener, Ontario, Canada
Posts: 1,195
|
![]()
Does NIBL set the high bit on every character echoed? That might make it unprintable.
|
![]() |
![]() |
![]() |
#12 | |
Heptode
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 911
|
![]() Quote:
It actually echoes bit by bit rather than character by character like a UART. Sounds like the garbage character received is the echo, the bit 7 bug was unique to Kitbug but didn't I read that the guy had replaced the I/O routines, if so it might have the bit 7 set bug. |
|
![]() |
![]() |
![]() |
#13 |
Heptode
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 911
|
![]()
That weird table entry is a typo, in the original NIBL (org 0) it should be 0FB9, so hopefully 1FB9 in NIBLE.
From Erik Skovgaard's article, I've just checked all these and they are correct for NIBL: Code:
Table 2. NIBL 4mhz SC/MP II Baud Rate Changes Address 0F85 0F87 0F94 0F96 0FB9 0FC4 0FC6 OFDO 0FD2 110 Baud C3 08 45 11 11 BB 2F 54 11 300 Baud 29 03 11 06 06 6C 06 21 06 600 Baud 8A 01 D4 02 03 2D 03 E5 02 1200 Baud BB 00 34 01 01 99 01 44 01 |
![]() |
![]() |
![]() |
#14 |
Heptode
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 911
|
![]()
Forgot to make the main point, which is that 1FB9 is the stop bit delay,
this is the very thing that fixes the bit-7 bug that we see in the original Kitbug. I think if you leave 1F89 as it was and set 1FB9 to 01 your corrupted characters and echo will be ok ![]() Last edited by Phil__G; 26th Sep 2023 at 12:47 am. |
![]() |
![]() |
![]() |
#15 |
Pentode
Join Date: Jan 2021
Location: Northampton, Northamptonshire, UK
Posts: 109
|
![]()
Sorted, thanks Phil - correcting the EPROM changes was part of the problem but I also had to configure Putty for 7 bits and that cleared the non-printing characters.
I now have NIBL-E working with the VDU although it depends which order the VDU and Expansion card are plugged into the backplane !, something is a bit marginal somewhere so back out with the scope. |
![]() |
![]() |
![]() |
#16 |
Heptode
Join Date: Mar 2011
Location: North Yorkshire, UK.
Posts: 911
|
![]()
Great news, its coming along nicely.
The 1FB9 change that sets the stop bit should allow you to use the normal 8 bit setting Chris, you shouldnt need to drop to 7 bits, both NIBL & the corrected Kitbug both send 8. No biggie if it works. How have you got the NIBL serial to talk to the MK14 memory-mapped VDU, did you change NIBL's output routine or is there something inbetween? BTW I've sent Ronald a new table ![]() |
![]() |
![]() |
![]() |
#17 |
Pentode
Join Date: Jan 2021
Location: Northampton, Northamptonshire, UK
Posts: 109
|
![]()
I'm still using serial to a terminal but I can write a NIBL program to e.g. clear the screen or write a sequence to display the character set.
The VDU has to be disabled when typing of course because it completely messes up the serial comms ! |
![]() |
![]() |