(刘企慎)本刊1989年第五期刊登了“用屏幕作图方式生成形态表数据”一文,其中的形态表生成程序是颇具特色的。
然而该程序生成的仅是一幅图形的形态表数据,没能生成形态表,更没有生成形态表目录,使人感到美中不足。为此笔者给它补充了若干语句,使其能够直接生成多幅图形的形态表以及形态表的目录。补充的语句清单附后。
补充后的程序运行开始后,机器首先问你要编制的图形的总数,应用数字键予以回答;其后的操作和原程序一样。按了“E”(结束)键后,屏幕上即显示出所作的图形的形态表(地址和数据)以及用此形态表所作的图形,稍后即进入下一幅图形形态表的编制过程。当预定的形态表全部编制完毕,屏幕上即提示你将形态表存入磁盘,并告诉你形态表目录的起始地址以及形态表及其目录总的字节数。
补充的语句主要有:25行确定要作的图形的总数(ZS),形态表目录的起始地址以及形态表第一个数据的存放地址(RK),这样自然开辟了目录的内存空间;35行语句确定当前编制的形态表的顺序号(XZ),将该表目录内容DL(低字节)和DH(高字节)存入目录中(AL和AL+1);435行填写形态表;程序运行到416语结束。这里从地址768($300)开始存放有关数据,如果数据多于256字节则进入了文本显示的第一页空间。为了避免这样的情况,只要对25、35、416三行语句进行修改,即可从其它地址开始存放数据。修改时要注意避免和存放程序或变量的空间发生冲突。
原程序中390行的PR#1:PRINT CHR$(17):以及410行的PR#0:END均予删去。
25 XZ=0:INPUT“ZONGSHU”;ZS:POKE
768,ZS:POKE 769,0:POKE 232,0:
POKE 233,3:RK=770+2*ZS
35 XZ=XZ+1:AL=768+2*XZ:DH=INT
(RK-768)/256):DL=RK-768-256*
DH:POKE AL,DL:POKE AL+1,DH
55 Y1=0:Z=0:L=0:K=0
415 IF XZ<ZS THEN GOTO 35
416 TEXT:PRINT“OING NIN CUN PAN!”:
PRINT:PRINT:PRINT:PRINT TAB(12);
“ADDRESS:”;TAB(22):“768”:PRINT;
PRINT:PRINT TAB(12);“LONG:”;
TAB(22); RK-768:END
435 POKE RK,W:PRINT TAB(12);RK;
“:”;
442 PRINT“ ”;:RK=RK+1