image of READY prompt

Wang2200.org

Listing of file='START' on disk='vmedia/wcs_diags.wvd.zip'

# Sector 117, program filename = 'START'
0010 REM -- START -- RICHARD NICHOLS -- 02/12/76
0020 COM H7$8,N5$(8)8,P8,P9,O0,O1,O2,O3,O4,O5,O8,O9,D9$(32)8,E9$(7)2,E(6),Z9(1
     ),S8,G$,E1$
   : DIM N1$(7)8,N2$(7),N3$(7),N4$(7),L$(7)2,L(7),L1(7),A$(4)3,Z$1,C$(10)30,G$
     (4)64,C$64
   : O8=1
   : GOTO 510
0023 PRINT HEX(03)
0030 LOAD DC T"START/1"
0040 LOAD DC T"EXPAN-02"
0050 PRINT HEX(030D);TAB(20);"2200 SYSTEM DIAGNOSTIC"
   : GOSUB '250(26)
   : PRINT TAB(18);C$
   : PRINT
   : K=0
0060 PRINTUSING 140,"00","ENTIRE C.P.U"
0070 PRINTUSING 140,"01","MEMORY"
0080 PRINTUSING 140,"02","MAT ROM  (ONLY)"
0090 PRINTUSING 140,"03","GIO ROM  (ONLY)"
0100 PRINTUSING 140,"04","SORT ROM (ONLY)"
0110 PRINTUSING 140,"05","PRINTERS"
0120 PRINTUSING 140,"06","DISKS"
0130 PRINTUSING 140,"07","C.P.U TEST RESULTS"
   : PRINTUSING 140,"08","DIAGNOSTIC VERIFICATION"
0140 %                  ## ..... #######################
0150 KEYIN STR(Z$,1,1),150,160
   : GOTO 150
0160 Z=VAL(STR(Z$,1,1))+1
   : ON Z GOTO 170,440,450,460,470,490,500,730,40
   : GOTO 50
0170 DEFFN'00
   : PRINT HEX(03)
   : INIT(20)Z1$,A$(),C$()
   : K=5
0180 PRINT "DO YOU WISH TO TEST ( KEY 'Y' OR 'N' )"
0190 GOSUB '248("MATRIX ROM")
   : IF Z$<>"Y"THEN 200
   : K=K+4
   : A1$="OP1D010A"
   : C$(1)="MATRIX"
   : A$(1)=A1$
0200 GOSUB '248("GIO")
   : IF Z$<>"Y"THEN 210
   : K=K+1
   : A2$="OP2D010A"
   : C$(2)="GENERAL I/O"
   : A$(2)=A2$
0210 GOSUB '248("SORT")
   : IF Z$<>"Y"THEN 220
   : K=K+6
   : A3$="OP5D010A"
   : C$(3)="SORT"
   : A$(3)=A3$
0220 IF A1$="OP1D010A"THEN 240
   : IF A2$="OP2D010A"THEN 250
   : IF A3$="OP5D010A"THEN 260
0230 A1$,A2$,A3$="DISK MC1"
   : GOTO 300
0240 IF A2$="OP2D010A"THEN 270
   : A2$="OP5D010A"
   : GOTO 270
0250 A1$="OP2D010A"
   : GOTO 270
0260 A1$,A2$=A3$
   : GOTO 300
0270 IF A3$="OP5D010A"THEN 300
   : A3$="DISK MC1"
   : IF A2$="OP5D010A"THEN 290
0280 GOTO 300
0290 A2$="DISK MC1"
0300 PRINT HEX(030A0A0A);TAB(24);"MEMORY SIZE "
   : GOSUB '250(28)
   : PRINT TAB(16);C$
0310 FOR X=2TO 8
   : PRINT TAB(15);X;" ...................";X*4;TAB(22);" K"
   : NEXT X
   : PRINT TAB(16);C$
0320 PRINT HEX(01);"NUMBER OF 'K' MEMORY"
   : PRINT "-";HEX(0D)
0330 KEYIN Z$,340,330
   : GOTO 330
