-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
KA10: NLPT, device 464 #126
Comments
Feel free to add it. I will pick it up on the next release. |
I'd like the output to stdout. Is there already a way to get that? |
I believe you can use sim_message. Why output to stdout, this was not the console? |
It's convenient to see the output directly on the screen rather than pull up a file. |
DATAO will output five 7-bit characters at a time. 177 is ignored. |
This sounds exactly like LP10... perhaps they just moved it to another address? |
CONI bits. 7 - PIA CONO bits. 100 - set output done DATAO 23 means start motor. |
Yes, it seems they are the same or very similar. |
If they are that similar then add in a second unit to LP. Set it disabled and give it the address of the new printer. |
A second DIB I guess? |
And a second DEVICE too? |
Yes second device and DIB will be required. If CONI/CONO bits are the same, I can add it if you want. If not, just let me know what the differences between the CONI/CONO bits are and I can add support to existing dev_io routine. |
CONI/O bits seem mostly the same as far as I can see. There is CONO bit 1000 for image mode. There seems to be some additional control characters:
|
What does start/stop motor do? What does image mode do? Looking at printer code this might be a bit more complex. |
I don't know what they do. I guess they should be accepted and mostly ingored. Motor on seems to set the BUSY flag. Are you going to add the second unit? If so, I can experiment with adding characters and flags and report back what I find. |
I think it will be a new device since the printer has some specifics that make it harder to add more units. |
Ok. I will continue the device I started.
|
Ok... please start with the current version on LPT, I made some fixes to handle some recent changes to SCP. |
This fix makes the printer work: IFN STKP, STK==70 ;STANFORD KEYBOARD |
It's good the devices works as is, but there are ITS binaries (and SALV,
etc) without corresponding source code. They have the 464 device code
built in.
|
Ok... Don't we rebuild SALV? I can see if I can do some changes to the printer to support device number changing. This seems like better idea then doing a whole new device. |
I added a switch to set the device of LPT, however when I set it to 464 It does not appear to start. Yet when I changed the printer device to 124 it started correctly. |
That sounds like an excellent solution if you can make it work. ITS
supports both the 124 and 464 variants, but not both at the same time.
I will examine exactly how ITS treats the two differently.
There is a program called UNSPOO which does LPT spooling. It's not yet
in the ITS repository, but the source code is in "its-vault":
files/sysen1/unspoo.68. I think the `.LPTR.` directory is involved.
|
I think we should put UNSPOO aside for now. The normal way to print files is to use the TPL command from DDT. Some other programs use the TPL: device. So, try this:
|
Maybe ... tested it myself, and it lists files in .LPTR. That makes sense. |
According to ITS comments, OLPT/124 was made by Data Products. NLPT/464 was made by Vogue, or actually ODEC. |
NLPT does this:
and
|
Slightly different checks in interrupt service:
|
The 124 device is a totally different device then the LP10 I emulate. The 464 appears to be basically the same as an LP10. I am unsure what the image mode is. I set NLPT to 124 and enabled NLPTP and was able to print stuff. When I moved printer to 464 and set the NLPT to 464 it did not work. I pushed out changes that allow you do do set LPT dev=octal#. |
I get this:
|
After you do
Don't you need to rerun some device configuration code? |
Like call |
If I change LP_DEVNUM to 464, SALV will talk to it, but I get output like this:
The ^? characters should be ignored. Then we get this:
|
set lpt0 dev=464 It looks like SALV is sending one character per request with zeros in the rest of it. If these are 0177 characters then this is an escape to take the next character as a literal. |
This is the SALV subroutine to print one character from accumulator A:
Comments added by me. It seems fairly certain those four 177 should all be ignored, rather than escaping two 177s. It seems in this respect NLPT is different from LP10. |
With a call to |
I was wrong about ITS not using both 124 and 464. ITS 785 has both OLPT and NLPT at the same time. However, maybe we can get away with just one. As far as I can see, no other version has two line printers, and for 785 we have source code which can be reconfigured. |
build_dev_tab() should be called whenever the sim_instr is entered. There should be no reason to ever call that. I will have to check out the BA10 manual on what happens if the character after a 177 is a 177. |
Right, the call to build_dev_tab wasn't necessary after all. It was the change to I have been testing with SALV 9, because that's where I first encountered the need for NLPT. I haven't tested with ITS 16xx yet. |
I made 177 be ignored if not 128 character printer. See if that works. |
That's a big improvement. Output is now:
The backslashes are not part of the output. Those are from Emacs' display. So there are no line breaks in there. |
Reformatted with ^M as line break, this becomes:
|
^L comes from a routine called LFORM so I think those should be form feeds. |
ITS' SALV 9 want to write loaded tape files to the "NLPT" printer, which has device code 464.
The text was updated successfully, but these errors were encountered: