Jump to content
IGNORED

SIO to Centronics Printer Interface


TGB1718

Recommended Posts

Bit of a long shot, but I have a WW Interface 72000 - SIO cable to 36 Pin Centronics Printer interface which doesn't seem to work.

 

I opened the interface up and it has 6 DIP switches inside, but nothing to say what each switch does.

 

Does anyone have an instruction manual for this, I've Googled, but only found one reference to it's existence.

but no instructions

Link to comment
Share on other sites

I am not a native German speaker, but I have given it a try:

 

Dip 1 OFF: The interface transmits all codes unchanged. Only the "sentence end" code 9BH is changed in CR (0DH). Epson FX80 and compatible printers can be used for the Atari 600/800 including wordprocessing software.

 

Dip 1 ON: The interfaces changes some codes (see the list in the manual) to create German letters in Atariwriter like ü ä ö and to change ss to ß

 

Dip 2 must be OFF (no function)

 

Dip 3 ON: Software cannot override the changes made by Dip 1 set on ON

 

Dip 3 OFF: Software can override the changes made by Dip 1 set on ON

 

Dip 4, 5 and 6 must be OFF (no function)

 

I think whatever the position of Dip switches 1 and 3 the printer should do something, so probably there is another problem....

  • Like 1
Link to comment
Share on other sites

I have a HP LJ2550 with a Centronics interface, but it needs a bit of tlc to get it going, so can't test the interface, but I have programmed an Arduino Uno

to mimic a printer, I hope to get this going today and see it the interface is working.

 

DragonStomper: Many Thanks, I will set the switches based on the info and see what I get when I test it.

 

Currently ripping appart an old IEEE 488 cable extender to interface between the WW 72000 and the Arduino

(IEEE 488 has less pins, but if I get the shell off I can use the female in the lower 2/3 of the Centronics plug)

Link to comment
Share on other sites

I think it will be hard to connect a HP color laserjet to an 8-bit Atari.

 

I found some topics on AtariAge that illustrate this: http://atariage.com/forums/topic/42236-trying-to-get-hp-laserjet-4p-to-work-with-my-atari-8-bits/

and http://atariage.com/forums/topic/108137-printer-options-for-800xl/

 

Most interfaces are intended for Epson (or compatible) printers. The German manual you posted references many times to an Epson FX80.

Edited by Fred_M
Link to comment
Share on other sites

I managed to test the interface using an Arduino Uno, a bit of a trying time though as the WW 72000 doesn't fully conform to the handshake methods.

It only uses 'Busy' from the printer to say when it can send the next byte, it really should use 'ACK' as well.

 

The problem was that a Uno takes about 5 to 6 us to raise the Busy line, by which time the 72000 has sent another byte, if it used 'ACK' it would wait

before it checked the Busy line.

 

With a bit of direct writing to the ports on the Uno I managed to get the time down to ~3.5 us which helped produce almost perfect printing.

 

