APPLE打印卡巧作并行输入接口
二、地址与各路的关系
因多路器原有的输入选择接线法,使按位输入时的顺序有所改变,为了使各路地址连续,组成一个新的字节顺序应是D7、D3、D5、D1、D6、D2、D4、D0,如果该卡插在1号槽,各路对应地址为C1C7~C1C0,其中C1C0为状态输入口地址。
三、输入步骤
接收一个数据前,先从0路读入外设状态,等待数据准备好,然后顺序从高位到低读入7位数据,转换为标准字节;之后通过向输出口(地址为C090)写任意数据,使之生产STB信号,通知外设数据已取走。
四、和TP801连接示例
与TP801 PIO A口进行一串7位的ASCII字符传送。STB连到A口的ARDY,PIO的ARDY仍经反相器连到多路器的0路,7位数据顺序连到PA0到PA6上,接收程序用FP BASIC写成,每接受一个字符在CRT上显示出来,以0码作传送结束。PIO A口工作在中断输出方式。
发送程序
ORG 2000H
INIT:LD A,20H
LD I,A
LD A,50H
OUT (82H),A
LD A,0FH
OUT (82H),A
LK A,87H
OUT (82),A
IM2
EI
LD IX,DATA
LD A,(IX)
OUT (80H),A
WAIT:HALT
JR WAIT
ORG 2050H
INTAB:DW 2100H
ORG 2100H
INTSER:INC IX
LD A,(IX)
OUT (80H),A
CP 0
JR Z,STOP
EI
RETI
STOP:HALT
DATA:DB'COMPUTER
DEPARTMENT',0
END
接收程序
1000 AO=49296
1010 AI=49600
1015 AS=0
1020 IF PEEK(AI)127 THEN 1020
1030 FOR WE=1 TO 7
1050 IF PEEK(AI+EW)〉127 TNEN
AS=AS+2^(WE-1)
1060 NEXT
1065 POKE AO,0
1070 IF AS=0 THEN END
1080 PRINT CHR $ (AS):GOTO 1015