APPLE打印卡巧作并行输入接口 王志刚 1992-05-15 APPLE打印卡为并行输出接口,其主要电路如图所示。8位数据经U1销存送出,另有三根控制信号线,STB为输出选通信号,ACK和BUSY为外设的响应和忙状态输入线,这两根输入经经多路选择器(74LS251)连接到系统数据总线的D7位。多路器能对8路进行输入选择,ACK和BUSY分别占用了第0和第4路,另有6路没使用,故此,不用增加任何硬件,利用这6路及BUSY占用的第4路,便可构成一个准7位的并行输入接口,连线如图虚线部分所示。利用卡上的STB作输入准备好选通信号,多路器的0路转作输入设备数据可用状态信号。 二、地址与各路的关系 因多路器原有的输入选择接线法,使按位输入时的顺序有所改变,为了使各路地址连续,组成一个新的字节顺序应是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