APPLE打印卡巧作并行输入接口

Author: 王志刚 Date: 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