找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1531|回复: 0
收起左侧

从BASIC稿纸打印谈走起_我的计算机之旅

[复制链接]
ID:886808 发表于 2021-3-20 09:56 来自手机 | 显示全部楼层 |阅读模式
从BASIC开始_我的计算机之旅
上世纪80年代,小霸王任天堂游戏机在我国盛行,所有男孩都渴望得到一台,当然也包括我的儿子。买游戏机差不多要上千元,我从杂志广告上看到了北京某高校处理二手电脑,就花了600元,买个电脑。是类似浪潮长城0520一类的PCXT,主处理器是与8086同时代的8088,协处理器是8087。主频4.75m内存470kb,还不够基本内存640k。20m硬盘,5吋软驱,但可以一边学电脑一边玩游戏了圆了我和孩子的计算机之梦。BASICS几乎是所有学电脑的人必修课。用双拼五笔学打字,编写BASIC程序。我91年之后的工作总结方案等全用它处理。我用BASIC编写了打印程序,打印稿纸,又美观又弥补了了我字不好看的不足。
90年代我到大连女儿家,把一台闲在那没人会用的康柏486_45弄来。这台电脑主频45m,1m内存,200m的硬盘,5吋软驱。是亲家母在大连作会计别人抵账的一台电脑。安恩DOS6.2系统,里面一一有win3.1。我用扩容软件把硬盘扩到500m。费了九牛二虎之力去有电脑的单位弄来一套10张5寸盘win95操作系统又找了一套H2.13汉字系统。字处理也完全放弃了BASIC,找到当时还算先进的CCED5.0我也算是鸟枪换炮了。当时单位有程控电话交换机用的80列针式打印机我用来打印文件。
当时的文件都是用BASIC编写的,思路就是用制表符先打出稿纸上半部分,然后从稿件中取字,用制表符的竖线插在汉字中间打印。之后再打印下半部分。就这样一行行打印。虽然说慢,但终究能打出稿纸,而且每行字数字体字号都可选,字是在稿纸格子正中间。
1998年实行财务电算化管理,我们去长春亚泰买来当时先进的方正奔腾二300。主频达到了300m,内存64m,6G硬盘,我成了电脑的实际操控者。2000年我到二女儿家,把她家淘汰下来的k6-266带回来,是与奔腾二同代电脑,我个人用。操作系统也换成了win98,OfflCE97。后来金山WPS有稿纸打印功能了,字是靠在底线上的。退休后移居大连,在公司做网站,电脑又由移动便携式向笔记本发展。现在的手机比那时的电脑功能不知强多少倍,我学单片机一直用我的富士笔记本,后坏了烧写C51程序时,试了几台都不好用,就找出多年前的笔记本又用起来一直到今天。都是当年的神舟。附后的程序是BASIC的稿纸打印程序,可以看出电脑自动编译出C语言。我也是刚刚翻出二十多年前的程序发现的。照片是CCED调H2.13字库打印稿纸情况,和我现在用的C51编程电脑。
附稿纸打印BASIC程序:
413 SCREEN 1
414 CLS:COLOR 9,4:PRINT
415 PRINT "       BASIC  稿 纸 打 印 程 序                  V1.0   97.12               __________________________________"
420 PRINT "                                          使 用 说 明 :                                                                      在 标 号 4 0 0 以 内 输 入 文 章 。                                          格 式 为    :"
425 PRINT
430 PRINT " < 标 号 > < DATA > 如 开 头 有 空 格 则                                          空 格 前 加 西 文 引 号 。"
435 PRINT
440 PRINT "  逗 号 分 隔 ; 回 车 返 回 。                                                    空 格 进 入 显 示 、打 印 功 能 。"
450 G$=INKEY$:IF G$="" THEN 450
460 IF G$=CHR$(13) THEN SCREEN 2: END
470 IF G$=CHR$(32) THEN SCREEN 2: GOTO 490
480 IF G$<>CHR$(13) OR G$<>CHR$(32) THEN 450
490 CLS
500 INPUT " 请 输 入 组 数 :";M
510 GOSUB 2000
520 CLS
535 INPUT "   计 页 方 式 : 1 - 不 计 ; 2 - 左 计 ; 3 - 中 计 ; 4 - 右 计                        请 选 择 1 - 4 ";JY
536 IF JY <0 OR JY>4 THEN 535
538 INPUT "     请 输 入 起 始 页 号 数 :";YHS
539 IF YS <0  THEN 538
540 INPUT "请 输 入 每 页 行 数 :";HS:ZS=18
541 CLS :PRINT "          ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~                                         1 : 显  示 ,  2 : 打  印 ,  3 : 退  出                                          ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "
542 INPUT "请 选 择  1 - 3  ";H
543 IF H < 0 OR H > 3 THEN 543
544 IF H = 1 THEN 1550
545 IF H = 2 THEN 547
546 IF H = 3 THEN END
547 INPUT "       请 准 备 打 印 , 开 始 打 印 吗 ( Y/N )";P$
548 IF P$="" THEN 548
549 IF P$= "Y" OR P$= "y" THEN 550
550 Z=36:HJS=0:ZJS=0:P=O:YS=YHS:RESTORE
555 LPRINT THF$
560 FOR K=1 TO M
565 READ A$
570 L=LEN(A$)
580 FOR I=1 TO L STEP 2
590 AM$=MID$(A$,I,2)
600 IF ASC(AM$+"AM")=42 THEN 2700
603 IF ASC(AM$+"AM")=92 THEN 2750
605 IF ASC(AM$+"AM")=94 THEN 2900
606 IF ASC(AM$+"AM")=38 THEN 2920
607 IF ASC(AM$+"AM")=35 THEN 2940
608 IF ASC(AM$+"AM")=36 THEN 2970
610 IF ASC(AM$+"AM")=64 THEN 2822
615 IF ZJS=0 THEN LPRINT"┎─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┒":GOTO 625
620 IF ZS-ZJS=1 THEN LPRINT "│";AM$;"┃":LPRINT "┖─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┚":LPRINT :LPRINT :ZJS=0:HJS=HJS+1:GOTO 640
625 IF ZJS=0 THEN LPRINT "┃";AM$;:ZJS=ZJS+1:GOTO 631
630 LPRINT "│";AM$;:ZJS=ZJS+1
631 IF JY=2 THEN YSS=20
632 IF JY=3 THEN YSS=38
633 IF JY=4 THEN YSS=66
640 IF HJS=HS THEN HJS=0 :GOSUB 720
650 NEXT I
660 NEXT K
680 FOR GS=1 TO ZS-ZJS
690 LPRINT"│  ";:NEXT GS
691 IF P>1 THEN LPRINT"│  ";:GOTO 692
692 LPRINT "┃"
693 LPRINT "┖─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┚":LPRINT :LPRINT
694 FOR J=1 TO (HS-HJS-1)
695 LPRINT "┎─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┒"
696 LPRINT "┃  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  ┃"
697 LPRINT "┖─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┚":LPRINT :LPRINT
698 NEXT J
699 IF JY<>1 THEN LPRINT:LPRINT TAB(6)"`^2@A`";ZS;"×";HS;"=";ZS*HS;TAB(YSS)"第";YS;"页"
700 PRINT "       打 印 结 束 . 回 车 返 回 .  "
710 E$=INKEY$:IF E$="" THEN  710
715 IF E$<>CHR$(13) THEN  710
716 GOTO 541
720 IF JY<>1 THEN LPRINT:LPRINT TAB(6)"`^2@A`";ZS;"×";HS;"=";ZS*HS;TAB(YSS)"第";YS;"页"
725 PRINT "       请 换 页 , 回 车 继 续 , 第";YS"页"
726 YS=YS+1
727 LPRINT THF$:LPRINT:LPRINT:LPRINT
730 E$=INKEY$:IF E$="" THEN 730
740 IF E$<>CHR$(13) THEN 730
750 RETURN
1550 Z=ZS*2:HJS=0:ZJS=0:YS=YHS
1560 FOR K=1 TO M
1565 READ A$
1570 L=LEN(A$)
1580 FOR I=1 TO L STEP 2
1590 AM$=MID$(A$,I,2)
1600 IF ASC(AM$+"AM")=42 THEN 3700
1603 IF ASC(AM$+"AM")=92 THEN 3750
1605 IF ASC(AM$+"AM")=94 THEN 3900
1606 IF ASC(AM$+"AM")=38 THEN 3920
1607 IF ASC(AM$+"AM")=35 THEN 3940
1608 IF ASC(AM$+"AM")=36 THEN 3970
1610 IF ASC(AM$+"AM")=64 THEN 3800
1620 IF ZS-ZJS=1 THEN PRINT AM$:ZJS=0:HJS=HJS+1:GOTO 1640
1630 PRINT AM$;:ZJS=ZJS+1
1640 IF HJS=HS THEN HJS=0 :GOSUB 1720
1650 NEXT I
1690 NEXT K
1700 PRINT "       显 示 结 束 . 回 车 返 回 .  "
1710 E$=INKEY$:IF E$="" THEN 1710
1715 IF E$<>CHR$(13) THEN 1710
1716 GOTO 541
1720 PRINT "     (";YS;")"
1725 PRINT "                请 换 页 , 回 车 继 续, 第";YS"页"
1726 YS=YS+1
1730 E$=INKEY$:IF E$="" THEN 1730
1740 IF E$<>CHR$(13) THEN 1730
1750 RETURN
2000 CLS
2010 PRINT "            ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~                                                       1 - 宋  体  ;  2 - 仿  宋                                                       3 - 黑  体  ;  4 - 楷  体 "
2020 INPUT "            ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~                                                       选  择  字  体  号 " ;TH
2030 IF TH=1 THEN THF$="`&3^2@c`":GOTO 520
2040 IF TH=2 THEN THF$="`&3^2@g`":GOTO 520
2050 IF TH=3 THEN THF$="`&3^2@k`":GOTO 520
2060 IF TH=4 THEN THF$="`&3^2@o`":GOTO 520
2700 FOR GS=1 TO ZS-ZJS
2710 LPRINT "│  ";
2720 NEXT GS
2725 IF P>1 THEN LPRINT"│  ";:GOTO 2730
2730 LPRINT "┃"
2740 LPRINT "┖─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┚" :LPRINT :LPRINT :ZJS=0:HJS=HJS+1:GOTO 640
2750 LPRINT "┎─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┒"
2760 LPRINT "┃  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  │  ┃"
2770 LPRINT "┖─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┚":LPRINT :LPRINT :HJS=HJS+1:GOTO 640
2822 IF AM$="@1" THEN LPRINT "`@c`";:GOTO 640
2826 IF AM$="@2" THEN LPRINT "`@g`";:GOTO 640
2830 IF AM$="@3" THEN LPRINT "`@k`";:GOTO 640
2834 IF AM$="@4" THEN LPRINT "`@o`";:GOTO 640
2841 IF AM$="@ " THEN LPRINT THF$;:GOTO 640
2842 IF AM$="  " THEN 640
2940 IF AM$="#0" THEN LPRINT "`%0`";:GOTO 640
2941 IF AM$="#1" THEN LPRINT "`%1`";:GOTO 640
2942 IF AM$="#2" THEN LPRINT "`%2`";:GOTO 640
2943 IF AM$="#3" THEN LPRINT "`%3`";:GOTO 640
2944 IF AM$="#4" THEN LPRINT "`%4`";:GOTO 640
2945 IF AM$="#5" THEN LPRINT "`%5`";:GOTO 640
2946 IF AM$="#6" THEN LPRINT "`%6`";:GOTO 640
2947 IF AM$="#7" THEN LPRINT "`%7`";:GOTO 640
2950 IF AM$="#;" THEN LPRINT "`;`";:GOTO 640
2951 IF AM$="#\" THEN LPRINT "`\`";:GOTO 640
2952 IF AM$="#_" THEN LPRINT "`_`";:GOTO 640
2953 IF AM$="#/" THEN LPRINT "`/`";:GOTO 640
2954 IF AM$="#(" THEN LPRINT "`(`";:GOTO 640
2955 IF AM$="#+" THEN LPRINT "`+`";:GOTO 640
2956 IF AM$="#-" THEN LPRINT "`-`";:GOTO 640
2957 IF AM$="#)" THEN LPRINT "`)`";:GOTO 640
2958 IF AM$="#=" THEN LPRINT "`=`";:GOTO 640
2959 IF AM$="#?" THEN LPRINT "`?`";:GOTO 640
2960 IF AM$="#!" THEN LPRINT "`!`";:GOTO 640
2961 IF AM$="# " THEN LPRINT "`?=!%0`";:GOTO 640
2962 IF AM$="  " THEN 640
3700 ZJS=0:HJS=HJS+1: PRINT :GOTO 1640
3750 HJS=HJS+1: PRINT :GOTO 1640
3800 PRINT AM$;:GOTO 1640
3900 PRINT AM$;:GOTO 1640
3910 PRINT AM$;:GOTO 1640
3920 PRINT AM$;:GOTO 1640
3930 PRINT AM$;:GOTO 1640
3940 PRINT AM$;:GOTO 1640
3950 PRINT AM$;:GOTO 1640
NT AM$;:GOTO 1640
3920 PRINT AM$;:GOTO 164
那时的程序都标有行号。
附照片是CCED打印程序截图,BASIC文件目录和BASIC文件稿。当时不打印看不出实际效果,可以先在屏幕上观看再打印。
IMG_20210320_091524.jpg
IMG_20210320_091238.jpg
Screenshot_20210320_073905_com.huawei.hidisk.jpg
Screenshot_20210320_082248_cn.wps.moffice_eng.jpg
Screenshot_20210320_082331_cn.wps.moffice_eng.jpg

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表