为自己的PC-81微机配上一台打印机该多好啊!然而多针点阵式打印机价格却大大高于主机,为此笔者为该机开发了使用价格低廉的四色绘图打印机的接口。
图1是PC-81微机四色绘图打印机接口电路图。其中右边虚线框内是CE-150型四色绘图打印机头简明原理图。X步进电机控制笔左右移动,Y步进电机控制纸的进退,极化电磁铁控制落笔或抬笔,还有一只干簧管用来检测0号笔是否到位。

当主机访问$0FBH(打印机口地址)时,相应的地址信号7A~0A为11111011,除2A=0外,其余均为1;IORQ-一般为高电平;A点将送出一个正脉冲。此时若RD-=0(读有效),则B点产生一个负脉冲,它将使D1打开,D1输入端(1A~4B)内容便会送给输出端(1YA~4YB)从而将打印机状态传给主机,若WR-=0,即写有效,则C点将会产生一个正脉冲,主机数据总线7D~0D送来的数据便会通过D2送给D3,D3将主机数据译码为打印头控制信息,通过驱动电路控制打印头运动。7D~0D对打印头的控制请见表1。

当任何一只步进电机工作时,指示灯V1发光,当电磁铁通电工作时,指示灯V2发光。若计算机受到外界强电磁脉冲干控或人为操作失误,引起控打软件工作失常,可能造成步进电机或电磁铁长时间通电发热,这时指示灯将一直亮着,当发现这一情况后应立即按下复位键,RST-置低电平将锁存器清零,以保护步进电机和电磁铁。应注意的是R1系列机中有的机器的RST-插线是悬空的并没有与CPU26脚接通,这需要自己动手用细导线接上。
器件有74HC00(D6)、74H04(D4)、74HCll(D5)、74HC244、74HC273和CD4555(HD 14555),这些芯片的电源可直接取用主机+5V电源。打印机头驱动部分(D7和极化电磁铁驱动电路)借用了CE-150四色绘图打印机的相应部分,这部分的电源应单独用一只7805稳压供给,但应注意与主机地线可靠地连接,打印机头(包括极化电磁铁)的平均工作电流约为0.4A,频繁地进行抬、落笔操作会大大增加平均工作电流,因此在软件设计中应尽可能减少抬、落笔操作次数。
装调好这个接口电路,就可以通过向$0FBH写数据控制打印头工作了。为了方便实际编程,笔者还编制了一套功能完整的控制打印子程序。它们是:①打印机接口程序(入口地址1E 47 H);②打印机初始化子程序(入口地址1EB0H);③装纸子程序(1F81H),进纸6行子程序(1F7DH);④退1行,6行子程序(1F95H,1F91H);⑤更换笔色子程序(1F1 CH);⑥字符打印子程序;⑦坐标跟踪子程序。无论是BASIC状态还是监控及汇编状态,打印的命令或语句都通过字符打印子程序,查找字库得到该字符的笔画坐标,然后调用坐标跟踪子程序具体地在纸上描绘出字符。上述这些程序所占内存容量已超过原来的打印驱动程序的容量,其中①~⑤及原机ROM内容固化到EPROM中,⑥⑦存放在录音磁带中。关于这些软件的编制思想,限于篇幅这里就不再叙述了。这里仅介绍一些有关的内容。原机的点阵打印机打印子程序在ROM中的地址为1E47H~1FFFH,新的控制打印软件①—⑤项内容就安排在这个空间。余下的⑥⑦两项内容从外存(磁带)调入RAM空间的末尾。另外BASIC命令COPY的入口地址为1E47H,LLIST及LPRINT的入口地址为1E56H。
在执行打印机初始化程序,装入字库,控制打软件⑤⑥部分及其控制向量后,整个打印系统可投入使用了。由于在设计时已经考虑了与原系统兼容,因此原系统的全部打印命令继续有效,仔细阅读你们现有的BASIC说明书,监控、汇编说明书即可。唯一不同的是我们的字符打印程序借用了TEMPO参数所对应的系统单元(402lH),作为字体控制,该单元的位设置见表2所示。程序1是打印出“ABC”各种字体的程序,10语句设置为大字体并保留2列点距,20语句打出该清单,30语句产生一个跳行,40语句打出有间距的“ABC”,50语句的设置取消了间距,60语句打出没有间距的“ABC”,70语句设置为下标小字,80语句打出下标“ABC”,90语句设置为上标小字,100语句打出上标“ABC”。

实现汉字及特殊图形的打印也是很方便的,限于篇幅这里就不再介绍了。
程序1:
10 TEMPO 25
20 LLIST
30 LPRINT“ ”
40 LPRINT“ABC”;“ ”;
50 TEMPO 64
60 LPRINT“ABC”;“ ”;
70 TEMPO 128
80 LPRINT“ABC”;
90 TEMPO 160
100 LPRINT“ABC”;
执行结果:(LLIST清单略)
ABC ABC\(_{ABC}\)\(^{ABC}\)
(重庆邮电学院电子协会 张曹勇)