+kheller2 Posted July 14 Share Posted July 14 I'm not sure if this is even relevant anymore, but figured I would post it here. From news.cac.psu.edu!news.pop.psu.edu!hudson.lm.com!newsfeed.pitt.edu!gatech!howland.reston.ans.net!news.moneng.mei.com!uwm.edu!reuter.cse.ogi.edu!engr.orst.edu!news.CSOS.ORST.EDU!PEAK.ORG!jamesw Mon Feb 6 18:41:44 1995 Path: news.cac.psu.edu!news.pop.psu.edu!hudson.lm.com!newsfeed.pitt.edu!gatech!howland.reston.ans.net!news.moneng.mei.com!uwm.edu!reuter.cse.ogi.edu!engr.orst.edu!news.CSOS.ORST.EDU!PEAK.ORG!jamesw From: James Wood <jamesw@CSOS.ORST.EDU> Newsgroups: comp.sys.atari.8bit Subject: Black Box printer problem (from Atari net) Date: Mon, 30 Jan 1995 00:29:35 -0800 Organization: OSU CS Outreach Services, Corvallis, Oregon Lines: 542 Message-ID: <Pine.SUN.3.91.950130002511.5775C-100000@PEAK.ORG> NNTP-Posting-Host: peak.org Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Content-Transfer-Encoding: QUOTED-PRINTABLE X-Sender: jamesw@PEAK.ORG Here's an interesting message, I believe from the same guy who discussed the prior XEP message. He encountered a problem with his Black Box printing.... Read in the message that he had similar luck contacting Bob Puff - sort of like I did. Bob must be awfully busy, eh?? Here goes: ------------------------------------------------------------ 1=BE Title: Black Box Speed Up (1) Author: ATREJU To: All Posted: Sat 14-Jan-95 at 12:36:10am Replies: 0 Origin: ABBUC-BBS [node #408] Germany [+49+5439+3265] New facts about the BlackBox ---------------------------- (c) Erhard Puetz November 10th, 1994 This article has been written for the ABBUC magazine. It may be freely distributed but not changed in any way without the authors consent. (Translated by Mathy Van Nisselroy, December 19, 1994) Some time ago, I printed a letter using StarTexter (Mathy: a German Wordprocessor). I just had bought the BlackBox and therefore played around with it a lot. The transfer from data to the printer struck me as taking very much time. And this with my nice Laserprinter. I prepared a Test text with StarTexter. This ment, totally filling a page. E.g., 79 times the character "A" on a line, with 66 lines. Printersettings; 12 cpi, Left margin 10, Buffer 10kB. So, off with the text, stopwatch started. WHAAAAATTT, 14 seconds?!?! This can not be true. a) the BlackBox provides parallel datatransfer, which should be about 10 times faster than serial datatransfer (No Start- and Stopbits, and eight bits are send at the same time) and b) there is a 10kB printerspooler. So that handfull of characters should have flown to the printer in no time. But whatever I tried, nothing helped. So I read the technical page of the printer manual. It says: After a dataword arrived at the interface, the HOST, in my case a 130XE, has to wait 0.5 us and then activate the STROBE-signal, for at least another 0.5 us. Then the printer needs approximately 10 us for the processing, which adds up to 11us. Which means that the printer is able to receive the above mentioned 5280 characters in approx. 0.06 seconds. The difference between 14 seconds and 0.06 seconds was a bit much for my taste. 1.2 seconds (or twenty times 0.06 seconds) should be about enough for the 130XE I thought, we do have to call CIO, which calls the parallel bus and then there are some read and write operations. Well, some of you might think, why is this guys p*ssing his pants for 14 seconds? Easy. Now write a letter with Daisy Dot III. Two pages. That should be about 250 kByte of data. This would take about 7 minutes to transfer, but that's just the transfer. Add to that the time Daisy Dot needs to convert. And Daisy Dot can not convert while printing, so a slow datatransfer really slows down the system. You loose a quarter of an hour for a stupid letter, you could have written by hand in the same time. Since my XE should be able to transfer the data ten times faster, the only remaining source of error seemed to be the printer. So what does this idea do? I wrote to EPSON, raging around about their not so cheap printers being lame. They, being far from stupid, run a small test program under my conditions (text 66 x 80) and achieve 0.14 seconds transfer time. One fine day I got the idea to try the whole thing with my old Wiesemann Interface. Ready, GO. Measured time: 8 seconds. Say what? Whattheheckisthis? The ancient interface is faster than the BlackBox? So, at it. Letter to Robert Puff. Including return-postage. No answer. Via Internet. No answer. Via the ABBUC BBS. No answer. Fax. No answer either. (Bull sh*t!). I can't see through this BlackBox. Looks complicated. I'll have to accept that. And yesterday I came to the conclusion that I'm not gonna accept it. So I delved into the operation system of the BlackBox. Looking for what? For a $40 for the printer in DDEVIC = $300. To my own suprise, I found = it relatively soon. The reassembling then took quite a bit of time and brain power, but below you'll find the listing I want to talk about. The actual printer routine starts on page 4 in line 2370 with the label IOV. Boldly speaking you could say that it checks if the printerport of the BlackBox will be used. In case the answer is "YES", the data will branch to either send data directly to printerport or save data in a printerspooler. The printerspooler can either be RAM inside the XL/XE, or extra RAM on the BlackBox itself. If the spooler is used, as much data as possible will be put in. As long/soon as this is less than approximately 60kB of data, the wordprocessor or whatever and load other files. The data will then be send from the spooler, per timerdriven interrupt, at about 173 characters per second, if I got my calculations right, to the printer till the spooler is empty. But the slow datatransfer happened without the spooler, so the direct printer routine is the one we need to look at. The most important part you'll find at page nine. And only after a long time I saw what really stood there, in line 4940. It says: BNE WR_OK, which when translated reads, the computer should wait, as long as the printer is ready. This is baloney. It should read, wait as long as the printer is NOT ready. So it should say: BEQ WR_OK. I've tried that out immediately. Once with the original, once with the corrected bug and once with changed STROBE-Timing (Lines 4780 and 4840). All this using Turbo-Basic and BW-DOS: (Mathy: BW-DOS is a SpartaDOS compatible and written by Jiri Bernasek of BEWESOFT.) 10 DIM A$(66*80) 20 A$(1)="A":A$(5280)="A":A$(2)=A$:REM fill A$ with 'A's. 30 FOR I=80 TO 5280 STEP 80 40 A$(I,I)=CHR$(155):REM the 80th char in each line is an EOL 50 NEXT I 60 OPEN #1,8,0,"P:" 70 TIME$="000000" 80 ? #1;A$;:?TIME,TIME$ 90 CLOSE #1:END Here are the test results: - originally the printout would take 664 jiffies = approx. 13.28 seconds - after the first change 118 jiffies = approx. 2.36 seconds - after the first change & DMA OFF 87 jiffies = approx. 1.74 seconds - & new STROBE timing 95 jiffies = approx. 1.9 seconds - & new STROBE timing & DMA OFF 71 jiffies = approx. 1.4 seconds With th new operating system of the Black BOX, the BB Enhancer: (Mathy: this probably goes for the Floppy Board as well, since it also contains the BB Enhancer.) - after all changes 102 jiffies = approx. 2.04 seconds - after all changes & DMA OFF 75 jiffies = approx. 1.5 seconds Wow, really cool to see that data zap to the printer. And I was really surprised about how close my estimated 1.2 seconds came to the 1.4 seconds it really took. I'm happy. But also suspicious, this might not be the only bug Robert Puff left inhere. There always is the possibility of a serious bug hiding somewhere. On the other hand though, the BlackBox has been working for me for a very long time and doing very good. I've got to make a few remarks here. The new STROBE-timing now takes approximately 7 us, about 10 times more then the printer needs. BUT this works on MY printer. How this works out for other printers, I don't know. And then something I've been talking to many people about, including Robert Puff, who even happened to have time for an answer. I said, or bettter yet wrote: Whenever the interface encounters the XL/XE's end-of-line character, called EOL, ASCII value 155 or $9B, changes into CR = 13 ($0= D) or CR + LF = 13 + 10 ($0D, $0A), graphicdata might be changed in = my opinion. When a 155 appears in a picture, the interface changes this into a 13, resulting in an error in the picture. It's even worse if a LF is added. In that case, the printer will not receive the amount of bytes announced in the graphics data command, e.g. 641 bytes instead of 640 bytes, confusing the printer. For the interface has no way of knowing if it's converting graphic or text data. Let's look at page 6, line 3120 and following. There it says; take a character from the buffer. Is it EOL? If yes, convert it into CR. Which creates an error if it's graphics data. And there are so many commands for graphic print-outs, that an interface would have trouble recognizing all of them. What if one sends downloaded charactersets to the printer? It's been 10 years ago already since I first found this error. At that time, I had just written a driver, that would pass-through all ATASCII characters when printing a BASIC listing. The special characters where send to the printer as graphic data. The character Ae (upper case character A with two dots over the A) always made trouble. When I looked at the graphics data a bit closer, the value 155 actually showed up. I then changed the character in such a manner, that 154 or something related came out, it worked. Last remark. The operating system of the BlackBox has a checksum. At least with the Enhancer, the change did not stay unnoticed. It always beeps for a second, when I open a certain menu (no food on this one). But maybe good old Robert will get his hands on an ABBUC magazine. So that's it, goodbye and thanks for all the fish. Your Floppydoc 0890 .TAB 17,23,40 0900 .TITLE "Black Box: part of the printer driver" 0910 .SET 0,4 ;(1-4) ,0 Byte und .SByte Listing Format 0920 .SET 1,0 ;(1-31) ,0 Left margin 0930 .SET 2,125 ;(40-132) ,80 Max length of line 0940 .SET 3,12 ;(0-255) ,12 Form feed char 0950 .SET 4,66 ;(28-255) ,66 Number of lines per page 0960 .SET 5,0 ;(0-255) ,0 # spaces in comment field 0970 .SET 6,0 ;($0000-$FFFF),0 Offset:PC+Offset 0980 ; 0990 .PAGE " Sytem Equates" 1000 ********************************************************************** 1010 * * 1020 * Black Box: Part of the printer driver * 1030 * * 1040 * Sourcecode reassembled by: Erhard Puetz * 1050 * (c): November 1994 * 1060 * * 1070 * Without any warranties * 1080 * * 1090 ********************************************************************** 1100 ; 1110 ;System page zero equates 1120 ; 1130 POKMSK = $10 1140 BRKKEY = $11 1150 RTCLOK = $12 1160 BUFRLO = $32 printer buffer address, moved from DCB ($0304-$0305) 1170 BUFRHI = $33 to zero page 1180 BFENLO = $34 save Y register, counts from 0 to ($0308) 1190 BFENHI = $35 BFENHI is used with CRETRY similar to BUFRLO for the 1200 CRETRY = $36 XE ram spooler buffer address. 1210 DRETRY = $37 1220 SOUNDR = $41 1230 CRITIC = $42 1240 ; 1250 ;Seite 2 1260 ; 1270 PDVMSK = $0247 1280 ; 1290 ;Seite 3 - Der Device Control Block (DCB) 1300 ; 1310 DDEVIC = $0300 1320 DUNIT = $0301 1330 DCOMND = $0302 1340 DBUFLO = $0304 1350 DBUFHI = $0305 1360 DBYTLO = $0308 1370 ; 1380 ;The Hardwareregister: The VIA from the Black Box 1390 ; 1400 CENTSTAT = $D170 R Bit 4: BUSY (H), Bit 5: FAULT (L) 1410 CENTDATA = $D171 W Dataoutput to Centronics-Inteface (inv) 1420 DDRB = $D172 R-W Data-direction-register. 0=Input, 1=Output= . 1430 DDRA = $D173 R-W Data-direction-register. 0=Input, 1=Output= . 1440 T1C_L = $D174 ; R: Low counter W: Low latch 1450 T1C_H = $D175 R-W High counter 1460 T1L_L = $D176 R-W Low latch 1470 T1H_L = $D177 R-W High latch 1480 T2C_L = $D178 ; R: Low counter W: Low latch 1490 T2H_L = $D179 R-W High counter 1500 SR = $D17A R-W shift register 1510 ACR = $D17B R-W Auxiliary Control Register 1520 CENT_CLK = $D17C R-W Peripheral Control Register (PCR) 1530 IFR = $D17D R-W Interrupt Flag Register 1540 IER = $D17E R-W Interrupt Enable Register 1550 DRA = $D17F R-W Port A without Handshake 1560 ; 1570 ;Adresses of the Parallel Bus 1580 ; 1590 RAMPAGE = $D1BC R-W Black Box. Pagenumber of the active RAM. 1600 PBIBANK = $D1FF R-W Actual PDVS, but the BB uses it differently 1610 ; 1620 ;I-O groups 1630 ; 1640 AUDF4 = $D206 W POKEY 1650 AUDC4 = $D207 W 1660 AUDCTL = $D208 W 1670 IRQST = $D20E R 1680 IRQEN = $D20E W 1690 SKCTL = $D20F W 1700 PORTB = $D301 R-W PIA 1710 WSYNC = $D40A W ANTIC 1720 ; 1730 ;End of system equates 1740 ; 1750 ;External reference equates 1760 ; 1770 BB_RAM = $D600 Banked Memory, $D600 - $D6FF. 1780 BB_03 = $D680 1790 BB_BADR = $D688 1800 BB_BSIZ = $D690 1810 BB_CFG1 = $D6ED ;only valid on page $F5 active 1820 BB_CFG2 = $D6ED ;only valid on page $F5 active 1830 BB_01 = $DA55 1840 BB_02 = $DE6F 1850 ;End of external references 1860 .PAGE " The actual Programm" 1870 *= $D800 1880 ; 1890 .WORD $734E ;Checksum 1900 .BYTE $00 ;Version Nr. 0 1910 .BYTE $80 ;ID 1 = 128 1920 .BYTE $00 ;Device Type 1930 PDIOV JMP IOV ;$D84B 1940 PDIRQ JMP IRQV ;$D84A 1950 .BYTE $91 ;ID 2 = 145 1960 .BYTE $00 ;Device name 1970 ; 1980 .WORD IRQV ;OPEN All entries into this Handler tables 1990 .WORD IRQV ;CLOSE point to RTS. They are apparently 2000 .WORD IRQV ;GET not used. That they appear here 2010 .WORD IRQV ;PUT is required by the Busdefinitions. 2020 .WORD IRQV ;STATUS 2030 .WORD IRQV ;SPECIAL 2040 JMP INIT ;$D842 2050 ; 2060 SEL_ROM STX PBIBANK ;$D1FF Selectionregister 2070 RTS 2080 ; 2090 BRK 2100 CLC 2110 JMP BB_01 ;$DA55 2120 ; 2130 JMP BB_02 ;$DE6F 2140 ; 2150 SEC 2160 JSR $DA54 2170 LDX #$02 2180 BNE SEL_ROM always -> 2190 ; 2200 RAM_MISC PHA 2210 LDA #$FE 2220 BNE SEL_RAM 2230 RAM_MCFG PHA 2240 LDA #$F5 2250 BNE SEL_RAM 2260 RAM_NORM PHA 2270 LDA #$FF 2280 SEL_RAM STA RAMPAGE 2290 PLA 2300 RTS 2310 ; 2320 INIT LDA PDVMSK ;$0247 2330 ORA #$08 2340 STA PDVMSK ;$0247 2350 IRQV RTS 2360 ; 2370 IOV JSR RAM_MCFG 2380 LDA BB_CFG1 Is printerport of BB switched on? 2390 AND #$20 2400 BEQ EXIT No -> 2410 LDA DDEVIC Should I speak to printer? 2420 CMP #$40 2430 BNE EXIT No -> 2440 LDA BB_CFG1 All printernumbers active? 2450 AND #$08 2460 BNE IOV_1 Yes -> 2470 LDA BB_CFG1 No, only one between 0-7 2480 AND #$07 2490 CLC 2500 ADC #$01 2510 CMP DUNIT Is this the one? 2520 BEQ IOV_1 Yes -> 2530 EXIT CLC 2540 JMP RAM_NORM 2550 ; 2560 IOV_1 LDA CENTSTAT Does the printer give an 'ERROR'? 2570 AND #$20 2580 BEQ EXIT Yes -> 2590 LDA DBUFLO 2600 STA BUFRLO 2610 LDA DBUFHI 2620 STA BUFRHI 2630 LDA BRKKEY Was BREAK pressed? 2640 BNE NOTBRK No -> 2650 DEC BRKKEY Erase 2660 BNE ERR_BRK Break abort -> 2670 ; 2680 NOTBRK LDA DCOMND Status Command? 2690 CMP #$53 2700 BNE WRITE No -> 2710 LDY #$03 2720 :01 LDA PSTAT_TAB,Y 2730 STA (BUFRLO),Y 2740 DEY 2750 BPL :01 All 4 Bytes -> 2760 ; 2770 NO_ERR LDY #$01 Status ok 2780 .BYTE $2C 2790 ERR_NAK LDY #$8B 2800 .BYTE $2C 2810 ERR_WP LDY #$90 2820 .BYTE $2C 2830 ERR_BRK LDY #$80 2840 ; 2850 LDA SOUNDR I-O Sound on? 2860 BEQ GO_EXIT No -> 2870 JSR RAM_MCFG 2880 LDA BB_CFG1 I-O Sound suppressed? 2890 BPL GO_EXIT Yes -> 2900 LDA #$00 2910 STA AUDF4 2920 STA AUDC4 Volume 0 2930 GO_EXIT SEC 2940 JMP RAM_NORM 2950 ; 2960 PSTAT_TAB .BYTE $80,$28,$1F,$00 2970 ; 2980 WRITE CMP #$57 Write Data? 2990 BNE ERR_NAK No. Then unknown command -> 3000 LDA SOUND 3010 BEQ WR_1 Non -> 3020 LDA BB_CFG1 I-O Sound allowed? 3030 BPL WR_1 No -> 3040 LDA #$03 Just the keyboard 3050 STA SKCTL 3060 LDA #$00 Base frequency 64 KHz 3070 STA AUDCTL 3080 LDA #$A4 Volume 4, pure Tone 3090 STA AUDC4 3100 LDA #$30 Pitch 3110 STA AUDF4 3120 WR_1 LDY A$00 3130 WR_2 LDA (BUFRLO),Y Read character from buffer 3140 CMP #$9B Is it EOL 3150 BNE WR_3 No -> 3160 LDA A$0D Send CR 3170 JSR WR_4 3180 BCS ERR_WP 3190 JSR RAM_MCFG 3200 LDA BB_CFG1 create linefeed? 3210 AND #$10 3220 BEQ WR_X No -> 3230 LDA #$0A Send LF 3240 JSR WR_4 3250 BCS ERR_WP 3260 WR_X JMP NO_ERR 3270 ; 3280 WR_3 STY BFENLO Y salvage 3290 JSR WR_4 output or buffer data 3300 BCS ERR_WP 3310 LDY BFENLO Buffer end reached? 3320 INY 3330 CPY DBYTLO 3340 BCC WR_2 No -> 3350 BCS NO_ERR Yes -> 3360 ; 3370 WR_4 EOR #$FF Invert data 3380 TAX into X-Register 3390 JSR RAM_MCFG 3400 LDA BB_CFG2 Is printer spooler allowed? 3410 BMI SPOOL_1 3420 JMP WR_5 3430 ; 3440 SPOOL_1 PHA 3970 ROR A 3980 LSR A 3990 STA BFENHI+1 4000 LDY DRETRY bank number as index 4010 LDA PORTB 4020 PHA 4030 AND #$E3 4040 ORA XE_TAB,Y Read table value 4050 STA PORTB 4060 LDY BB_BADR 4070 TXA 4080 STA (BFENHI),Y Buffer dataword 4090 PLA 4100 STA PORTB 4110 JMP SPOOL_4 ;$D95A 4120 ; 4130 XE_TAB .BYTE $E3,$E7,$EB,$EF 4140 BB_TAB .BYTE $50,$73,$70,$6F 4150 .BYTE $6F,$6C,$65,$72 4160 ; 4170 CHK_RAM JSR RAM_MISC 4180 LDY #$07 4190 CHK_1 LDA BB_03,A,X ;$D680 are those 8 values still present? 4200 CMP BB_TAB,Y 4210 BNE RAM_INI ;$D9C5 Error -> 4220 DEY 4230 BPL CHK_1 ;$D9B9 Still OK, continue -> 4240 RTS 4250 ; 4260 RAM_INI SEI 4270 LDY #$07 4280 :02 LDA BB_TAB,Y Enter testvalues 4290 STA BB_03,Y ;$D680 4300 LDA #$00 4310 STA BB_BADR,Y Set Bufferstart to zero 4320 STA BB_BSIZ,Y Bufferlength also zero (no data in it yet) 4330 DEY 4340 BPL :02 4350 STA T1L_L Timer 1 creates interrupt for spooler. 4360 STA T1C_L He's loaded with the value $2800 = 10240. 4370 LDA #$28 Timer 1 devides the systemfrequency of 1.77 Mhz by 4380 STA T1H_L this value, resulting in approx. 173 IRQs / second 4390 STA T1C_H Which comes down to approx. 1400 Bd!!! 4400 LDA #$C0 Timer 1 Interrupt switched on. 4410 STA IER 4420 RTS 4430 ; 4440 WR_ERR SEC 4450 RTS 4460 ; 4470 EOR #$FF 4480 TAX 4490 WR_5 LDA #$FF 4500 STA DDRA Port A all Bits as Output 4510 LDY #$08 4520 STY BFENHI+1 4530 STY BFENHI ;$0035 4540 LDA IRQST Was BREAK pressed? 4550 BMI WR_6 No -> 4560 LDA POKMSK Yes, Reset 4570 STA IRQEN 4580 SEC 4590 RTS 4600 ; 4610 WR_6 LDA CENTSTAT Test printer 'ERROR' 4620 AND #$20 4630 BEQ WR_ERR Error -> 4640 LDA CENTSTAT Test printer 'BUSY' 4650 AND #$10 4660 BEQ WR_7 Ready -> 4670 ; 4680 STA WSYNC Timeout-Routine 8^3*145 + 8^3 + 8^2 4690 DEY comes down to approx. 42 ms BUSY-Timeout? 4700 BNE WR_6 4710 DEC BFENHI+1 4720 BNE WR_6 4730 DEC BFENHI 4740 BNE WR_6 4750 BEQ WR_ERR 4760 ; 4770 WR_7 STX CENTDATA ;$D171 4780 LDX #$04 Wait atleast 2+(4x5)+2+2 = 26 cycles 4790 WR_8 DEX This comes down, at 1.77 MHz to 26 x 0.56 = 14.6 us 4800 BPL WR_8 For the EPL-5200 0.5 us will do. 4810 LDA CENT_CLK 'STROBE' active LO 4820 AND #$DF PCR sets CB2 to Low (% 110XXXXX) 4830 STA CENT_CLK 4840 LDX #$10 Wait 2+(16*5)+2+2 = 86 cycles = 48.6 us 4850 WR_9 DEX For the EPL-5200 0.5 us will do. 4860 BPL WR_9 Wait -> 4870 ORA #$20 Reset 'STROBE' 4880 STA CENT_CLK PCR sets CB2 to High (% 111X XXXX) 4890 WR_A LDA CENTSTAT printer 'ERROR'? 4900 AND #$20 4910 BEQ WR_ERR Yes -> 4920 LDA CENTSTAT Printer 'BUSY'? 4930 AND #$10 4940 BNE WR_OK No -> 4950 DEX 4960 BMI WR_A Yes, test another 126 times, then ok. 4970 WR_OK CLC 4980 RTS 4990 ; 5000 .END 2 Quote Link to comment Share on other sites More sharing options...
Mathy Posted July 14 Share Posted July 14 (edited) Hello Karl The text looks familiar. 😃 Sincerely Mathy PS this text and a few others by Erhard/Atreju/FloppyDoc can also be found on my site. Edited July 14 by Mathy 1 Quote Link to comment Share on other sites More sharing options...
Chri O. Posted July 15 Share Posted July 15 Quote This article has been written for the ABBUC magazine. It may be freely distributed but not changed in any way without the authors consent. (Translated by Mathy Van Nisselroy, December 19, 1994) 😷 Quote Link to comment Share on other sites More sharing options...
Chri O. Posted July 15 Share Posted July 15 Interesting article I've been messing with printer emulation for a while lately and I got to admit printing on Atari 8-bit seems to be way too slow. For example this (Print Shop) Banner probably took more than 10 minutes... Quote Link to comment Share on other sites More sharing options...
+kheller2 Posted July 15 Author Share Posted July 15 “Way too slow” is a relative term. Compared to what, on what printer, with what driver? Quote Link to comment Share on other sites More sharing options...
Chri O. Posted July 16 Share Posted July 16 7 hours ago, kheller2 said: Compared to what, on what printer, with what driver? First driver in the selection: I think this has a lot to do with standard SIO 19200 speed and only 40 bytes per transfer. Quote Link to comment Share on other sites More sharing options...
Chri O. Posted July 16 Share Posted July 16 Just to clear up some confusion I recently created printer software Bridge between classic computers and modern printers set up on Windows - Linux - MAC - Raspberry Pi. This of course needs Hardware or Altirra emulator set up with Network TCP printer.atdevice. For setting up Altirra using Network TCP printer.atdevice please refer to this thread: Printing using Altirra? Quote Link to comment Share on other sites More sharing options...
+Stephen Posted July 16 Share Posted July 16 Print Shop is just ungodly slow on these banners. It was on the Apple 2, and also on the Atari. Had nothing to do with the printer speed either. Even when I used my 64kB print buffer, dead slow. Print Shop just took forever ti convert data to something the printer could use, and pipe it out. 1 Quote Link to comment Share on other sites More sharing options...
Chri O. Posted July 16 Share Posted July 16 I hear you but if we could get high speed sio just like for the floppy Drive perhaps things will improve. Just wondering.... 😷 1 Quote Link to comment Share on other sites More sharing options...
TGB1718 Posted July 16 Share Posted July 16 8 hours ago, Chri O. said: This of course needs Hardware or Altirra emulator set up with Network TCP printer.atdevice. I have one of those old SIO to Centronics interface, a German made device something like a 72000 model and used an Arduino to print files to text files on a PC, when I have time, will write a bit more code to print directly to my modern printer. Quote Link to comment Share on other sites More sharing options...
_The Doctor__ Posted July 16 Share Posted July 16 If print shop is too slow in software, output device won't do anything except if the Atari shuts down it's screen giving full processor use or the slow code is re-written/optimized or both. It is possible a driver or such could be improved/made better as well. 1200XL users might be able to use the hot key to shut display down and see, and a patch to do the same on others using a key combo could be a helpful ticket to punch. After some investigation it could be one the other or all. Quote Link to comment Share on other sites More sharing options...
+kheller2 Posted July 16 Author Share Posted July 16 Been a while since I printed something, but can you print to a disk file, and then print the file? Quote Link to comment Share on other sites More sharing options...
Chri O. Posted July 17 Share Posted July 17 8 hours ago, kheller2 said: Been a while since I printed something, but can you print to a disk file, and then print the file? Don't think it's possible without some type of software converter in between no modern printer will understand the language of these old printers. For example the banner was printed on old Epson printer with ESC/P Commands which are obsolete with the exception of ESC/POS (point of sale) terminals (recipe printers). Quote Link to comment Share on other sites More sharing options...
Chri O. Posted July 17 Share Posted July 17 Here is the raw banner file capture from Atari 130XE with my USB device. ATARI 130 PRINTER MCU SERIAL 1ST TEST_0.zip size: 207,240 bytes. One page is 960x1440 pixels. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.