0340 PRINT Z$
   : IF STR(Z$,1,1)=HEX(0D)THEN 50
   : CONVERT Z$TO Z
   : Z=Z*4
   : CONVERT ZTO STR(M$,1,2),(##)
   : STR(M$,3,1)="K"
   : A$(4)=M$
   : STR(C$(4),1,3)=M$
   : STR(C$(4),5,7)=" MEMORY"
   : IF Z>32THEN 300
   : ON Z/4-1 GOSUB 870,880,890,900,910,920,930
0350 PRINT HEX(03);TAB(18);"2200  CPU DIAGNOSTIC"
   : GOSUB '250(27)
   : PRINT TAB(15);C$;HEX(0A0A)
   : FOR P=1TO 10
   : PRINT TAB(INT(57-LEN(C$(P)))/2);C$(P)
   : NEXT P
   : PRINT HEX(0D)
   : PRINT TAB(10);"KEY RETURN / (EXEC) TO IF OK 'N' TO CHANGE"
   : GOSUB '250(58)
   : PRINT TAB(2);C$;
0360 KEYIN STR(Z1$,1,1),370,370
   : GOTO 360
0370 IF STR(Z1$,1,1)<>HEX(0D)THEN 50
0380 DATA SAVE DA T(1023,L)A1$,A2$,A3$,"DISK MC1",M$,0,S8,0,0,0,0,0,0,E1$
0390 LOAD DC T"MEM-LOAD"
0400 DEFFN'248(D$)
0410 PRINT HEX(010A);D$;"   "
   : PRINT "-";HEX(0D)
0420 KEYIN Z$,430,430
   : GOTO 420
0430 PRINT Z$
   : FOR T=1TO 40
   : NEXT T
   : RETURN
0440 DEFFN'01
   : LOAD DC T"MEMORY"
0450 DEFFN'02
   : A$="OP1D010A"
   : GOTO 480
0460 DEFFN'03
   : A$="OP2D010A"
   : GOTO 480
0470 DEFFN'04
   : A$="OP5D010A"
0480 DATA SAVE DA T$(1023,L)A$,A$,A$,A$
   : Z9(1)=1
   : LOAD DC TA$
0490 DEFFN'05
   : LOAD DC T"PRINTERS"
0500 DEFFN'06
   : LOAD DC T"DISKS"
0510 PRINT HEX(03)
   : GOSUB 610
   : PRINT HEX(010A0A0A);TAB(18);"PRIMARY DISK DEVICE ADDRESS"
   : GOSUB '250(29)
   : PRINT TAB(17);C$;HEX(0D0A0A0A0A0A)
   : GOSUB '250(29)
   : PRINT TAB(17);C$
0520 KEYIN Z$,520,530
   : GOTO 520
0530 GOSUB '250(38)
   : PRINT HEX(030A0A0A0A0A);TAB(12);C$
   : PRINT TAB(12);"****  INITIALIZING PROGRAM FILES  ****"
   : PRINT TAB(12);C$
   : Z=VAL(STR(Z$,1,1))+1
   : ON Z GOSUB 620,630,640,650
0540 LIMITS T"DISK MC3",A,B,C
   : DATA LOAD BA T(A+1,L)G$()
   : STR(G$(2),62,3),STR(G$(3),4,3),STR(G$(3),10,3),STR(G$(3),16,3),STR(G$(3),
     22,3),STR(G$(3),28,3)=G$
   : DATA SAVE BA T$(A+1,L)G$()
   : X=0
0550 DATA LOAD BA T(1023,L)G$()
0560 F=2
   : DATA LOAD BA T(2399,L)G$()
0570 F=3
   : DATA LOAD BA T(4799,L)G$()
0580 F=4
   : DATA LOAD BA T(9791,L)G$()
0590 F=5
   : DATA LOAD BA T(19583,L)G$()
0600 S8=19583
   : E1$="2260"
   : STR(G$,4,4)=HEX(04130800)
   : IF STR(G$,1,1)="B"THEN 720
   : GOTO 30
0610 PRINT HEX(0A0A0A0A0A);TAB(25);"00 ..... 310"
   : PRINT TAB(25);"01 ..... B10"
   : PRINT TAB(25);"02 ..... 320"
   : PRINT TAB(25);"03 ..... B20"
0620 G$="310"
   : SELECT DISK 310
   : RETURN
0630 G$="B10"
   : SELECT DISK B10
   : RETURN
0640 G$="320"
   : SELECT DISK 320
   : RETURN
0650 G$="B20"
   : SELECT DISK B20
   : RETURN
0660 ON ERROR E$,N$ GOTO 670
0670 F=F-1
   : ON F GOTO 680,690,700,710
0680 S8=1023
   : STR(G$,4,4)=HEX(00040000)
   : E1$="DISKETTE"
   : GOTO 30
0690 S8=2399
   : STR(G$,4,4)=HEX(00090600)
   : E1$="2230-1"
   : GOTO 30
0700 S8=4799
   : STR(G$,4,4)=HEX(01021300)
   : E1$="2230-2"
   : GOTO 30
0710 S8=9791
   : STR(G$,4,4)=HEX(02060400)
   : E1$="2230-3"
   : IF STR(G$,1,1)="B"THEN 720
   : GOTO 30
0720 ADD(STR(G$,4,1),07)
   : GOTO 30
0730 DATA LOAD DA T(1023,L)A1$,A2$,A3$,A4$,A5$,Z9(1),S8,E()
0740 PRINT HEX(03);TAB(22);"ACCUMULATIVE ERRORS"
   : GOSUB '250(23)
   : PRINT TAB(20);C$
0750 PRINT TAB(22);Z9(1);"ITERATIONS";HEX(0A0A)
0760 PRINTUSING 850,"BASIC DIAGNOSTIC",E(1)
0770 PRINTUSING 850,"MATRIX ROM",E(2)
0780 PRINTUSING 850,"GENERAL I/O ROM",E(3)
0790 PRINTUSING 850,"SORT ROM",E(4)
0800 PRINTUSING 850,"DISK MICRO-CODE",E(5)
0810 PRINTUSING 850,"MEMORY",E(6)
0820 PRINT HEX(0A0A0A);TAB(17);"KEY RETURN / EXEC. FOR MENU"
0830 KEYIN A1$,840,840
   : GOTO 830
0840 Z9(1)=0
   : GOTO 50
0850 %          ################  ............ ####  ERRORS
0860 DEFFN'250(C)
   : INIT(20)C$
   : INIT("*")STR(C$,1,C)
   : RETURN
0870 STR(G$,1,3)="053"
   : STR(G$,4,4)="0742"
   : GOTO 940
0880 STR(G$,1,3)="085"
   : STR(G$,4,4)="1190"
   : GOTO 940
0890 STR(G$,1,3)="117"
   : STR(G$,4,4)="1638"
   : GOTO 940
0900 STR(G$,1,3)="149"
   : STR(G$,4,4)="2086"
   : GOTO 940
0910 STR(G$,1,3)="181"
   : STR(G$,4,4)="2534"
   : GOTO 940
0920 STR(G$,1,3)="213"
   : STR(G$,4,4)="2982"
   : GOTO 940
0930 STR(G$,1,3)="245"
   : STR(G$,4,4)="3430"
   : GOTO 940
0940 LIMITS T"EXPAN-05",A,B,C
   : DATA LOAD BA T(A+1,L)G$()
   : STR(G$(1),15,3)=STR(G$,1,3)
   : STR(G$(3),41,4)=STR(G$,4,4)
   : DATA SAVE BA T$(A+1,L)G$()
   : DATA LOAD BA T(L,L)G$()
   : STR(G$(1),25,3)=STR(G$,1,3)
   : DATA SAVE BA T(A+2,L)G$()
0950 CONVERT STR(G$,4,4)TO K1
   : IF A3$="OP5D010A"THEN 955
   : K1=.00328*K1
   : GOTO 960
0955 CONVERT STR(M$,1,2)TO K1
   : K1=K1*.0625
0960 K=K+K1
   : C$(7)="APPROX."
   : CONVERT KTO STR(C$(7),9,2),(##)
   : STR(C$(7),13)="MINUTES PER PASS"
   : RETURN