|
從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文件稿。當時不打印看不出實際效果,可以先在屏幕上觀看再打印。 |
評分
-
查看全部評分
|