|
從BASIC開(kāi)始_我的計(jì)算機(jī)之旅
上世紀(jì)80年代,小霸王任天堂游戲機(jī)在我國(guó)盛行,所有男孩都渴望得到一臺(tái),當(dāng)然也包括我的兒子。買(mǎi)游戲機(jī)差不多要上千元,我從雜志廣告上看到了北京某高校處理二手電腦,就花了600元,買(mǎi)個(gè)電腦。是類(lèi)似浪潮長(zhǎng)城0520一類(lèi)的PCXT,主處理器是與8086同時(shí)代的8088,協(xié)處理器是8087。主頻4.75m內(nèi)存470kb,還不夠基本內(nèi)存640k。20m硬盤(pán),5吋軟驅(qū),但可以一邊學(xué)電腦一邊玩游戲了圓了我和孩子的計(jì)算機(jī)之夢(mèng)。BASICS幾乎是所有學(xué)電腦的人必修課。用雙拼五筆學(xué)打字,編寫(xiě)B(tài)ASIC程序。我91年之后的工作總結(jié)方案等全用它處理。我用BASIC編寫(xiě)了打印程序,打印稿紙,又美觀又彌補(bǔ)了了我字不好看的不足。
90年代我到大連女兒家,把一臺(tái)閑在那沒(méi)人會(huì)用的康柏486_45弄來(lái)。這臺(tái)電腦主頻45m,1m內(nèi)存,200m的硬盤(pán),5吋軟驅(qū)。是親家母在大連作會(huì)計(jì)別人抵賬的一臺(tái)電腦。安恩DOS6.2系統(tǒng),里面一一有win3.1。我用擴(kuò)容軟件把硬盤(pán)擴(kuò)到500m。費(fèi)了九牛二虎之力去有電腦的單位弄來(lái)一套10張5寸盤(pán)win95操作系統(tǒng)又找了一套H2.13漢字系統(tǒng)。字處理也完全放棄了BASIC,找到當(dāng)時(shí)還算先進(jìn)的CCED5.0我也算是鳥(niǎo)槍換炮了。當(dāng)時(shí)單位有程控電話(huà)交換機(jī)用的80列針式打印機(jī)我用來(lái)打印文件。
當(dāng)時(shí)的文件都是用BASIC編寫(xiě)的,思路就是用制表符先打出稿紙上半部分,然后從稿件中取字,用制表符的豎線(xiàn)插在漢字中間打印。之后再打印下半部分。就這樣一行行打印。雖然說(shuō)慢,但終究能打出稿紙,而且每行字?jǐn)?shù)字體字號(hào)都可選,字是在稿紙格子正中間。
1998年實(shí)行財(cái)務(wù)電算化管理,我們?nèi)ラL(zhǎng)春亞泰買(mǎi)來(lái)當(dāng)時(shí)先進(jìn)的方正奔騰二300。主頻達(dá)到了300m,內(nèi)存64m,6G硬盤(pán),我成了電腦的實(shí)際操控者。2000年我到二女兒家,把她家淘汰下來(lái)的k6-266帶回來(lái),是與奔騰二同代電腦,我個(gè)人用。操作系統(tǒng)也換成了win98,OfflCE97。后來(lái)金山WPS有稿紙打印功能了,字是靠在底線(xiàn)上的。退休后移居大連,在公司做網(wǎng)站,電腦又由移動(dòng)便攜式向筆記本發(fā)展。現(xiàn)在的手機(jī)比那時(shí)的電腦功能不知強(qiáng)多少倍,我學(xué)單片機(jī)一直用我的富士筆記本,后壞了燒寫(xiě)C51程序時(shí),試了幾臺(tái)都不好用,就找出多年前的筆記本又用起來(lái)一直到今天。都是當(dāng)年的神舟。附后的程序是BASIC的稿紙打印程序,可以看出電腦自動(dòng)編譯出C語(yǔ)言。我也是剛剛翻出二十多年前的程序發(fā)現(xiàn)的。照片是CCED調(diào)H2.13字庫(kù)打印稿紙情況,和我現(xiàn)在用的C51編程電腦。
附稿紙打印BASIC程序:
413 SCREEN 1
414 CLS:COLOR 9,4:PRINT
415 PRINT " BASIC 稿 紙 打 印 程 序 V1.0 97.12 __________________________________"
420 PRINT " 使 用 說(shuō) 明 : 在 標(biāo) 號(hào) 4 0 0 以 內(nèi) 輸 入 文 章 。 格 式 為 :"
425 PRINT
430 PRINT " < 標(biāo) 號(hào) > < DATA > 如 開(kāi) 頭 有 空 格 則 空 格 前 加 西 文 引 號(hào) 。"
435 PRINT
440 PRINT " 逗 號(hào) 分 隔 ; 回 車(chē) 返 回 。 空 格 進(jìn) 入 顯 示 、打 印 功 能 。"
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 " 請(qǐng) 輸 入 組 數(shù) :";M
510 GOSUB 2000
520 CLS
535 INPUT " 計(jì) 頁(yè) 方 式 : 1 - 不 計(jì) ; 2 - 左 計(jì) ; 3 - 中 計(jì) ; 4 - 右 計(jì) 請(qǐng) 選 擇 1 - 4 ";JY
536 IF JY <0 OR JY>4 THEN 535
538 INPUT " 請(qǐng) 輸 入 起 始 頁(yè) 號(hào) 數(shù) :";YHS
539 IF YS <0 THEN 538
540 INPUT "請(qǐng) 輸 入 每 頁(yè) 行 數(shù) :";HS:ZS=18
541 CLS :PRINT " ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 1 : 顯 示 , 2 : 打 印 , 3 : 退 出 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ "
542 INPUT "請(qǐng) 選 擇 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 " 請(qǐng) 準(zhǔn) 備 打 印 , 開(kāi) 始 打 印 嗎 ( 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;"頁(yè)"
700 PRINT " 打 印 結(jié) 束 . 回 車(chē) 返 回 . "
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;"頁(yè)"
725 PRINT " 請(qǐng) 換 頁(yè) , 回 車(chē) 繼 續(xù) , 第";YS"頁(yè)"
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 " 顯 示 結(jié) 束 . 回 車(chē) 返 回 . "
1710 E$=INKEY$:IF E$="" THEN 1710
1715 IF E$<>CHR$(13) THEN 1710
1716 GOTO 541
1720 PRINT " (";YS;")"
1725 PRINT " 請(qǐng) 換 頁(yè) , 回 車(chē) 繼 續(xù), 第";YS"頁(yè)"
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 " ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 選 擇 字 體 號(hào) " ;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
那時(shí)的程序都標(biāo)有行號(hào)。
附照片是CCED打印程序截圖,BASIC文件目錄和BASIC文件稿。當(dāng)時(shí)不打印看不出實(shí)際效果,可以先在屏幕上觀看再打印。 |
評(píng)分
-
查看全部評(píng)分
|