Just for fun, I thought I'd try to hook up a rom for the Apple II Epson APL interface card using the Apple2 PIC as a model. I was able to get it working with an interesting issue. It has some really strange code that wants to read $c1c1. My workaround was to see if it had just read from that address, and if so, return 0.
so the slot number is in x so it ors with $c0, making it $c1, stores it in $01. Then stores $c1 into $00.
Then it keeps reading $c1c1 until it doesn't have the high bit set. I think this could be patched to check the busy address of the Apple2 PIC.
C990: 48 pha
C991: 8A txa
C992: 09 C0 ora #$c0
C994: 85 01 sta $01
C996: A9 C1 lda #$c1
C998: 85 00 sta $00
C99A: A0 00 ldy #$00
C99C: B1 00 lda ($00), y
C99E: 30 FC bmi $c99c
C9A0: 8A txa
C9A1: 0A asl a
C9A2: 0A asl a
C9A3: 0A asl a
C9A4: 0A asl a
C9A5: A8 tay
C9A6: 68 pla
C9A7: 99 80 C0 sta $c080, y
C9AA: 28 plp
C9AB: 60 rts
Otherwise, it seems to work ok, it doesn't pass 8 bits through, just 7 bits. That probably explains why Triple-Dump has such short graphical sequences, as it only sends 127 bytes of graphics data at a time so you see it doing little horizontal strips instead of a whole line at a time. It's actually super good for use with Apple II basic as it ends up stripping the high bit out.
Strangely, the CTRL+I codes don't match up with another Epson interface card manual. Anyone have an Epson APL card manual?
I can only really use CTRL+I G to do hi-res graphic dumps. So for example: CTRL+I G D I 2 space will do a graphic dump at double density, inverse and do page 2.
Also CTRL+Q by itself will dump the hi-res screen (just like the Silentype.)
100 HGR : HCOLOR = 3
110 HPLOT 0,0 TO 279,0 : HPLOT 279,0 TO 279,191 : HPLOT 279,191 TO 0,0 : HPLOT 0,0 TO 0,191
120 HPLOT 0,191 TO 279,191 : HPLOT 0,191 TO 279,0
130 DATA "B","SIDE BY SIDE"
140 DATA "A","AND PAGE 1+2"
150 DATA "O","OR PAGE 1+2"
160 DATA "H","XOR PAGE 1+2"
170 DATA "I","INVERSE"
180 DATA "E","DOUBLE SIZE"
190 DATA "D","DOUBLE DENSITY"
200 DATA "L","LAST LINE?"
210 DATA "2","PAGE 2"
220 DATA "END","END"
300 READ A$,B$
305 IF A$="END" THEN GOTO 400
290 PR #1
310 PRINT "CTRL+I G ";B$:PRINT CHR$(9)"G"A$
320 GOTO 300
399 REM CTRL+I G L WILL PRINT THE GFX SCREEN LINES THAT THE TEXT CURSOR IS ON
400 ? CHR$(27)"A"CHR$(8):FOR I=0 TO 23:POKE 37,I:? CHR$(9)"GL ";:? CHR$(27)"A"CHR$(8):NEXT
![[Linked Image from i.imgur.com]](https://i.imgur.com/tEXcwpd.png)
Here's gfx page 1 and 2 side by side,
then gfx page 1 AND gfx page 2,
then gfx page 1 OR gfx page 2:
![[Linked Image from i.imgur.com]](https://i.imgur.com/d7AR1PF.png)
Seems to work ok with Triple Dump:
(discovered that the Epson FX-80 driver in Triple Dump is buggy and needed to use "Triple Dump (Beagle Bros. - 1984-10-22update).dsk" to do 80/72/90 dpi modes.)
![[Linked Image from i.imgur.com]](https://i.imgur.com/vK2rtmm.png)