See below the output from MAC65 to the printer (via Uno's Serial Port monitor), it was a program I wrote many, many moons ago to backup Cassette Tapes.

There are only 2 errors from the printed, lines 770 &1370, just caused by the Uno not being quite fast enough.

 

Maybe I'll do the same on a Raspberry Pi, much quicker :)

 

Thanks agains for all the help.

 

 

 

 

0100 ; .OPT NO LIST
0110 .INCLUDE #D:HEADER.M65
0115 .OPT LIST
0120 *= $2500
0130 START LDA #CLOSE
0140 STA ICCOM
0150 JSR CIOV
0160 LDA #OPEN
0170 STA ICCOM
0180 LDX #0
0190 LDA #OWRITE
0200 STA ICAX1
0210 LDA #EFILE&255
0220 STA ICBAL
0230 LDA #EFILE/256
0240 STA ICBAH
0250 LDA #$80
0260 STA ICAX2
0270 JSR CIOV
0280 LDA #MESS1&255
0290 LDX #0
0300 STA ICBAL
0310 LDA #MESS1/256
0320 STA ICBAH
0330 LDA #PUTBUF
0340 STA ICCOM
0350 LDA #MESS2-MESS1
0360 STA ICBLL
0370 LDA #0
0380 STA ICBLH
0390 JSR CIOV
0400 LDX #$10
0410 LDA #OPEN
0420 STA ICCOM,X
0430 LDA #OREAD
0440 STA ICAX1,X
0450 LDA #$80
0460 STA ICAX2,X
0470 LDA #CFILE&255
0480 STA ICBAL,X
0490 LDA #CFILE/256
0500 STA ICBAH,X
0510 JSR CIOV
0520 BMI CERR
0530 LDX #$10
0540 LDA #GETBUF
0550 STA ICCOM,X
0560 LDA #$00
0570 STA ICBAL,X
0580 LDA #$30
0590 STA ICBAH,X
0600 LDA #$00
0610 STA ICBLL,X
0620 LDA #$80
0630 STA ICBLH,X
0640 JSR CIOV
0650 CPY #$88
0660 BNE CERR
0670 JSR GETBYTENO
0680 LDA #CLOSE
0690 STA ICCOM,X
0700 JSR CIOV
0710 LDA #$3C
0720 STA PACTL
0730 JMP PUTMESS2
0740 ADDLO = *+1
0750 ADDHI = ADDLO+1
0760 CFILE .BYTE "C:",CR
0770 CERR LDA #$3C0780 STA PACTL
0790 LDA #CLOSE
0800 STA ICCOM,X
0810 JSR CIOV
0820 JMP ERROR
0830 WRITEOUT LDX #$10 ; ⸮⸮⸮⸮Š⸮⸮⸮⸮⸮
0840 LDA #OPEN
0850 STA ICCOM,X
0860 LDA #OWRITE
0870 STA ICAX1,X
0880 LDA #$80
0890 STA ICAX2,X
0900 LDA #CFILE&255
0910 STA ICBAL,X
0920 LDA #CFILE/256
0930 STA ICBAH,X
0940 JSR CIOV
0950 BMI CERR
0960 LDX #$10
0970 LDA #PUTBUF
0980 STA ICCOM,X
0990 LDA #$00
1000 STA ICBAL,X
1010 LDA #$30
1020 STA ICBAH,X
1030 LDA ADDLO
1040 STA ICBLL,X
1050 LDA ADDHI
1060 STA ICBLH,X
1070 JSR CIOV
1080 BMI CERR
1090 LDA #CLOSE
1100 STA ICCOM,X
1110 JSR CIOV
1120 LDA #$3C
1130 STA PACTL
1140 JMP START
1150 ERROR LDA #ERRORMESS&255
1160 STA ICBAL
1170 LDA #ERRORMESS/256
1180 STA ICBAH
1190 LDA #PUTBUF
1200 STA ICCOM
1210 LDA #MESS1-ERRORMESS
1220 STA ICBLL
1230 LDA #0
1240 STA ICBLH
1250 LDX #0
1260 JSR CIOV
1270 LDA #CLOSE
1280 LDX #$10
1290 STA ICCOM,X
1300 JSR CIOV
1310 LDA #$FF
1320 STA CH
1330 XX LDA CH
1340 CMP #$FF
1350 BEQ XX
1360 LDA #$FF1370 STA CH
1380 JMP START
1390 PUTMESS2 LDA #PUTBUF
1400 STA ICCOM
1410 LDA #MESS3-MESS2
1420 STA ICBLL
1430 LDA #0
1440 STA ICBLH
1450 LDA #MESS2&255
1460 STA ICBAL
1470 LDA #MESS2/256
1480 STA ICBAH
1490 LDX #0
1500 JSR CIOV
1510 JMP WRITEOUT
1520 ERRORMESS .BYTE "⸮⸮⸮⸮⸮⸮⸮Š⸮⸮⸮⸮⸮",7,CR,"REWIND TAPE TO TRY AGAIN",CR,"AND PRESS ⸮⸮⸮⸮⸮⸮",CR
1525 MESS1 .BYTE "}⸮⸮⸮⸮⸮⸮⸮Š⸮⸮⸮٠⸮⸮⸮⸮⸮⸮⸮",CR,CR
1530 .BYTE "INSERT SOURCE CASSETTE",CR,"PRESS PLAY ON TAPE RECORDER",CR,"THEN PRESS ⸮⸮⸮⸮⸮⸮",CR,CR
1540 MESS2 .BYTE "REMOVE SOURCE CASSETTE",CR,"INSERT DESTINATION CASSETTE",CR,"THEN PRESS ⸮⸮⸮⸮⸮⸮",CR,CR
1550 MESS3 .BYTE 0
1560 GETBYTENO LDX #$10
1570 LDA ICBLL,X
1580 STA ADDLO
1590 LDA ICBLH,X
1600 STA ADDHI
1610 RTS
1620 EFILE .BYTE "E:",CR
  • Like 2
Link to comment
Share on other sites

Fixed the slow handshake response from the Arduino, just put an LS74123 on the Strobe, connected it to input A (input B pullup to +5V) on the chip, NOT Q to the interface BUSY,so just a few ns for the

BUSY to go HIGH when strobe goes LOW, UNO has plenty of time to process the data then send a trigger to NOT CLR pin on the chip to lower the BUSY signal.

 

Now works fine with no corruption.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...