Title
パソコンでのアンケート・データの入力および修正方法
の事例研究−表形式化とカーソル・キーによる入力・修
正作業の迅速正確化−
Author(s)
阿部, 亮一
Citation
沖大経済論叢 = OKIDAI KEIZAI RONSO, 11(1-2): 25-58
Issue Date
1987-03-31
URL
http://hdl.handle.net/20.500.12001/6757
パソコンでのアンケート・データ
の入力および修正方法の事例研究
上とカーソル・キーによる入力・修正作業の迅速正確化一阿部亮一
-表形式化とカーソル はじめに 1コンピュータ適用に際しての「調査」の問題点 2初めに作成したデータ入力プログラム(旧版) (1)プログラムを自作した理由 (2)データ入力用プログラムの条件 (3)プログラムの概要 (4)プログラムの実行例と問題点 (5)キー入力の自動処理 3新版データ入力用プログラムの特徴 (1)表形式カーソル移動入力法採用の経緯 (2)新版プログラムのその他の特徴 4新版プログラムの内容と実行結果 (1)新版プログラムの構成 (2)データ圧縮の実際 (3)疑似カーソルをめぐる工夫 (4)プログラムの実行結果 おわりに はじめに 筆者は、1985年度末に、同年度から3年間にわたる文部省科学研究費助成 -25-対象研究「戦後沖縄における社会変動と家族問題に関する総合的研究」の研究
グループ(筆者の奉職する沖縄大学の教員20名が主力。代表、新崎盛暉沖縄
大学教授)の依頼により、同グループが沖縄県のほぼ全域にわたって1千数百
家族を対象に実施した大規模な面接アンケート調査のパーソナル・コンピュータ(以下、パソコンと略称する)による処理を引き受け、作業の大半は終って
いるが、こみいった-部のデータ解析の作業は現在も続けている。この処理に使用したパソコンの機種は、16ビット型のわが国での標準機種
といわれているNEC社製のPC-9800シリーズの初期Version、9801 E型で、これに、メモリーを増設し、2連の8インチフロッピーデスクドライプ(1.0データ社製PFD-8)と80桁印字のプリンター(プラザー社製M-102
4P)を接続していろ。使用言語は、急きょ依頼されたこともあって、データ
入力段階では、使いなれたパソコン本体付属の日本語DiskBasic(PC-98H87(K))を用いた。しかし、処理する段階では、プロッピーディス
クから-件毎に呼び出す時間の消費と機器への影響を避けるため、増設メモリー上に全データを展開して、電子的に処理できるOS(OpeatingSystem)
の今日の主流、MS-DOS上のBasicへ移行せざるをえなかった。 ところで、この一連の作業は、後述のように、当初の予想以上に困難をとも ない、多くの時間と労力を費消することになった。 こうした困難を一つずつ克服ないし回避しながら、千件を越えるデータを入 力し、いくども全件について修正を加え、これを別のOS上のファイルにcon- vertし、幾多の解析プログラムを検討作成して沢山の結果を得て、作業は、 ほぼ終了する段階にいたっていろ。そこで、今後似たような例が多く出てきて、その際に参考になるところも少なくないであろうと考え、この事例で学んだこ
との一部を発表することにした。1コンピュータ適用に際しての「調査」の問題点
先に、この一連の作業は、当初の予想以上に困難をともない、多くの時間と -26-労力を費消することになったと述べたが、まずこれについてみていこう。 まず、この「沖縄県における家族の実態と意識に関する調査」と題するアン
ケート調査表が、その質問設定と回答形式において、コンピュータ処理を前提
にしたものになりきっていなかった。第2に、分析の目的が設問毎に具体的に明示されておらず、関係者にいくど
も説明を求めてプログラムを作り直しあるいは原データの修正までしなければ ならない場面も少なくなかった。当方で「適当に」推測して方法を決定してしまわざるをえないこともあった。さらに、とりあえず行った分析結果をみて分
析の方法や基準を再調整するといった方針もみられた。
第3に、通常、特にコンピュータ処理の際にはほとんどの場合作成されその
後の処理を容易かつ確実化するための1件ごとの集計一覧表が作成されておら
ず、2つの項目の書かれた表紙を含めてB4版5ページの、訂正や書き込みの ある原調査表が、データ入力の資料としてあたえられた。第1の例を上げれば、回答者や同部落出身等を特に区別するために、回答を
丸印で囲ませるようになっていろ。これは、コンピュータ用には、新たな回答
欄の設定で処理するのが普通である。また、調査対象、この場合家族の基本的
な特徴を把握するためのフェース・シートと呼ばれる一覧表は、当初処理の依
頼を予定していた業者の要請もあったとかで、マーク・シート式になっている
が、家族分類上、もっとも重要な「続柄」が記述式で書かれ、コード化されて いなかった。このため、専門外の筆者が「続柄」コード表を、この研究グループのまとめ役であった金城一雄沖縄大学助教授らと協議しつつ作成しなければ
ならなかった。表1がその結果であり、急ごしらえながら、2桁で比較的明瞭
な基準で分類でき、家族類型の分類の際には、少数の例外を人手に委ねて、後
は自動処理するという、成果を上げた(単純な構成の家族が多かったことに大 いに助けられているが)。しかしこれは、筆者が当初依頼されなかった仕事ま で背負わざるをえなくなり、事実上このグループの研究作業に参加することに なる1歩であった。 加えて、分析対象として意義の薄い被扶養の年少者まで、成人と同じく学歴、 -27-表1続柄コード 世帯主00配偶者(女:妻)01(男:夫)02 子(男:x番目)1x子(女:x番目)2xその配偶者(男)18(女)28 孫(男)19孫(女)29
親:父30(主の)31(配の)32祖父38
母35(主の)36(配の)37祖母39
兄弟:兄40(主の)41(配の)42同妻43鴎4A砺4B
弟45(主の)46(配の)47同妻481司息4C同女4,
姉妹:姉50(主の)51(配の)52同夫53同息5A同女5B
妹55(主の)56(配の)571司夫58同息5C同女5,
叔父:60(主の)61(配の)621司妻63同息6A同女6B
(従),L弟)(従lIIli妹)叔母:65(主の)66(配の)671司夫68同息6C同女6,
その他姻戚(不明)男70,女71(主の)男73,女74(配の)男75,女76
非姻戚仕事上80下宿81教育82その他85職業、転職歴等の項目のある1行を与え、全員を同様に登録していた。このた
め、本研究に用いたDiskBasicのランダム・ファイル形式(後述)では、
1件(レコードRecordと呼ぶ)分の記憶(メモリーMemories)サイズが
256バイトに制限されているのに、最大の家族員数~この調査では、11名一
にあわせた広い記憶領域を確保しなければならなくなり-特に工夫しなければ
1人当り16バイトBytesを要するので、計176バイト三主目的の質問回
答のスペースを、そのままではわずか80バイト分しか許さない事態となった。
そこで、データ圧縮に腐心させられることになった。(分析の結果からみて
も、15才以下は、続柄、性別、年齢階層の4バイトで十分であったと思われ
ろ。未就労の高校生も同様に扱いうる。これらを別枠で処理したら、単純な方
法では3分の1にあたる60バイト以上も節約できたはずである。)
曲lまた、回答肢をいくつでも選択させる多重回答の質問が、実質22問もあ
り、その書き込みには単純な方法ではその肢数分の多くのバイト数を要するか
ら、データ圧縮は不可欠であり、データ復元を含めてその方法の検討とプログ
-28-ラム化にも多くの時間を割かれた。 第2の点については、例えば住宅の広さを絶対値で書かせたものの分析の意 図や基準が不明のため、筆者が推測して階層分けしなければならなかった。ま た、この種の研究では、地域分類と家族類型分類は極めて重要な意義を持って いるが、そのためもあって、当初は、傾向を見ろために非常に細かい分類を求 められ、各問についての集計結果を見てから、再分類を要求されろという作業 の繰り返しが行われた。このため合計8檀類の分類のため項目をデータ末尾に 加えることになった。 第3の点については、学生によるデータ入力作業において、頁めくりや目の 移動、書き込みに気を取られることなどから、速度と正確さにかなりの影響が
出たことは、確かである。対策として、読み手と打ち手の分業化をはかったが、
生産性の落ちるのは避けられなかった。もっとも、彼らが読むことによって、 全体的な傾向を聞くことができ、常識的におかしなデータをいくつも発見して くれ、修正の好機となったことも事実であるが。 あえて一覧表を作成する必要は、その手間から、必ずしもないと思われるが、 調査員が書き込む形式であったから、回答欄を初めから一枚にまとめておけた であろうし、せめて各ページの右端に見やすく設定しておくべきであったろう と思われろ。 ㈱lここでは、「3つ選べ」といった特定の回数回答させる場合は、単に 「多回答」と呼んで区別することにする。多回答の場合の処理は、回答回数分 だけ桁数を設け順次入力・分析すればよいので、簡単である。 2初めに作成したデータ入力プログラム(旧版) ともかく、こうした困難を一つずつ克服ないし回避しながら、最終段階を迎 一29-えたとの実践的研究は、データをコンピュータにファイルとして登録するまで の前段と、それを読みだして具体的に分析する後段とに二分される。 その前段は、各項目データの構造とその集合であるレコード構成の確定、 データ入力プログラムの作成、そして入力作業の実施である。今回は、この中 心にあるデータ入力プログラムの検討に焦点をあてて報告しよう。 (1)プログラムを自作した理由 前述のように、表計算・分類用のプログラムは、既に多数商品化されており、 優れたものも多い。しかし、代表的ソフトのMuliplan(米国、MICROSOFT 曲2 社製)でさえ、1983年時点で63項目、255件の処理能力しかなく、本 件のような千件以上を対象とし、かついくつかの項目について複雑な加工を要 し、さらに3,4重クロス分析も想定される処理に柔軟に対応する市販ソフト は見いだせなかった。またあったとしても、入手は経済的に困難な状況であっ た。 ㈹3 そこで、以前、8ピット機を用いて基礎統計分析を行った経験を活かし て、より実用的なプログラムの開発をはかり、社会科学系研究へのパーソナ ル・コンピュータの利用の可能性と問題点、さらにはその反作用として研究側 に要請される方法上の変更等を、実践を通して学ぶという積極的な意図ももっ て、プログラムを自作することにしたのである。 閏2Multiplanは、その後数次にわたり機能強化され、1986年2月には、 縦4095行×横255列と64倍の広さを持ち、複数ファイル処理も可能にした Version20が発売されていろ(『Oh1PCj1986年4月号、157頁)。 それでも複数なデータ加工はできないか多くの手間を要するようである。
油31985年3月、『沖大経済論叢」’29号に、「初期型パソコンによる経
済基礎統計分析」と題して、PRINTUSING命令すらない、もっとも初期
の8ビット機、シャープ社製のMZ-80Kを用いて、経済基礎統計がどこま で分析できるかを試みたことがある。 -30-(2)データ入力用プログラムの条件 データ入力のためのプログラムは、次のような条件を満たす必要がある。 まず、キーボードに触れたこともないような、経験のない学生らに、その作
業を依頼することを考慮して、データやプログラムを壊すような誤操作を防
止しつつ、データの打ち込み作業ができるだけ正確かつ迅速にできること。 第2に、再点検と修正が、確実容易に行えること。 第3に、データの打ち込み作業は、調査表の記載どおりにすることを原則と し、メモリー節約のための加工は、プログラム側で行うこと。 第4に、データを高速かつ多様に利用できるようにすること。 このため、つぎのような仕様を定めた。 おもに、第1条件をみたすために、①キーボードの右側にある数字打ち込み専用のTENKEY部と、となり
のカーソルキー部のみで、操作できるようにする(他の部分は段ボール紙か薄 板でカバーを作り被ってしまう。これは原表を置く便利な台にもなったし、予 想外の誤操作を防ぐのに役立った)。アンケートや統計は、ほとんどが数字だ けで表現できるので、これは実現可能である。作業内容の切り替え指.定も、 MENU画面での数字による指定で処理できろ。 ②キー確認のクリック音をいれ、打ち損じや二重打ちを発見しやすくする。③項目毎に指定の字数(あるいは回数)キー入力すれば、自動的にメモリー
にいれ、次の項目に移動するようにする。項目数が、当初で162、最終的に 170もあり、キー入力結果をメモリーへ移動させるため通常要求される回 (リターン)キーの押し下げを回避できれば、時間の大幅な節約(1ス トローク、すなわち1バイトの項目が多数だから2分のl近い節約となる)と 疲労および誤操作の減少が期待されろ。他方、データがずれたまま記憶されて いく可能性は高まる。 第2のためには、④テン・キー上部にあるHELPキーを、修正ルーチンへの切り替えに使い、
データ打ち込み中でも、気付いた時点で修正作業にはいることができるように -31-した。
⑤1件分のデータを一括表示できるDISPルーチンも設定した。
さらに、第3第4のために、⑥修正や読みだしが自由かつ迅速にできるランダム・ファイルRandom
File形式を採用する。データをただ大量に記録するには、SequentialFile の形式が適しているが、各レコードが沢山の項目に分割ざれその任意の項 目間のクロス集計を次々に行ったりする目的には、時間がかかり過ぎたりする し、さらに本件のように、修正や、全体的な項目の追加が考えられる用途には、 向いていないので、採用しないことにした。⑦このため、1レコード256バイトの範囲に納まるよう、データの圧縮に
努めることにした。後述する年齢や出身地の項での2重化表現、重回答項目の 2進数化処理などがその部分であるが、そのために多くの試行錯誤を要した。 (3)プログラムの概要 こうして1986年はじめにできあがったのが、リスト1にその主要部分を示 した「FILEINPUTPROGRAM」であった。 リスト1旧版データ入力・訂正プログラム主要部 ,save,,F-IG1'’’日■■■■■■ロ■■FILEINPUTPROs.■■■■■■■■■■
CONSOLED,23,0,1:UlDTHBO,25:CLS
DEFINTA-YDIIvlP$(1B2),N$(162),QP(16)
LOCATE1D,B:PRII1T’,トヅ、ライブ2二〔FAr1FL〕デ、イスワヲィLL,,
LOCATE1D,12:INPUT,,用意デキタラRETし限NkEYヲオズ.”;A霞
ONERRORGOTO*ERRESC ONHELPGOSUB*REINP:HELPON GOTO*STH D=_-------__ご゜-----ご‐_~--- ̄ニー ̄_---- ̄---ニーーー_ ̄ ̄ ̄ ̄ ̄ニーニニ*BT:BT$=",,:BT=0,■■■DATAITE1'1S,BYTES■■■
BT2$=''3411212211111121221111112122111111212211111121221
1000 1mp 1020 1D3D 1040 105D 1DBO 1070 10BO 10gD 1100 1110 1120 -32-111112122111111212211111121221111112122111111212211111121221
11111322111111133333333333333331111111311121111111141"
1130
8T$=('110$(8T2$, I
pi):BT=\.)P!-(BT$)
:RETLlRt\J
1140
,---1150
*STH
:
1>(=0
'11111
OpenFi Ie "FAt'FL"
_ .
1160 OPS···J "2:
FAfvFL"
AS "1
1170 FOR 1=1 TO 162
1
180
OOSLfB
*BT :
t···J$(
I
)="" :
P$( I )
=" " :
FIELD ijl,IX AS
DL~$,BT-ASP$(!)
:IX~IX+BT1190
r...
e:x:r'
--"
1200
'******************************************************
12 10
*fvEr···JU
1220 CLS : LOCATE 30
I'2 : PRIt···lT
" t .
f'1Ef"'JU
• •"
1230
LOCATE
25,4
:PRIl···JT
"t
i)1=='''3?JY'Y]"'? 7 Ir\PUT
~."
1240
LOCATE
5,6 :
PF~Ir···JT '~Y~I*.Ji j~
=1
I'RET
~T
iE,
=3, RET
,.V.-9~~
=5,RET
~
7
=9,RET "
1250
I f···PUT S'-"I$
1260
IF
~I$="1" THEt\J GOTO
*START
1
1270
IF 9,,1$="3"
T~f\JGOTO *START2
1280
IF SW$="5 "
THEt···J
GOSLIB
*0
I
SPO
1290
IF
SW$="9"
THEf···J GOTO *CLOS
1300
GOTO
*r'Ef···JLJ
1310
'******************************************************
1320
*START 1
1330 CLS :
PR
I
r\JT :
PR I f···JT
"CY~=F)t··Jetrl.
Rec .
t···Jo •
=" ;
LOF( 1
)+1
1340
II···PLIT "t
4j=t=~3?
?
~~"9?-e3
C'~,1I~l''TJL=RET, etc
(···lEf···JU=/)";
A$1350
IF A$=" /" THE}·J GOT()
*f'1EJ"'JU
1360
RECf···J=LOF( 1
)+1 : 1=1
1370 GOSLIB
*
I f···JT I f"'P
1380 GOSUB *REC
1390
GOTO
*STARTI
1400 '=============================================
1410
*START2
: PRlf···JT
1420 PR I
f\1T
"C71'·t!1') ~1axRec.
f···Jo •
="LOF( 1 )" Cur. Rec .
f···lo • =','LOC(
1)
1430 PRlt···JT ". Rec
"'.Jo.
))?Ct···Jext=RET
T~-9·~m=+
r··18···DJ=/)";
1440 I
'···PLIT " ",
B$
1450
IF B$="/" THB···J
*r·'Er···~J1460
IF B$="+" TI48\J Q:)SLIB
*DISF'O :
r~OTO*START2
1470
IF B$=""
Ti-El·J REC1··J=L():::(
1)
33-1480
C=\,'AL(S$) : IF
C<=O
OR
C>LC)F(
1) Tt-Er···J *START2
1490
REQ···J=C
1500
.GET
"I,REa~1510
FOR ,-kJ=1 TO 162
:f···J$( ...J,-I)=P$(,-IJ):t···JE:X:T
1520
G(JSlJB *COR
1530
GOSL8 *REC
1540
GOTO *START2
1550
'=============================================
1560
*F:EC
1570 GOSLIB *DISPO
'DATA~~, ~m~2
1580 PRIt···fT
"~'~.
OK =0, RET
~·r
if
=3, RET
.~
7.Cr'·lEt···!L
1)=9, RET"
1590 I
r···JPlrr " ",
"'1$1600
IF W$="9" THEt\l RETLIRJ··J *r1EI···DJ
16 10
"..
J$(162 )
="
0 "
1620
IF
",1$="0"ll-B···1 "..
J$(162
)="1
n :GI)SlIB*PEC""< :
RETLIRr\J
1630
IF ltJ$="3" Tl-Er···J
GOSIJB
*RE I
f"'P :
GOTO *REC
1640
GOTO 1580
1650
*RE(J,...,<
1660
FOR 1=1 TO 162 : LSET P$( I
)=f···)$(I) :
'···JE><T
' ••
LSET
1670 PUT "1, REct···J
1680 PRIt···IT
Jr • •1";REt:t···J;
"ff~'/
DATA
~ ~'iD?Y<Y'Y.
J¥o
?O?t:t?!"
1690
PR I
t···JT :
~:ETLlFj···J1700
'=============================================
1710
*CLOS
:CLOSE
~l1720
PRlr···JT TAB(30);
1725
PRII···JT"
~
7
l,
i
l
t~
«IT
-1 ..
~? ~
t.!.
L,
l
iJ)"1~'
1
it
/v
f' "1730
B···I)
.'
IIIIII
r'1A I ,...
JEf"'!)
1111111
34-(4)プログラムの実行例と問題点 との旧版プログラムを実行すると、まず図1のメニューMENU画面になり、 新規登録、訂正、データ表示、終了のいずれかを選択するようになっていろ。 図1旧版初期画面(MENU) ◆◆lvlENU◆◆ ◆サキ、ヨウパンゴウヲINPUTセョ◆ シンキ登録=1,RET訂正=3,RETデータ表示=5,RET終了=9,RET ?5 データの入力を主目的としているから、新規登録が中心である。これを選べ ば、図2の画面のとなり、これまでの最終Record番号十1の登録番号(図で
は1193番)を与えられ、調査表ページ(〔P、0-1〕)、項目番号(NO
1)11項に、その入力桁数を表示(〔3〕)して、入力を促し、入力後は、自動
的に次の行(項目)に移行するようになっていろ。’ 図2旧版データ入力画面 ■■■■ロデータウチコミIRECNo.=1193 〔P、0-1〕No.1〔3〕=123 〔P、0-1〕No.2〔4〕=45G7 〔P、0-1〕No.3〔1〕=2 〔P.’:FaceSheet】◆ココデハRETURNキーヲオスナIオジダラH曰_Pデヤリナオジ◆ No.1統柄2性別l年令2出生地3同別居1学歴1職種1雇用1転職1 1001571641日*20K?〔,〕 0=11=002=13=Ivl74=645=1B=87=B8=FS=2 No.l続柄2性別1年・令2出生地3同別居1学歴1職種l雇用1転職I 201251453116810K?〔,〕 0=21=012=23=Ll4=5,5=1B=17=6B=8g=l NEXTOK7〔HitAnyKey〕? 〔P、2〕No.114〔l〕=■ 曲自動的に入力できるが、順番を変更できないし、訂正や移動もこの画面ではできず、 HELPキーで専用画面に抜け出てから、本画面およびこの後続画面に戻って、あらためて 入力することになる。 -35-FaceSheetの部分は、家族1人分ずつ1行に入力するようになっている。OK?
の次の行には、コンピュータ側でcode化した結果が確認のため示されていろ。
図3は、データ表示を選択した場合で、全項目が、入力時の形態に逆変換さ
れて、下線(_)の間に表示されていろ。次の登録番号は回キーを押すだけで
表示される。これで全体のデータの点検や抽出が容易にできろ。
図31日版のデータ表示画面(訂正入力はできない) LASTN。=1192DUIviPfrom?,to??1,2 、 PRINTER?〔Y/N〕? ◆◇◇DATADUIvlP◆◆◇ RECNo.1〔P、0-1〕-000-0000-1- 〔FS1-〕_C-OO-l-*32-104-*l-4-C-3-l--0-0-0-*0-000-*、-0-0-0-0_ 〔FS3-〕-0-0-0-*0-000-*0-0-0-0-0--0-0-0-*0-000-*0-0-0-0-0-〔FS5-〕-0-0-0-*0-000-*0-0-0-0-0--0-0-0-*0-000-*0-0-0-0-0- 〔FS7-)-0-0-0-*0-000-*0,-0-0-0_-0-0-0-*0-000-*0-0-0-0-0- 〔FSg-〕-0-0-0-*0-000-*0-0-0-0-0--0-0-0-*0-000-*、-0-,-0-0_ 〔FS11-〕-0-0-0-*0-000-*0-0-0-0-0- 〔2.Q1-B〕<Q1>5-33-2〈Q2>7-3-3〈Q5>’-0-0-0-5-〔2.Q7)<1>l-B<2〉1-B<3>l-B<4>1-B〈5>1-B<S>1-B<7>1-B<B〉l-B- 〔2.Q8-3.〕<B>2-2-4〈11>2-0〈12>2-0-000-0<13>1-1-10〈16>4-1- 〔4.〕-0〈18>-0<19>0-0-0<21>0000〈CK>1<FT> NEXTOK? 0一一一- -0000 0-一一一 一0000 0一一一一 一0000 0-一一- -0000 1一一一一 *0000 -**** 1一一一一 00000 10000 ’0000 3-一一一 2 10000 ***** 1一 一一一一一 ,0 10000 8一 一一一一一 くO B, l0000 lB q一一一一一》20000
--一一- 70 く0 2- --0 P l1一 N -,0 08,, U 一く3T D 021F 一一くく A Ol1l T -,lj All----l50K Dユコココppm江吃仁 一一D0000Q--4碆哩些四哩叫哩哩》抑椌妙
01一一一一--220 p詐扣扣扣扣扣wLQq 01一一---2,1- 000000003-0 0100000くくlグ ー-000002,S B一一’--2-1l bね和扣扣扣和一川。Ⅸ 一一一一一--024’ 02000004く一 ・一一一一---22, P0 5-一B f000000jl4l l-一一--1,,く C00000QlB0 一一一一一一くくく一 RECN◎.2 〔FSl-〕 〔FS3-〕 〔FS5-〕 〔FS7-〕 〔FSS-〕 〔FS11-〕 〔2.Q1-6〕 〔2.Q7〕 〔2.GIB-3.) 〔4.〕 NEXTOK? しかし、このプログラムは、急きょ依頼され、とにかくデータを打ち込むこ とを目標に大急ぎで作成したため、作業のいくつかのまとまり(モジュール Module)への分割や、それらの合理的な組合せにより、見通しよく、また修 正しやすくまとめることはできなかった。ことに、データの入力順にプログラムをつなげていった(例えば、MainにあたるMENU部〔1210-1300行〕
が、次にどこにいくか分からないGOT0文で表現されていろ)。このため、修正が、作業の途中に入り込む形になり、そこからの再脱出や元の場所への復
帰が困難になる場合が出てくるなど、むずかしくなった。これに加えて、家族
の一覧表の部分、4から113項までは、同一のパターンの繰り返しであり、 -36-また、人数分打ち込めば、後はロO''ないし“”(スペース)等でよいから、 そのためのルーチンもあって、処理が特別になり、他の部分との出入りが簡単 には済まされない領域になってしまった。 それでも、前記の7つの仕様は、一応実現された。 その一例として、③のキー入力の自動処理をみてみよう。 (5)キー入力の自動処理 リスト2自動キー入力ルーチン ,■■■■■TYPEINPUTRoutineetcローニー *TYIS:GOSUB*BT:N$(1)=",, PRI卜汀,,No.,,;I;TAB〔15);,,〔,,;BT;,,〕=,,; Fd二RJH=lTOBT GOSUB*GKC:卜睡(1)=卜睡(1)+A$:GOSUB*NAIT2 1、EXT:GOSUB*BP1:PRINT RETLHJ 00000000000000 9012345878日012 5BBBBBBBBBB777 33333333333333 ,■■■■mGETKEYRoutine■■■■■ *q<C X=POS(0):Y=Ca目、LIN:B=、:JK=1 A$=IID<EY寵:IFA$=,,,,T卜ENGOSUB*BFU<:GOTO*GkC GOSLB*l'JAIT2:PRINTAsE; IFASC(A$)=zgllFEN LOCATEX-1,Y:PRINT,,,,:GOTO*GKC IFA$>=,,U,,割.、IDA$<=''9,,T卜ENB=1:RETURN IFIvllD6lX,,/*+=、-,,,JK風1)=A$TトEN A$=1,11,$(,,ABCDEF,,,JK,1):B=2:RETLR1 JK=JK+1:IFJK<=BT1-EN3740 BEEP:GOTO2tGKC 3730 374, 000000 5B7B90 777778 333333 *BRK:Bk!=1.1 ,Brinkt=q57seC BK1=Bi<1ハ1.1:IFBKl〈gll-EN3790 1FI曰く=0打-EN LOCATEX,Y:PRINT’,■,,;CトFl$(29);:IBK=1:RETL」FU3I LOCATEX,Y:PRINT,,,,;q-Iニミ$(29);:IBk=0:RETl-R1 00口0000 12345B7 BBBBBBB 3333333 IIl2 TT 23
棚榊柳卿
FFFF帆帆帆帆
朋朋朋冊
剣屯扣扣
TO30 TO50 TO20 TO30 TTP》
厩鳳庄
トトB :RETURN :RETu目1N 1:卜にXT 1:卜EXT :BEEPO:RETURN :BEEPO:RETU二RN -37-キー入力の自動処理は、リスト2のTYISという名のサブ・ルーチンSub
routineが担当していろ〔3590-3650行〕・項目毎に、このサブ・ルーチ
ンを呼び出すと、その項目番号Iに応じた字数BTが同名のサブ・ルーチン〔1110-1130行、リスト1〕から与えられ、1字を取り込むサブ・ルーチ
ンGKC〔3670-3760行〕をその回数だけ呼び出し、各項目のキー入力結
果を格納しておく配列N$(1)を埋めていくのである。サブ・ルーチンGKCでは、INKEY$命令によって数字キーと周辺の記
号。-/米十=.”を16進数として取り込み、キー入力確認のクリック音も
発生させている。INKEY$の速度が早くて、1押しで数個の字が取り入れ
られてしまう可能性が高いため、時間をあける部分WAIT2も加えられ、複 雑であまりスマートでないプログラムとなっている。この点は、後述の新版では、INPUT$命令を用いて簡素化していろ。
他方、⑦のデータ圧縮については、良好な結果を得ていろ。
まず、年齢の階層区分を、Alphabetを用い、年齢項の10位に入れること
で階層分けも、絶対値の復元も容易にした。質問回答者の指示も同様な方式をとり、出生地の項でも、同部落出身を、同様に市町村番号の1位をAlphabet
化して表現していろ。出生地の10位は、県外(内部表現鰯A,,、,外部表現
域200”)、国外(同画B”、駁300”)、無答ほか(同℃,,、”500”または“000,')を県内出身(外部表現耐lXX”)の場合の市町村番号の
10位と重ねて使用していろ。県内以外では2桁の番号がつかないことを、 利用したものだが、4桁を半分の2桁で記憶することができた。重回答の項目では、回答番号を4つ毎に区切り、それぞれの中での位置を2
進数とみなして16進数で表現した。つまり、その区画の1番目は、2の3乗
(8)、2番目には2乗(4)、4番目は0乗(1)の欄とみなし、それらに
九があれば、その合計(最大15)を0からFまでの16進数であらわすので 曲4ある。これで4分の1に節約できた。新版では、さらに4分の1に圧縮できた。
油4文献6に、「簡単なメモリ節約法」として、「ピットに意味をもたせ
よう」と、この手法が簡薑単に紹介されていろ。(162-163頁)
-38-3新版データ入力用プログラムの特徴 このデータ入力プログラムの改訂は、より高速で正確にデータを打ち込め、 また問題の多かった点検や訂正の作業が容易にできることを目標として、次の 2つの基本仕様について行われた。 (1)表形式でデータを扱う。すべての項目を、可能ならば一覧できる形の表の 中に位置づけ、その位置にデータを入力し、修正し、確認するようにするので ある。その操作が、簡単にできるならば、高速化や正確化、作業の容易化が実 現されることになる。 (2)項目の指示、他項目への移動は、疑似カーソルで行う。 このようにすれば、操作の手順が固定化され、いま扱おうとしている項目が 全体の中で明示されるので、勘違いや誤操作をへらすことができるばかりか、 高速化や簡便化も十分期待されるのである。 (1)表形式カーソル移動入力法採用の経纏 プログラムについて、具体的な検討にはいる前に、ここに至った経緯を、簡 単に述べておこう。 沖縄本島分のデータを打ち込み終ったのち、解析用プログラムの作成と入力 方法の再点検あしているとき、パソコン専門誌に梅染啓二氏の「カーソル移動 式の入力方式」(副見出し「集計を行いながら二次元のデータ入力・訂正が容 曲5 易」)と題する論文を見つけ、数値を扱う点で、定性的なデータを扱う本 件とは、若干相違するものの、基本的には同じで処理方法であり、活用できろ と直感した。ことに、データ入力例(図4)をみたとき、家族フェース・シー ㈹6 卜の構成と酷似していたため、その意を強くし、具体的に検討してみた。 油5文献3,32-36頁。なお、このままではデータが新規には入力できな いため同10月号に訂正がある。 ㈱6梅染氏の方法をベースに新版を作製中に、「アンケート処理」と題する 論文(文献14)があることに気付いた。早速検討したが、基本的手法は我が -39-
図4梅染氏のデータ入力画面設計図
v-rcx+cⅧTcN11
00.データー冗表 n位(×1000) 閲拍点へカーソルを合せ〔1234567〕入力…〔RET】 データを入力して下さい->合算■… 彼算…〔+, ̄〕璃了…rESC)0 出所『TheBASIC』技術評論社、1986年8月号33頁訂正86年10月号165頁 旧版に近く、あえてこれを取り入れる必要はないと判断された。 その結果、表形式の持つ有利性を改めて確認し、また疑似カーソルによる指 示、入力方式の操作性とfailproof能力の高さを認識することができた。表形式についてみるならば、入力項目が、文章のような上限のない不定の字
数を要求し、項目自体も統一した並びに必ずしもなっていない例を除けば、統
計を取るような事項のほとんどは、表形式を採ることができる。アンケートでも、完全に自由な記述を許すような質問形式を除けば、すべて表に収容できる
はずである。表は、一般に縦、横複数に分割された位置に、その位置関係で特定される
データ(`情報)を格納するものである。当然、縦。横のそれぞれの欄はなんら
かの意味で強い関連|性をもっており、これを同一の経緯線上に並べることによ
り、データの特徴や傾向、時には誤記入を、容易に把握させうることがその大
きな特徴となっていろ。そして、多数のデータを格納するために、個々のデー
-40-  ̄ + > L〕.L
昭和s1年度 1月 2月 3, 4月 b5月 s、 7月 8月 9月 10月 11月 12月 合計 a:. b:カーソル田点 C: d:「
C D・CCD●●。□。C●白●●--吟●●DC●●●●●●●●、 ̄●--●●●■ ●: f: g: h: l: j:. k: 18 m: ● 91235 一一一一一 一一一一 一一一一 一一一一一 一一一一 『 一一一一 一一一一一 一一一一 0 一一一一 一一一一一 一一一一 ■曲0● 一一一一一一一一一 一一一一 一一一一 一一一一一 一一一一 一一一一 一一一一一 一一一一 一一一一 ◆ 函0 s 一一一一一 一一一一 一一一一 一一一一一 一一一一 ■ 一一一一 一一一一』 一一一一 一一一一 一一一一一 の一 一 一 一 一一一一 一一一一一 I23 5000 『0000 00000 合Df I235 0 0 0 0 、 0 6 0 0 ・0 0 1235タの直接的な構成要素(文字や記号)の数は一般に少数に制限される。記述的
なデータよりは、数値的なデータの表現に適していることにもなる。表形式のもつ画一性と、位置関係(相互の関係)の明白さおよびデータ・サ
イズの制限は、コンピュータによる処理に極めて適しており、パソコンにおい ても、多くのすぐれた実用プログラムが開発、市販され、ワード・プロセッサー 曲7 を除けば、もっとも普及しているソフト部門といわれていろ。 他方、疑似カーソル方式は、各項目の位置で、1日データを反転表示しながら、 点検やデータ入力を促し、それが済めば、次項に自動的に移動していく(この最後の点は、共通項ではないが)。左右上下の位置関係を確認しながら、操作
できるため、速度と正確さを同時に実現でき、極めて合理的な入力・表示方式で ある。市販の評判の良いソフトが、ほとんど例外なくこの疑似カーソルによる 指示、入力方式をとっている理由が、納得できろ。㈱7巨大な表にデータを記録し、加工・グラフ化するSpreadSheet型
のソフトウェアが、近年急速に普及していろ。代表的なざのに、前述のMalti-planがある。これとは別に、文献カードのように、少数の項目で、多めの字
数のデータを記憶し加工するカード型のソフトフェアもある。DATABOX(リード・レックス社)などが代表である。ところで、1980年代になって、
さらにデータを統合し、一元的に管理して、より多面的に活用するために、
RelationalDataBase型のソフトウェアが登場していろ。dBASEⅡ(米
国Aahton-Tate社)やR:BASE4000(同Microrim社)が初期の代
表で、それらは、87年現在、Ⅲ型と5000型に進化していろ。さらに今日で
は、Rotusl-2-3(同RotusDevelopment社)が米国でベストセラーとな り、わが国においても日本語版が急速に普及しつつあるといわれる。 さらに、両者の特徴を合わせもって、一般のカード型以上にデータ毎の項目数や長さの自由をみとめながら、表形式と同様の簡便な処理が可能なZONA
BASE(住吉電機KK.)も登場していろ。 -41-(2)新版プログラムのその他の特徴 そこで、この「カーソル移動式の入力方式」をベースに入力プログラムを組 み直すことにした。こうして、一応完成をみたのが、リスト3以降のプログラ ムである。 このプログラムは、参考にした梅染氏のものとは、次の点で異なっていろ。
①いちいちEIIキーを押さなくても、各欄所定の字数入力すると自動的に次の項
目に移動するようになっていろ。(旧版の利点を生かす)
②行毎に、異なる列数(項目数)を、許していろ。データの並び方や関連性に
応じた配置が、見やすさを引き上げるからである。③カーソルの移動方向が、横方向になった。また説明欄を飛び越して自由に移
動できるようにした。④合計欄は、本件には必要ないので、取り除いてある。
4新版プログラムの内容と実行結果
(1)新版プログラムの構成リスト3新版データ入力・訂正プログラムのメイン部
10,******************************************************** 15,AnEasyandRandomlnpI」tandCorrectionofData 20,onself-orderedDataTable 25, 30,Wittenin卜旧BDiskBasiconPC-gBOlE 32,byRyoichiAbeJar1.,1987 35,******************************************************** lUOOⅢIDTHBD,25 11〕10(=LS3:SCRE曰13,0,0,1:CO11SxこしE,25,0,l lO20EEFI卜汀A-Z lO3DDI↑1Q3XlD,11),P$(170)」1$(170),AG寵(11).BP$(11) 1040’ lO50LOCATE15,2,0:COLORB lO55PRⅢT,,◆◆◆DATATABLEニュウリョワ&テイセイ◆◆◆'’ 1UBOLOQqTE15,4: -42-1064 PRlf···1T " ... '5{7'"' 2 :.
7'"'
-·9 7-p{Jl, ~ {l..7~CR =1=-
7 ;ty;- ~)-9'""1'0 "1
066Jr"'PUT " ". A$
1070 '
1080 OI'··J
EffiCR
GOTO *EFPESC
1090 '
1100
'***************
~~in
Program
***************'
1110
GC'SU3 *OPI·,,!. FL
1120 *8···JTF1'1 : GOSLIB *f··£J··lJ
1130 I F ~JORJ<$="9" THE",,) *Er···[)9
1 140
GC.JSLIB *FRAl'1E
1150
*Ef···fTRR· :
(:;C1Slrs
*RECr···JO
1
160
,
GC'SLIB
*Cl.AR\('.
Q1170 .
IF
l~RI<$="1"
TI-B'..JGostJB *GETOAT
118~
GOSL8
*OISPDAT
1 190 (~ClSl-'B*CSRAf"lD
1200
G:»SLIB
*F ILECA..'T
12 10 IF l.,J(lRl<$="5~'TJ-El·J
1....JCI~:I<$="3 "1220
(:;ClSLlB
*BR.Ar···JCH 1230'**********************************************
-43-MainProgram〔’100-1220行〕は、FileのOPENからその
CLOSE、ENDまで、作業をブロック化(具体的にはSubRoutine化) して、これらを順次呼び出し、終ったら戻ってくる形にした。これは、プログ ラムの見通しを良くし、修正や改良がしやすいものとし、第3者と将来の本人の理解を助けろためであ雲jこうすれば、各プロ,クは将来Libmryと
して他のプログラム作成に流用できるようになる利点もある。 以下その概要をみていこう。〔1110行〕データFileをOPENして、データの読み書きができるよう
にする。(SubRoutine名、OPNFL〔1290-1370〕:〔〕内はそ
の存在行。以下同じ)〔1120行〕次に、MENUルーチンに飛び、作業を選択させ、その番号
を変数WORK$に記憶する。(MENU〔1490-1620〕)
〔1130行〕その番号が“9''ならば、終了の手続きに飛ばし、それ以外
は次に進ませろ。(END9〔1430-1470〕)
〔1140行〕表の枠をGraphic画面で描かせる。(FRAME〔18
70-1980〕)
〔1150行〕登録するデータのRecord番号を入力させる。(RECNO
〔1640-1720〕)
〔1160行〕作業用の配列Q$(x,y)を空白で埋めてデータの「ゴミ」
を清掃しておく。(CLARYQ〔3080-3140〕)
〔1170行〕既存のレコードを読み出す必要があれば実行して上記の配列
にいれろ。(GETDAT〔1740-1850〕)
〔1180行〕いずれにせよ配列の内容を画面の表に出す。(DISPDAT
〔2000-2090〕)
〔1190行〕カーソルによる表の上での書き込み・訂正作業をする。(C
SRAMD〔2110-2320〕)
〔1200行〕Fileへの書き出しを必要なら行う。(FILEOUT
L2890-3060])〔1200行〕完全な新規入力の場合、次のRecordからは、追加入力に
-44-なるのでその指定を替えろ。
〔1220行〕次の作業の選択を行わせる。(BRANCH〔1240-1280〕)
油8多くのコンピュータ経験者が語り、筆者自身も体験したところでは、意
識的に対策を採っていないプログラムは、作成者本人でも1,2カ月すると変
数の意味から始まって、プログラムの構成や骨子まで暖昧になり、理解できなく
すらなってしまうものである。プログラム作成にあっての基本的、総合的あり
方や注意を述べて、関係者に注目されている文献1及び2でもこの点への配慮
を強く求めていろ。 (2)データ圧縮の実際 なお、年齢の階層分けと、出生地の多重コード化、さらに回答者のコード化 は、旧版で検討開発された手法を基本的に踏襲しているが、プログラムとして の整理が図られていろ。これらは、入力の際のデータの並びと、Fileに登録・ 記録されるデータの並びとは、異なっているから、どの段階での表現なのか、 明確に意識し、区別しておかないと、収拾のつかない混乱に陥る可能性がある (実際、筆者もこれを経験した)。そこで、このプログラムでは、入力やデー タ表示など、人間と直接接触する段階のデータの状態を、DISPmay) 段階と名付け、Fileの中での状態を、CODE段階と名付けて、それぞれ の段階へ移行するためのSubRoutineを平行して作成した。CODE段 階からDISP段階への移行は、実際に打ち込んだ状態に戻すものなので、 reverseの意味をつけて、Routine名の後半に“REV,,をつけ、逆の場 合は、CODE化する作業なので、COD”をつけて、感覚的にも区別しやす いようにした。 例えば、年齢の項目のCODE化は、轍AGECOD',として3240-3 340行で行い、逆のDISP化は、これに続けて価AGEREV”として 3360-3410行で行っている。出生地については、年齢に続けて、同様 に、wBPLCOD,,(3430-3500行)と耐BPLREV,,(352 0-3580行)で処理し、回答者番号も、全く同様に、鮒ANSCOD', -45-(3610-3660行)と轍ANSREV,,(3680-3710行)で処
理している。このように、一括して展開しておくことにより、解読や訂正が容 易になっている。 (3)疑似カーソルをめぐる工夫 その他、技術的には、疑似カーソルをめぐって、かなりの試行錯誤を強いら れた。カーソルの説明行などの飛び越し移動のしかたや、例外的動きの設定、 さらに背景にある枠組みのGraphic画面とスクロールする一般の文字の画面 (TEXT画面という)との連動の仕方など、苦労したところも少なくない。 枠組みの線が、緑色ながらやや強く出るので、これを薄くする工夫もした。 原案では白地の反転点減式であったカーソルの表示を、カラーディスプレー を使っていることから、より目だつ色をつけることを考えたが、あれこれ捜し ても一般的なことしか見つからずT試行錯誤で、黄色地反転点滅表示のしかたを発見した字g
ともかく、こうした検討を積み上げた結果、非常に使いやすいプログラムを
完成することができた。 その実行結果の一部を、以下掲げよう。 ㈱9これは、Routine厨POSIT”(2560-2630行)の2行目 の、機械語の書き込みを行う部分(POKE&H43A,&HE5)をどう書 き換えれば良いかという問題であった。この16進数で43A番地はどのよう な役割をしているかについて、例えば、このパソコンの内部分析としてはもっ とも詳細と思われろ『PC-Techknow9800j(文献4)でも、「画面を クリアするときのアトリビュートの値。(通常E1H)」(441頁)と記して あるに過ぎず、応用の役に立たなかった。そこでそのアトリビュートの値を種 々替えながら推測を繰り返して、好ましい数値(C7)を見いだしたのである。 -46-(4)プログラムの実行結果 図5は、上2行が初期画面で、データFileが2番のディスクドライブにセ ットされたのを確認した後、3行目以下のMENUが現れ、作業を選択させる。 1から5までを選択すれば討画面は、図6に移る。表示するデータRecord 番号を入力すれば、そのデータが図の中央のように表示され、その時点で入力 可能な項目が、黄色地の反転点滅式の非常に目だつカーソルで示されろ。初め ての番号の場合は、空白にデータを打ち込んでいくことになる。規定字数入力 図5新版の初期画面とMENU ◆◆◆DATATABLEニュウリョク&テイセイ◆◆◆ ト・ライブ2ニデータフアイルヲイレテ、CRキーヲオj'テクダサイ. MENU [1】トウロクズミデータノヒョウソテイセイ [3]ツイカトウロク [5]シンキトウロク [9]オワリ [CR]マエトオナシ・ サキ'ヨウスノレコウモクノパンゴウヲウチコンデクタ`サイ. ワ -47-
図6データ表示・入力・訂正画面(表形式) ツギモンけシ′サキ'ヨウ?[CR,etc] レコードパン97ウヲニュウリョクシテクダサイ. ::: :。…ロ●。。。・・・・P●・ ̄。。.。・・・。●●OOC●・CDC●●。●・・●●●●。 ̄・・・・・●、一・・・゜.。。。。。●。。・・・●●●●・・●…。●。●。。…△●。.…●…・…,。….-…・…、. iRecNo375i043i0927i6i2 1..…...…….….……..………….….…..….…..….~…....……..…~.….………..~..…………. ;u0.1纏柄i性ヌリ;年令 i…………-……… iL l1iOOmi41 i2: ,l2iO1i2i38
1iii4I1liぃO8
i3;2112il2 i………i……i………ルーi… i5: i5i56i2i25 i6: 16i5CilP2 i7: :8: MENUへモドル?[/]? (ツギノパンコ'ウハ[CR]’1ツマェハ [-])? 生地 124 148 200 態H1鰯 同居;学歴;職種;雇用1転職 …………・`..……・……・へ.………+……….:………… 1i3iA11:3 1i2iOi7U 1iOiOiOp liOiOD;0 10811 20011 2iA Op 20 30 》9A8 カーソルノアルラン カーソルハヤジルシ ニデータカ′Mリマス.ソスウヲミタストソト'ウテキニミキ'ノランニイト'ウシマス.キーデゾユウニイドウデキマス. [200]シュウリョウ=[Cm ->すれば、カーソルが自動的に次の項目に移動することは、旧版と同様であるが、
それが規則的で、全体がコンパクトである点で優れていろ。そして何より、訂
正が、カーソルを視覚どおりに縦横に移動させればいつでも簡単にできるので、
大変使いやすいものになっている。画面全体の移動がなく、必要な部分のみが
変わっていくので、疲労が減り、誤入力も減少するというメリットもある。
そのRecord番号のデータを入力・点検し終れば、登録するか否かを“+”“-”のキーで選択し、次に移る。次の番号を同様に扱う場合は、たんにlFjilキ
ーを押せば良いのは、旧版と同じである。こうして、必要な件数を打ち込んだ後、1行目の段階で、耐/,'キーで、M
ENUに戻り、。9,,を選択すれば、終了のための処理が簡単に行われ、図7
が現れて、ディスクの抜取りが許され、すべてが終了することになるのである。
-48-図7新版終了画面 聾オワリマシタ.ディスクヲタ`シテクダサイ.錘 0k おわDに 新版を使ったメリットは、既に論じているので、簡単にまとめておくと、表 という、項目間の関係が、ばらばらではなく有機的に把握される表現手段を採 用したことによるメリットと、疑似カーソルによる入力位置(項目)の指示の 明確化と同じくそれによる自由で迅速な位置(項目)の選択を可能にしたこと によるメリットを軸として、これに、字数の計測機能を組み込んだことによる 図キーを用いないカーソルの自動移動方式の簡便さが加わった相乗効果から生 まれているといえよう。 その結果、非常に効率の良い、使いやすいデータ入力プログラムとなった。 今後は、様々なケースに対応できるように、普遍化すれば、より広範囲に利用 できるプログラムに成長していくであろう。 また、プログラムの作成にあたっては、全体の構成を考えることは当然重要 なのだが、そのためにも、個々の部分的機能を明確にして、それを確実にコー -49-
ディングし、ブロック化、SubRoutine化を推し進めて、それらの機能を組 合せていって、全体を組み上げていくという方向からのアプローチも大切であ ることを、この作業を通して体験的に学ぶことができた。
参考文献
〔1〕B、W・KernighanandPJ・Plauger,。Software
Tools,',Addison-Wesley,1976.(木村泉訳、『ソフトウエア作 法j、共立出版、1981)〔2〕B、W、KernighanandPJ、Plauger,“TheElements
ofProgrmmingStyle”,2nded.,McGraw-HillBook Co.,1978. (木村泉訳、『プログラム書法」第2版、共立出版、 1982)〔3〕梅染啓二「カーソル移動式の入力方式一集計を行いながら二次元の
データ入力・訂正が容易=l、月刊『TheBASICj技術評論社、1986 年8月号〔4〕藤田英時、幸田敏記『PC-Techknow9800」システムソフト、
1983〔5〕角谷博孝、宮崎厚『98ユーティリティ&内部ルーチン解析j技術評
論社、1984〔6〕涌井良幸、涌井貞美『BASIC丸秘ハイテク100選」|誠文堂新光
社、1986〔7〕戸内順一『PC-9801.E・F困ったときに開く本」技術評論
社、1984〔8〕ナツメ社編集部『PC9801E+Fデータファイル入門2」ナツメ
社、1984〔9〕阿部亮一「初期型パソコンによる経済基礎統計分析」『沖大経済論
叢j沖縄大学経済学会、節巻2号、1985 -50-(10J NEC
rpc-
980 1 E BAS I C REF,ERENCE MA NUALJ(11J NECWPC-9801E USER'S MANUALJj
(12J
mlEtrnl
~~±~wm~ :6tm:~_, 1 958(13)
~ffi~~B~ Jjj{~_ r~~~:m:)\/r7';l7J 3Jfjj~ fl~rm~_,1982(14)
n:ufJ:P~~r7/Jr-"~l!JrOh! 98J li5,
B*'J7")~/?,1 9 8 61:Fl OFf
~~~4 ~~T-9An·n~~O~7k~~fi$
1240 *BP~"'JCH
'
t"IQr
k"'.Ju.
rnb er
1250 PR I '···IT
"1~:t=V.:C ;tt:l'~ ij:f'"3')'r
(CR,
etc)
t'Et···JJ
t\, =t~'"H.? ('/)"
1255
I f"'PUT " ",
V'v'$
1260
IF
V'v'$=" /"Tl-B···l
CLS 3 :
RETlFJ··J *8···JTRI'·1
1270
IF
""(~<$="5"Tl-B'..
J ~\1CR<$="3"1280 RETlA\J *E'···JTRR
1290
'====--=====
Open
File
&
Ending
===========
1300
*t:f't···J.
FL
13
10 QPB'..J"2: FAl'1FL"
AS
t:t
1
1320
D=O
1330
FOR
P=1
TO 170 : GC6L8 *BT
1340FlaD
ttl,OAS Df_'1$,BT AS P$(P)
1350
FIELD
t:t
1, 0 AS DL'\1$, BT AS "..
)$(P )
1360D=D+BT :
'···ExT
1370 .
F£TL~J-·J1380 '
1390 '...
Bytes of Items ;sum=170 items,253 bytes (-244
1395
*8T
1400
BT$=fYl
I
0$("341 121221III
112122111 11 1212211111121221111112 122111111212211111121221111112122111111212211111121221111112122111111322111111133333333333333331111111311121111111141212
12111",P,I)1410 BT
=~/'~(
BT$ ):
RETlJRr···J
1420,---~---1430
*8·'·03
1440 CLOSE ttl -51-1450 CLS 3 : LOCATE 20,6,1
1460
PRU···rr " ••
;f?') ~:t9o:r----<7.?
=,
9---~17 ?9"t;t1o •• "1470 8"·0 1480 '
1490 '
===--======
':1=1="'3'1
& Rec. f···lo.J
7'~'7'1'===========
1500 *I'·El···J...I1510 LOCATE 34,6 crJLOR 4 :
F'Rlf···JT
"r'1 Ef···J
U":CCLCA
7 1515 PRll···rr : PRlf···JT1520
LOCATE 20,8
PRlf···rr"(1)
J-.rxJ?7....
~:;... -·9
.I t3'1:'f'.
:r1~i"1530
LOCATE 20,
10 PRI1···rr
" (3)
I~J11JJ-..'jO·?"
1540
LOCATE
20, 12F'R
I
'···JT
"
(5)
~I~'=t=J-.?O?"
1550
LOCATE 20,
14 PR I ,···rr " (9) ;1"']1)"1560
LOCATE
20,16 PRlf···rr "(CR)?1J-..
;tty~"
1570 PRH···JT : PRIf···rr "
':1=1=~3?7.Jl· ";
:CCl.OR 4
1575
PRu···rr
":J'1t·? .1 Ir'~'J'"') "; :CCl.OR
7 1580PRI,···rr
"?
')fJY:r" ?9'"
+;tic" :
1590
If"'FUT A$ :
IF A$=""
T~···J A$=l"kJRJ($1600
I F I
1···lSTR( "
1359" , A$ )=0 Tl-El·(
CLS :
(:;(JTO
*1"£1",'-'
16 10 ",k:1V($=A$ 1620
RETlIRI···J
1630
'---1640
*PECl·jQ
,
Record"'~J.rnber
1650 I F ~,tOF1<$="5"
ThEf···J F:ECf···J=
1:RETLA··.J
1660 IF
1"ICRK$=~'3"TJ-El·J RECf···J=LCF(
1 )+1:
RETtJRf··.J
1670
'
A$="1" /
J-..=I=
1680
COLOR
4 : PR I r···rr "L,J-~'A I)~ ~,]... ., " ; :COLOR
71690
Ir"'PLIT"='
':.J.?1)3? :,J7'/'9'"fJ10
(I~):J:"'./ I)'"~'J"'? 1)(CRJ,
II~J ~I J)(-)) ";V$
1700 I F ~,I$=""
THEl···J F:ECr···J=LOC(
1)+1 :RETLIRf··.J
1710 IF V$="-" THEf···J RECr···J=LOCC 1)-1 ELSE RECl.J=\,'AL(~)$)
1720
RETLlRl·J
1730 '
==--====--===============--======
1740
~:ETDAT1750 GET
t:t
1, REO···J
1760 FOR J=O TO 11
: GCBLIB
*RO..
\I1770
FOR 1=1 TO Rt:k
l :GOSLIB
*R()l,J1780
Q$(I,J)=P$(P)
1790
IF
",1=011-18···J
1820
1800
I F 1=4 THE}·J
AG$(J
)=Q$(4 ,
J) :GOSJJB
*Al:J"'EF:Et)
18 10
I F 1=5
Tl-B'..
J6P$(
J )
::1;,$(5 ,
",I) :GOSCS *8PLPE\.,)
52-1820
'···ExT
1830 r···E:{T
1840
GOSlJB
*Pl···JSRE'v'
,
Ans coded -) d
i
SP1850
RETtlRI···J
1860'
-1870
*FRAr''E
1880
CLS : CO\SOLE ",1
:SCPEB~3,0,0.1
1890
Llr···E (0,41
)-STEP(503,264),4,B.&J~1900
LU···E ( 0, 62)-STEP(S03,O),4,
,&~1910 LU···E ( 0, 88)-STEP(503,0),4, ,&HAAAA 1920 LI~E C 0,168)-STEPC503,O),4,,&HB248 1930 LI~E
(
O,248)-STEP(503,O),4,,&H2492 1940Llr···E C 99,41 )-STEP(0,264),4, ,&HAAAA
1950 FOR
1=1TO
9
1960
LIr···JE C
89+40*1,41)-STEPCO,264),4,
,&H24921970 r···ExT
1980
PETLRJ··J
1990 '
-2000
*OISPOAT
2010
LOCATE
0,3 :COLOR
22015
PRU···JT
LISI""~" Rec "··10
~~t:t*=*";RECr···J·;
:CCLOR
7
2020
LOCATE 13, 4 : PR I r···IT "
no.
~
fR
1'1: }Ifl
.~
4r
~
ttl! InI
Ji§-
~ ~
16i
fit
Ji
m
$~m ':'
2030
FOR
J=OTO 11 : GC
lS1-'B
*RCdl\1
2040
IF
J>On-s'..
J GC6LS*LO:T :LOCATE
2,LJ:PRIr···JT
f-E~<$(J)":" 2050FOR
1=1TO
Ra~ 2060GOSl8 *PROT
2070
r···ExT
2080r···ExT
2090RETLJRr···J
2100
'===================================--=========
21 10
*CSP.Ar''UJ
' ATtend
i
rag
1,.1i
thClJ:rsc,r
2120
CCLm 5 : LOCATE
0,20-2125 PR I
r···rr
"1J-':)Jl.
J
rH.
?~.:.
7'-" -·9 t( 1'1")77..0:'1'"
::1.."
=;
~·97. ~~-
t--""
'):r=F :.
~=F'-"J
?~:.
{t--
~.., ~.r:?7.o"2130
PRIr···IT "1.J-,)JlI
J'
t~rHIS'
=l=-
7-
~I'" ~r;:.
-it---., 7'"
=F":?7.o "
2140
CCLm 7: LOCATE
28,22 PRlr···JT "(" SPC(8) ")"2150
CCLOR
6 : LC)::ATE 41,22 PRlr···JT "~.J."'J3"=(CR)"2160
I=l:
..1=0
P=l
2170
*Cl.OOP
53-, BT
(Q$(,) ./""97.")
(~SLIB*CL
I
a<
THEJ··,J
*C I
C~-'TTH8\J
GOTO 2260
Tl-B'..
J(iOSLIB *ClJRSRT :
(~:)TO *C~OOPTHEt···J
Q)sLIB*OJRSLT : GOTO *CLOCP
THB···J G)SI_8
*aJRSLP :
fd)TO ~:~O)Pll-EJ...
JGOSL8 *CURsor···J : GOTO *t:LOCIP 2180GOSL8
*POSIT
·2190
C$=Ir···PUT$(
1)
2200
IF A9:<C$)=13
2210
IF ASC(C$)=32
2220
IF ASC(C$)=28
2230
IF AS:(C$)=29
2240
IF
AS:(C:$)=30
2250
IF ASC(C$)=31
2260
G)SLIB *J'1AJ·(EDT
2270
GOTO 2190
2280 *CIarr
2290
IF
'~nF~<$<>"3" TI-8"')CLS :
RETL~J··I2300
IF
\,'ALCF$(3)
)=J THEf···J
2290
2310
BEEP: Ir···PLfT
".=.Y7.... ., l.f
Y1'''?~'o f.J:I~.'?:'.17
(CR)";CIC'$
2320 GOSLrs *8At.)<CLR :
()JTO *C':LOCP
2330 '
======---======================
2340
~~T'data
rrake&
disp2350
IF
C$=","CR C$=""
TI£'..
J Ir''1O$=Ir''1J$+'' ":GOTO
23902360
KY=Ir···JSTR("0123456789-/*+=."
,C$)
'--a:At=
2370
IF
KY=OTJ-El··J
BEEP : FETtRt···J2380 I(¥O$=IMO$+HE:~<$(l('i'-l)