Listing of file='MECI' on disk='vmedia/mvp-diag-3.5.wvd.zip'
# Sector 448, program filename = 'MECI' 0010 REM %^MECI -- MEMORY ERROR CHIP IDENTIFIER : REM 06/12/79 : REM B. Patterson 0020 REM %REVISIONS (9/22/78)............................. : REM 1. Bank logic added for data memory (for 256K MVP). : REM 2. 16K RAM logic added. 0030 REM %REVISIONS (10/08/78)............................. : REM 1. PECM corrected to display XOR of data with expected data. 0040 REM %REVISIONS (06/12/79)............................. : REM 1. 32K 7588 logic added. 0045 REM %REVISIONS (04/01/84)............................. : REM 1. 512K data memory logic added : REM 2. 64K control memory logic added : REM 3. graphics display added : REM 4. stoped error reverse on odd address -- line 800 0050 REM %^HARDWARE REQUIRED.............................. : REM 1. 2200VP or MVP with 16K memory. : REM 2. 24 x 80 CRT. 0060 REM %^INSTRUCTIONS...................................... : REM 1. Edit system error -- ('RETURN' must be keyed after each field) : REM a. error type (eg, PEDM). : REM b. error address. : REM c. error data (if any). 0070 REM 2. Specify disk file to compare PECM data against (if desired). : REM 3. Questionable locations on memory board will be displayed. : REM 4. Press any key to clear display & enter next error. : REM Or press any SF key to enter different memory configuration. 0080 REM 5. Notice that board 1 is located closer to CPU. : REM Board 2 is closer to power supply. 0090 REM %^VARIABLES.......................... : REM A,L1,L$,T$ -- work variables 0100 REM A$,A9$ -- system error address (binary) : REM A2$ -- system error 2nd address : REM A1$ -- system error address (ASCII) : REM B -- board# (1 or 2) : REM C$(I) -- "E" if chip is bad (corresponds to 1's in X$) 0110 REM B,B2 -- board# (1 or 2) : REM C$(I) -- "E" if chip is bad (corresponds to 1's in X$) : REM P$,P9$ -- data memory page (0,4,8,C) : REM P2$ -- data memory page (2nd address) 0120 REM S$ -- data memory size : REM M$ -- control memory size : REM S$(I),M$(I) -- board I type : REM R$,R1$ -- chip row order : REM Q,Q2,Q$ -- chip row 0130 REM D$ -- system error data (binary) : REM D1$ -- sytem error data (ASCII) : REM E -- error type (1=BECM,2=PECM,3=VECM,4=BEDM,5=PEDM,6=REDM,7=VEDM) : REM E$ -- error mnemonic (eg, PEDM) 0140 REM F$ -- disk file name : REM F1$ -- disk address : REM F1,F2,F3 -- start,end,current file address : REM F4 -- file status : REM F2$ -- record type : REM F3$ -- record data address & count : REM F$() -- record data 0150 REM F5$ -- instruction from file : REM F6$ -- found/not found flag : REM I,I1,I2 -- counter : REM T -- tab value : REM L -- chip location on board : REM X -- number of chip rows on board : REM X$ -- bad data bits are 1's : REM Z$,Z1$,Z2$,Z3$ -- board display : REM 0160 DIM A1$7,A$2,A2$2,D1$6,D$3,F$8,F1$4,F2$2,F3$3,F$(4)60,F4$2,F5$3,G$,I1,I2, L$2,C$3,C$(24)1,Z$80,Z1$80,Z2$100,Z3$80,Z4$80,E$4,X,X$3,T$80,P$1,P2$1,S$( 4),R$8,Q$1,R1$6,M$(2) 0170 G$="Y" : PRINT HEX(03);AT(12,25); : LINPUT "Do you want graphic displays" G$ 0180 DEFFN'31 : RETURN CLEAR ALL : F$="@@" : F1$="/310" : Z$=ALL("-") : Z2$="-!"&HEX(080A)&"!--------------------!"&HEX(080C)&"!------"&STR(Z2$,2 ,34)&STR(Z2$,2,29) : Z1$="! ! ! ! ! ! ! ! ! ! ! ! ! !" 0190 Z3$="! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !" : Z4$="! !" 0200 REM %^INPUT DATA MEMORY CONFIGURATION................ : SELECT PRINT /005(80) : PRINT HEX(0D03);AT(0,20);BOX(1,37);AT(0,21);"MECI -- Memory Error Chip Id entifier" : PRINT AT(3,0);" SIZE","BOARD #1","BOARD #2","BOARD #3","BOARD #4" : I=0 : RESTORE LINE 260 0210 READ S$,S$(1),S$(2),S$(3),S$(4),R$ : IF S$="end" THEN 220 : PRINTUSING "SF'## ",I; : PRINT S$,S$(1),S$(2),S$(3),S$(4) : I=I+1 : GOTO 210 0220 PRINT "SF'31","Return to main menu" : PRINT : PRINT "Enter the data memory configuration, SF'?";HEX(06) 0230 KEYIN S$,,240 : GOTO 230 0240 IF STR(S$,,1) =HEX(1F) THEN LOAD T"@MENU" : ERRORGOTO 180 0245 IF STR(S$,,1) =HEX(1F) THEN LOAD T"@MENU" : IF VAL(S$)>=I THEN 230 : RESTORE LINE 260,6*VAL(S$)+1 : READ S$,S$(1),S$(2),S$(3),S$(4),R$ 0250 REM DATA "memory size","board 1 type","board 2 type","chip row order" 0260 DATA "16K","6787-A (16K)"," "," "," ","--12----" : DATA "32K","6787-1A (32K)"," "," "," ","3412----" : DATA "32K","7587-1B (32K)"," "," "," ","---1----" 0270 DATA "48K","6787-1A (32K)","6787-A (16K)"," "," ","3412--56" : DATA "64K","6787-1A (32K)","6787-1A (32K)"," "," ","34127856" 0280 DATA "64K","6787-1A (32K)","7587-1B (32K)"," "," ","3412--5-" : DATA "64K","7587-1A (64K)"," "," "," ","--21----" : DATA "96K","6787-1A (32K)","7587-1A (64K)"," "," ","3412-65-" 0290 DATA "96K","7587-3B (96K)"," "," "," ","-321----" : DATA "128K","6787-1A (32K)","7587-3B (96K)"," "," ","3412765-" 0300 DATA "128K","7587-3A (128K)"," "," "," ","4321----" : DATA "160K","7587-3A (128K)","7587-1B (32K)"," "," ","4321---5" : DATA "160K","6787-1A (32K)","7587-3A (128K)"," "," ","34127658" : DATA "192K","7587-3A (128K)","7587-1A (64K)"," "," ","4321--65" 0310 DATA "256K","7587-3A (128K)","7587-3A (128K)"," "," ","43218765" : DATA "512K","7587-3A (128K)","7587-3A (128K)","7587-3A (128K)","7587-3A ( 128K)","43218765" : DATA "end"," "," "," "," "," " 0320 REM ^%INPUT CONTROL MEMORY CONFIGURATION............. : SELECT PRINT /005(80) : PRINT AT(2,0,) : PRINT : PRINT " SIZE","BOARD #1","BOARD #2" : I=0 : RESTORE LINE 370 0330 READ M$,M$(1),M$(2),R1$ : IF M$="end" THEN 340 : PRINTUSING "SF'## ",I; : PRINT ; M$,M$(1),M$(2) : I=I+1 : GOTO 330 0340 PRINT : PRINT "Enter the control memory configuration, SF'?"; 0350 KEYIN M$,,360 : GOTO 350 0360 IF STR(M$,,1) =HEX(1F) THEN 180 : IF VAL(M$)>=I THEN 350 : RESTORE LINE 370,4*VAL(M$)+1 : READ M$,M$(1),M$(2),R1$ 0370 REM DATA "memory size","board 1 type","board 2 type","chip row order" : DATA "16K","6788-A (8K)","6788-A (8K)","12-43-" : DATA "16K","7588-A (16K)"," ","-1----" 0380 DATA "20K","6788-1A (12K)","6788-A (8K)","12543-" : DATA "24K","6788-1A (12K)","6788-1A (12K)","125436" : DATA "32K","7588-1A (32K)"," ","21----" : DATA "64K","7588-1A (32K)","7588-1A (32K)","21-43-" : DATA "end"," "," "," " 0390 REM %^INPUT SYSTEM ERROR.................................. : REM EXIT -- E=ERR TYPE (1=AECM,2=BECM,3=PECM,4=VECM,5=AEDM,6=BEDM,7=PEDM, 8=REDM,9=VEDM) : REM -- E$=ERR MNEMONIC (EG, PEDM) : REM -- A$=BINARY ADDRESS : REM -- D$=BINARY DATA (IF ANY) 0400 REM -- A2$=BINARY ADDRESS OF CONFLICT LOCATION (ADDRESSING ERRORS) : REM 0410 PRINT HEX(0D03);"Edit SYSTEM ERROR. SYSTEM ERROR ( )" : E$="PECM" : T=42 0420 REM ERROR TYPE : PRINT AT(0,T); : LINPUT ?-E$ : MAT SEARCH "AECMBECMPECMVECMAEDMBEDMPEDMREDMVEDM",=STR(E$) TO L$ STEP 4 : IF L$=HEX(0000) THEN 420 : E=INT(VAL(L$,2)+3)/4 : T=T+5 0430 REM ADDRESS : A1$=ALL("0") : GOSUB 480 : HEXPACK A$ FROM STR(A1$,4) : P$=A1$ : IF STR(E$,,1)<>"A" THEN 440 : GOSUB 480 : HEXPACK A2$ FROM STR(A1$,4) : P2$=A1$ 0440 REM DATA : T$=HEX(060606000404000200) : L=VAL(STR(T$,E)) : IF L=0 THEN 470 : D1$=ALL("0") 0450 IF STR(E$,3,2)<>"DM" OR E$="REDM" THEN 460 : PRINT AT(2,T-2);BOX(0,4); AT(1,T-5);"even "; BOX(1,0);" ";BOX(1,0);" "; BOX (1,0);" ";BOX(1,0);" odd";AT(2,T+3);BOX(0,4); 0460 PRINT AT(0,T); : LINPUT ?-STR(D1$,,L) : IF VER(D1$,"HHHHHH")<>6 THEN 450 : HEXPACK D$FROM D1$ 0470 REM DONE EDIT : PRINT AT(0,0,18) : ON E GOTO 520,560,570,700,710,770,780,790,810 : STOP "SHOULD NEVER GET HERE"# 0480 REM ADDRESS : REM ENTRY -- E$ = ERR MNEMONIC : REM EXIT -- A1$ = ASCII ADDRESS (RIGHT JUSTIFIED) : IF STR(E$,3,1)="D" THEN 500 0490 REM CONTROL MEMORY ADDRESS : PRINT AT(0,T); : LINPUT ?-STR(A1$,4) : IF VER(STR(A1$,4),"HHHH")<>4 THEN 490 : T=T+5 : RETURN 0500 REM DATA MEMORY ADDRESS : STR(A1$,3,1)="." : PRINT AT(0,T); : LINPUT ?-STR(A1$,1,3) : PRINT AT(0,(T+3)); : LINPUT "."? -STR(A1$,4,4) : IF VER(STR(A1$),"HHHH ")<>7 THEN 510 : MAT COPY -STR(A1$,,4) TO -STR(A1$) : STR(A1$,,3)="00." 0510 IF VER(A1$,"H0.HHHH")<>7 OR POS("048C26AE"=STR(A1$,1,1))=0 THEN 500 : PRINT AT(0,T+1,8); A1$; : T=T+8 : RETURN 0520 REM %AECM.................................... : REM WHICH BOARD(S)? : GOSUB '57(A2$) : B2=B : Q2=Q : GOSUB '57(A$) : REM CHECK FOR ADDRESSING ERROR WITHIN CHIP : IF Q=Q2 THEN 560 0530 PRINT AT(0,0); : IF B=B2 THEN PRINT "Error in board";B : ELSE PRINT "Error in boards";B;"&";B2 0540 PRINT AT(4,0);"Writing to location ";HEXOF(A2$);" seems to modify locatio n ";HEXOF(A$);" bits ";HEXOF(D$) 0550 PRINT : PRINT "or the following chip failure may have occured:" : PRINT " BECM ";HEXOF(A$);" ";HEXOF(D$) : GOTO 690 0560 REM %BECM.................................... : X$=D$ : GOTO 620 0570 REM %PECM.................................... : REM GET DISK FILE TO COMPARE WITH : PRINT AT(2,0);"Disk file to compare instruction with (";HEX(222022);" if none):"; : LINPUT ?-F$ : IF F$<>" " THEN 580 : X$=ALL(FF) : GOTO 620 0580 PRINT AT(3,0); : LINPUT " Disk address (/310,/B10,/320 OR /B20):"?-F1$ : MAT SEARCH "/310/B10/320/B20",=STR(F1$) TO L$ : IF L$=HEX(0000) THEN 580 : ON (VAL(L$,2)+3)/4 SELECT #1/310;#1/B10;#1/320;#1/B20 0590 LIMITS T#1,F$,F1,F2,F3,F4 : ERRORPRINT "DISK ERROR";ERR : GOTO 570 0600 IF F4=2 THEN 610 : PRINT "FILE NOT ON DISK" : GOTO 570 0610 REM SEARCH DISK FILE : GOSUB '52(A$) : IF F6$="FOUND" THEN X$=D$ XOR F5$ : ELSE X$=ALL(FF) : PRINT AT(1,33,210); : IF F6$="FOUND" THEN PRINT "XOR with disk file ";HEXOF(X$) : ELSE PRINT "Instruction not in disk file." 0620 REM WHICH BOARD? ROW? : GOSUB '57(A$) : Q=MOD(Q-1,3) : PRINT AT(0,0); : IF B=3 THEN PRINT "Error in bootstrap." : IF B=1 OR B=2 THEN PRINT "Error in ";STR(M$(B),,4);",Board";B : ELSE GOTO 690 0630 REM WHICH CHIPS? : GOSUB '53(X$,24) 0640 REM DISPLAY BOARD : IF STR(M$(B),,4)="6788" THEN GOSUB '54(6) : ELSE GOSUB '54(4) : FOR I=1 TO 24 : IF C$(I)<>"E" THEN 680 : IF G$="Y" THEN GOTO 660 : PRINT AT(3*(INT((I-1)/12)+Q*2)+3,4*MOD(I-1,6)+1+55*INT(MOD(I-1,12)/6));"( X)" 0650 PRINT AT(3*(INT((I-1)/12)+Q*2)+4,4*MOD(I-1,6)+1+55*INT(MOD(I-1,12)/6));"( X)"; : GOTO 680 0660 PRINT AT(3*(INT((I-1)/12)+Q*2)+3,3*MOD(I-1,6)+2+59*INT(MOD(I-1,12)/6));HE X(020402020E);" " 0670 PRINT AT(3*(INT((I-1)/12)+Q*2)+4,3*MOD(I-1,6)+2+59*INT(MOD(I-1,12)/6));" ";HEX(0F) 0680 NEXT I 0690 KEYIN K$,,180 : GOTO 390 0700 REM %VECM.................................... : X$=HEX(FFFFFF) : GOTO 620 0710 REM %AEDM.................................... 0720 REM WHICH BOARD(S)? : GOSUB '56(P2$,A2$) : P2$=P9$ : B2=B : Q2=Q : GOSUB '56(P$,A$) : P$=P9$ 0730 REM CHECK FOR ADDRESSING ERROR WITHIN CHIP : IF Q<>Q2 THEN 740 : T$=A$ XOR A2$ AND HEX(0001) : IF STR(T$,,2)=HEX(0000) THEN 770 0740 PRINT AT(0,0); : IF B=B2 THEN PRINT "Error in board";B : ELSE PRINT "Error in boards";B;"&";B2 0750 PRINT AT(4,0);"Writing to location ";P2$;"0.";HEXOF(A2$);" seems to modif y location ";P$;"0.";HEXOF(A$);" bits ";HEXOF(STR(D$,,2)) 0760 PRINT : PRINT "or the following chip failure may have occured:" : PRINT " BEDM ";P$;"0.";HEXOF(A$);" ";HEXOF(STR(D$,,2)) : GOTO 900 0770 REM %BEDM.................................... : IF STR(D$,,2)<>HEX(0000) THEN X$=STR(D$,,2) & HEX(00) : ELSE X$=HEX(0000C0) : GOTO 800 0780 REM %PEDM.................................... : X$=HEX(FFFFC0) : GOTO 820 0790 REM %REDM.................................... : IF STR(D$,,1)<>HEX(00) THEN X$=STR(D$,,1) & HEX(0000) : ELSE X$=HEX(00FFC0) 0800 REM CHECK FOR EVEN/ODD ADDRESS : REM THIS IF WILL CAUSE THE ERROR DATA TO REVERSE ON ODD ADDRESS IF MOD(V AL(STR(A$,2)),2)=1 THEN 820 : X1$=STR(X$,2,1) & STR(X$,,1) : STR(X$,,2)=X1$ : GOTO 820 0810 REM %VEDM.................................... : X$=HEX(FFFFC0) 0820 REM WHICH BOARD? ROW? : GOSUB '56(P$,A$) : PRINT AT(0,0);"Error in ";STR(S$(B),,4);",Board";B : Q=MOD(Q-1,4) 0830 REM WHICH CHIPS? : GOSUB '53(X$,18) 0840 REM DISPLAY BOARD : GOSUB '55(4) : FOR I=1 TO 18 : IF C$(I)<>"E" THEN 890 : L=I-2 : IF I>10 THEN L=L+1 : IF I=1 THEN L=9 : IF I=2 THEN L=18 0850 IF G$<>"Y" THEN 870 : PRINT AT(3*Q+4,3*MOD(L-1,9)+2+50*INT((L-1)/9));HEX(06020402020E);" "; 0860 PRINT AT(3*Q+5,3*MOD(L-1,9)+2+50*INT((L-1)/9));" ";HEX(0F); : GOTO 890 0870 PRINT AT(3*Q+5,4*MOD(L-1,9)+1+43*INT((L-1)/9));"(X)"; 0880 PRINT AT(3*Q+6,4*MOD(L-1,9)+1+43*INT((L-1)/9));"(X)"; 0890 NEXT I 0900 KEYIN K$,,390 : GOTO 390 0910 REM %FIND INSTRUCTION IN DISK FILE.......................... : REM ENTRY -- L$=INSTRUCTION ADDRESS 0920 DEFFN'52 (L$) : FOR S=F1+F3-3 TO F1 STEP -1 : DATA LOAD DA T#1,(S) F2$,F3$,F$() : F4$=F3$ ADDC STR(F3$,3,1) : IF STR(F2$,2,1)=HEX(03) AND L$>=STR(F3$,,2) AND L$<F4$ THEN 930 : NEXT S : F6$="NOT FOUND" : RETURN 0930 F4$=L$ SUBC STR(F3$,,2) : F5$=STR(F$(),VAL(F4$,2)*3+1,3) : F6$="FOUND" : RETURN 0940 REM %FIND BAD CHIPS................................. : REM ENTRY -- C$ = XOR OF DATA : REM -- C = 8 OR 24 (BIT) : REM EXIT -- C$(I) ="E" IFF BAD CHIP (I=1-18 OR 24) 0950 DEFFN'53(C$,C) : C$()=" " : FOR I=C TO 1 STEP -1 : IF C$>=HEX(800000) THEN C$(I)="E" : ROTATEC (C$,1) : NEXT I : RETURN 0960 REM %^DISPLAY CONTROL MEMORY BOARD......................... : REM ENTRY-- X=no. of chip rows on board : REM 0970 DEFFN'54(X) : PRINT AT(2,0);HEX(06); : IF G$="Y" THEN GOTO 2000 : FOR I=1 TO X : PRINT Z$,Z1$,Z1$ : NEXT I : PRINT Z4$,Z4$ : SELECT PRINT /005(0) : PRINT Z2$ : SELECT PRINT /005(80) : RETURN 0980 REM %DISPLAY DATA MEMORY BOARD......................... : REM ENTRY X = numnber of chip rows on the board 0990 DEFFN'55(X) : IF G$="Y" THEN GOTO 2100 : PRINT AT(4,0);HEX(06); : FOR I=1 TO 4 : PRINT Z$,Z3$,Z3$ : NEXT I : PRINT Z4$,Z4$ 1000 SELECT PRINT /005(0) : PRINT Z2$ : SELECT PRINT /005(80) : RETURN 1010 REM %^FIND DM BOARD & ROW........................ : REM ENTRY-- P9$=page (0,4,8,C) : REM A9$=address : REM EXIT-- B=board (1 or 2) : REM Q=row (1-8) : REM 1020 DEFFN'56(P9$,A9$) : REM WHICH BOARD? : IF A9$<HEX(2000) THEN P9$="0" : Q=INT(VAL(A9$)/4)+64*(POS("048C26AE"=P9$)-1)+1 : CONVERT STR(S$,,LEN(S$)-1) TO X : IF Q<=X THEN 1040 1030 PRINT AT(5,0);"Invalid address -- not within specified memory configurati on." : RETURN CLEAR ALL : GOTO 690 1040 B=1 : IF STR(S$(1),1,4)="6787" AND Q>32 THEN B=2 : IF STR(S$(1),1,4)="7587" AND Q>128 THEN B=2 : IF STR(S$(1),1,4)="7587" AND Q>256 THEN B=3 : IF STR(S$(1),1,4)="7587" AND Q>384 THEN B=4 1050 REM DETERMINE CHIP ROW (1-8) : IF B=2 AND STR(S$(1),1,4)="6787"THEN Q=Q-32 : IF B=2 AND STR(S$(1),1,4)="7587"THEN Q=Q-128 : IF B=3 AND STR(S$(1),1,4)="7587"THEN Q=Q-256 : IF B=4 AND STR(S$(1),1,4)="7587" THEN Q=Q-384 1060 IF STR(S$(B),1,4)="6787"THEN Q=INT((Q+7)/8) : ELSE Q=INT((Q+31)/32) : IF B=2 THEN Q=Q+4 : IF B=4 THEN Q=Q+4 : CONVERT Q TO Q$,(#) : Q=POS(R$=Q$) : RETURN 1070 REM %^FIND CM BOARD & ROW........................ : REM ENTRY-- A9$=address : REM EXIT-- B=board (1,2 or 3) : REM Q=row (1-6) : REM 1080 DEFFN'57(A9$) : REM WHICH BOARD? : B=3 : Q=INT(VAL(A9$)/16)+1 : IF A9$>=HEX(8000) AND A9$<HEX(8400) THEN RETURN : CONVERT STR(M$,,LEN(M$)-1) TO X : IF Q*4>X THEN 1030 : B=1 : IF STR(M$(1),,4)="7588" THEN 1100 : IF Q=3 OR Q=4 OR Q=6 THEN B=2 1090 REM WHICH ROW? : CONVERT Q TO Q$,(#) : Q=POS(R1$=Q$) : RETURN 1100 CONVERT INT((Q-1)/4)+1 TO Q$,(#) : IF Q$="3" OR Q$="4" THEN B=2 : Q=POS(R1$=Q$) : RETURN 2000 REM %^DISPLAY CONTROL MEMORY BOARD WITH GRAPHICS : REM ENTRY X = number of chip rows on the board 2010 PRINT AT(2,0,); BOX(0,79); 2020 FOR I=1 TO X : PRINT HEX(0D); BOX(3,0);" ";HEX(0A); : FOR I1=1 TO 2 : FOR I2=1 TO 6 : PRINT BOX(2,2);I2; : NEXT I2 : IF I1=1 THEN PRINT TAB(60); : NEXT I1 : PRINT " ";HEX(0C); BOX(3,0);HEX(0A0A) : NEXT I 2030 IF X>=6 THEN GOTO 2200 : FOR I=X TO 6 : PRINT BOX (2,0); TAB(79); BOX(2,0); HEX(0A) : NEXT I : GOTO 2200 2100 REM %DISPLAY DATA MEMORY BOARD WITH GRAPHICS : REM ENTRY X = number of chip rows on the board 2110 PRINT AT(3,0,); BOX(0,79); 2120 FOR I=1 TO X : PRINT HEX(0D); BOX(3,0);" ";HEX(0A); : FOR I1=1 TO 2 : FOR I2=1 TO 9 : PRINT BOX(2,2); : IF I2=9 THEN PRINT " P "; : ELSE PRINT I2; : NEXT I2 : IF I1=1 THEN PRINT TAB(51); : NEXT I1 : PRINT " ";HEX(0C); BOX(3,0);HEX(0A0A) : NEXT I 2130 IF X>=6 THEN GOTO 2200 : FOR I=X+1 TO 6 : PRINT BOX (2,0); TAB(79); BOX(2,0); HEX(0A) : NEXT I : GOTO 2200 2200 REM % DRAW BOTTOM OF BOARD : PRINT BOX(1,0);TAB(79); BOX(1,0) 2210 PRINT BOX(0,1); " "; BOX(2,0); HEX(0A0A); BOX(0,26); TAB(27); HEX(0C0C); BOX(2,0); BOX(0,3); TAB(30); BOX(2,0); HEX(0A0A); BOX(0,26); TAB(56); HEX (0C0C); BOX(2,0); BOX(0,3); TAB(59); BOX(2,0); HEX(0A0A); BOX(0,19); TAB( 78); HEX(0C0C); BOX(2,0); BOX(0,1); 2220 RETURN 2500 STOP " DONE" 8000 REM %^SAVE FILE.......................... : SCRATCH T"MECI" : SAVE T()"MECI" : STOP "SAVED MECI" : REM % 9000 REM %LIST............................... : SELECT LIST /215(132) : LIST "MECI"D : LIST "MECI"V : LIST "MECI"# : LIST ' : SELECT LIST /005(80)