|
Joined: Feb 2014
Posts: 1,124 Likes: 193
Very Senior Member
|
OP
Very Senior Member
Joined: Feb 2014
Posts: 1,124 Likes: 193 |
I managed to find an english service manual/technical manual for the NLQ401 and it had an interesting bit: There were two versions of the main board, one with a upd7810 and another that used a upd7809.
|
1 member likes this:
robcfg |
|
|
|
Joined: May 2006
Posts: 148 Likes: 4
Senior Member
|
Senior Member
Joined: May 2006
Posts: 148 Likes: 4 |
Sadly, I don't think you'll ever be able to properly emulate the Tandy DMP-200 dot-matrix printer. That thing had a distinctive, LOUD sound in operation-- we're talking 80 decibels-- and that's hard to capture in an emulation.
|
|
|
|
Joined: Feb 2014
Posts: 1,124 Likes: 193
Very Senior Member
|
OP
Very Senior Member
Joined: Feb 2014
Posts: 1,124 Likes: 193 |
It's fascinating to research some of these old dot matrix printers. I was studying the Tandy Line Printer I service manual and it doesn't use a microprocessor. It uses ram and rom chips along with binary counters and logic to detect the codes CR and LF. It gets 7 bit data from a parallel port. The rom chip output data is the bit pattern to drive the 7 printhead pins. The Line Printer I has a motor driven belt and when the printer wants to move the carriage forward it hits a solenoid that catches the belt and moves it forward. There's another solenoid that moves the carriage in reverse by catching the belt moving in the opposite direction. ================ I'm trying to get the MPS803 to receive data from the c64 but it doesn't quite see the data. Using the debugger and watchpoints we can see the data that the c64 is putting on the bus: >bp ed62,1,{printf "DATA TO SEND %x",b@95;g} Breakpoint 1 set >g DATA TO SEND 24 DATA TO SEND 3f so the c64 is sending 24 to tell the printer to listen, then after not getting a response, sends 3F to unlisten.
|
1 member likes this:
robcfg |
|
|
|
Joined: Feb 2014
Posts: 1,124 Likes: 193
Very Senior Member
|
OP
Very Senior Member
Joined: Feb 2014
Posts: 1,124 Likes: 193 |
While exploring the c64 driver I happened to see the buscard expansion and it had a centronics option, so why not try the ap2000 with Printmaster? It didn't seem to work with Print Shop because it seems to be hardwired to use commodore-style printers, and not Epson printers. c64 -exp buscard -exp:buscard:p4 ap2000 You also have to set the buscard DIP switches to "device #4 parallel" to make the buscard use the parallel port.
|
|
|
|
Joined: Feb 2014
Posts: 1,124 Likes: 193
Very Senior Member
|
OP
Very Senior Member
Joined: Feb 2014
Posts: 1,124 Likes: 193 |
I found a schematic for the Tandy CGP-220 which is like the Canon PJ-1080A. This printer prints a single line at a time so it's a little slow, but it can print 4 colors (black + CMY) on a single line. Note that this is a single "pixel" line so the head has to travel back and forth a lot.
I don't have a rom for the CGP-220 but I do have one for the Canon PJ-1080A and the 6809 code looks reasonably sane. However, the schematic for the CGP-220 is different from the PJ-1080A.
It uses a PTM6840 and a PIA6821. So far I haven't been able to make it do anything but it's interesting to study.
|
1 member likes this:
robcfg |
|
|
|
Joined: Feb 2014
Posts: 1,124 Likes: 193
Very Senior Member
|
OP
Very Senior Member
Joined: Feb 2014
Posts: 1,124 Likes: 193 |
Discovered I had a Color Jetprinter 3852 rom which is very similar also to the PJ-1080A. (thanks Artiom) It's interesting to compare the fonts, the PJ has a wacky O character, looks like an inverted Q. They could have easily done better lowercase descenders, it would have just meant another pass of the printhead. There's a few printers based on the PJ-1080A, the Tandy CGP-220, the Integrex ColourJet 132, and the IBM ColorJet 3852.
|
2 members like this:
Tim Stark, robcfg |
|
|
|
Joined: Feb 2014
Posts: 1,124 Likes: 193
Very Senior Member
|
OP
Very Senior Member
Joined: Feb 2014
Posts: 1,124 Likes: 193 |
I took a look at the roms for the Amstrad DMP-3160 and they look remarkably similar to the Amstrad DMP-3000. Doing s disassembly and plugging it into meld, aside from the first 4kb, there are only a few differences: (the blue bars on the sides highlight where the files are different) The DMP-3000 dump doesn't include the first 4k as the upd7811 has the 4k rom on chip. I was able to get it to go into the self test, but for some reason it's only printing the space character 0x20 over and over. Using the debugger to catch the process where it puts characters into the buffer, I can manually add some characters, in this case the letters ABC. The lines of dots are the 9th pin, which I haven't hooked up yet, edit: some more fiddling and discovered that there are two self test modes, one with holding down lf and another with holding down ff on power-on. Holding down lf will do a self test with printing, and ff will do a self test with no printing, just carriage movement.
Last edited by Golden Child; 09/28/24 09:48 PM.
|
1 member likes this:
robcfg |
|
|
|
Joined: Feb 2014
Posts: 1,124 Likes: 193
Very Senior Member
|
OP
Very Senior Member
Joined: Feb 2014
Posts: 1,124 Likes: 193 |
I got interested in the Alphacom VP42 printer. It uses an Olivetti PU-1840 mechanism that prints 40 columns using 20 thermal elements. It uses a 6500/1 cpu along with a couple of DS3654 printer solenoid drivers that are basically 10 bit shift registers. 2 x 10 bit shift registers is enough to drive all 20 thermal elements. There's a great article in the Personal Computer World 1981-03 that gives a lot of information on the PU-1840. It took me quite a while to figure out how the code works to send the data to the shift registers. Now we'll see if I can make it do something...
mem=manager.machine.memory.regions[":iec4:vp42:mcu"]
function stars(x) local a = "" for j=7,0,-1 do if ((2^j) & x)==0 then a=a.." " else a=a.."*" end end return a end
for k = 0,159 do for i=0xac1,0xddc-1,159 do a=mem:read_u8(i-0x800+k) print(string.format("%x",i).." "..string.format("%x",k).." "..string.format("%x",a),stars(a)) end print() end
ac1 80 32 ** *
b60 80 49 * * *
bff 80 79 **** *
c9e 80 41 * *
d3d 80 3e *****
ac1 81 7c *****
b60 81 12 * *
bff 81 11 * *
c9e 81 12 * *
d3d 81 7c *****
ac1 82 7f *******
b60 82 49 * * *
bff 82 49 * * *
c9e 82 49 * * *
d3d 82 36 ** **
ac1 83 3e *****
b60 83 41 * *
bff 83 41 * *
c9e 83 41 * *
d3d 83 22 * *
ac1 84 7f *******
b60 84 41 * *
bff 84 41 * *
c9e 84 22 * *
d3d 84 1c ***
ac1 85 7f *******
b60 85 49 * * *
bff 85 49 * * *
c9e 85 41 * *
d3d 85 41 * *
...
|
|
|
|
Joined: Feb 2014
Posts: 1,124 Likes: 193
Very Senior Member
|
OP
Very Senior Member
Joined: Feb 2014
Posts: 1,124 Likes: 193 |
Took a look at the Amstrad PCW 8256 and realized that the shift register wasn't working quite right, it should shift only on positive clock transitions.
|
1 member likes this:
robcfg |
|
|
Forums9
Topics9,328
Posts122,128
Members5,074
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|