image of READY prompt

Wang2200.org

Listing of file='2229DIAG' on disk='vmedia/2229_diagnostics.wvd.zip'

# Sector 24, program filename = '2229DIAG'
0000 COM F9$8
   : F9$="2229DIAG"
   : LOAD T"2229STRT"
0010 REM % "2229DIAG" - 2229 DIAGNOSTIC   ST 02/06/1986
0020 REM % FILL TAPE WITH RANDOM LENGTH RECORDS AND RANDOM DATA, THEN READ ALL
      BLOCKS
   : PRINT HEX(03)
0025 REM % COPYRIGHT WANG LABORATORIES, INC., 1986,1987
0030 DIM A1$(16,16)64,B$(16,16)64,R$16,C1(2200),S$30,Z9$1,Z8$1,M$5
0035 M=2200
   : REM MAXIMUM RECORDS TO WRITE ON TAPE
0040 PRINT "2229 DIAGNOSTIC"
   : PRINT
   : PRINT "************   WARNING   ************"
   : PRINT
   : PRINT "This test will destroy all data on the tape"
   : PRINT
   : PRINT "Press SF Key 00 to start long test"
0045 PRINT "Press SF Key 01 to start short test"
   : STOP
   : GOTO 10
0050 DEFFN'01
   : M=100
   : GOTO 100
0090 DEFFN'00
0100 PRINT HEX(03);"2229 Write/Read Diagnostic"
   : P=1
0110 FOR B=1TO 256
   : STR(A1$(),B,1)=BIN(B-1)
   : NEXT B
   : FOR B=1TO 256STEP 15
   : STR(A1$(),B,2)=HEX(AA55)
   : NEXT B
   : FOR B=4TO 256STEP 12
   : STR(A1$(),B,2)=HEX(FF00)
   : NEXT B
   : A1$()=A1$()&STR(A1$())
0115 GOSUB '102
   : PRINT AT(0,40);"Tape drive PROM rev";VAL(STR(S$,5,1))
0120 REM % LOAD
0130 PRINT AT(2,0,);"Loading Tape ...   "
   : $GIO#4(4404 8701,R$)
   : E=VAL(STR(R$,1,1))
   : IF E=0THEN 140
   : PRINT AT(8,0,);"ERROR ";E;" ON TAPE LOAD"
   : STOP #
0140 PRINT AT(2,0,);
   : PRINTUSING 190
   : M$="Write"
0150 B$()=A1$()
   : REM SAVE START OF A1$()
   : W,R=0
0160 W=W+1
   : REM # OF WRITES
   : B=INT(RND(1)*16383)+2
   : IF W>MTHEN 240
0170 C1(W)=B
   : REM SAVE LENGTH OF THIS RECORD
0180 REM WRITE
   : PRINT HEX(06); AT(3,0,80);
   : PRINTUSING 200,P,M$,W,B;
   : PRINT HEXOF(STR(A1$(),1,8))
0190 %Tape Pass   Mode    Record    Bytes     Data
0200 %   ###      #####    ####     #####    ############
0210 STR(R$,3,2)=BIN(B,2)
   : $GIO#4(440D 4230 4240 8701,R$)
   : E=VAL(STR(R$,1,1))
   : IF E=5THEN 240
   : IF E=0THEN 220
   : PRINT AT(8,0);"ERROR ";E;" ON TAPE WRITE"
   : STOP
0220 $GIO#4(1300 1800 A000,R$)STR(A1$(),1,VAL(STR(R$,3,2),2))
0230 ROTATEC(STR(A1$()),(MOD(B,9)))
   : GOTO 160
0240 REM GET WRITE RESULTS
   : $GIO#4(4420 8701 8702,R$)
   : W=W-1-VAL(STR(R$,2,1))
   : E=VAL(STR(R$,1,1))
   : IF E=0THEN 250
   : IF E=2THEN 250
   : PRINT AT(8,0);"ERROR ";E;" ON TAPE WRITE"
   : STOP
0250 REM LOAD TAPE
   : PRINT AT(2,0,);"Loading Tape ..."
   : $GIO#4(4404 8701,R$)
   : E=VAL(STR(R$,1,1))
   : IF E=0THEN 260
   : PRINT "ERROR ";E;" ON TAPE LOAD"
   : STOP
0260 REM READ ALL RECORDS
   : R=1
   : M$="Read"
   : PRINT AT(2,0,)
   : PRINTUSING 190
0270 B=0
   : $GIO#4(440C 8701,R$)
   : E=VAL(STR(R$,1,1))
   : IF E=2THEN STOP "UNEXPECTED END OF TAPE ON READ"
   : IF E=0THEN 280
   : PRINT AT(8,0);"ERROR ";E;" ON READ"
   : STOP
0280 $GIO#4(8703 8704,R$)
   : B=VAL(STR(R$,3,2),2)
   : IF B>=2AND B<=16384THEN 285
   : PRINT AT(8,0);"ILLEGAL RECORD LENGTH"
   : STOP
0285 $GIO#4(1800 C340,R$)STR(A1$(),1,VAL(STR(R$,3,2),2))
0290 REM READ
   : PRINT HEX(06); AT(3,0,80);
   : PRINTUSING 200,P,M$,R,B;
   : PRINT HEXOF(STR(A1$(),1,8))
0300 IF B=C1(R)THEN 310
   : PRINT AT(8,0);"The number of bytes read is not equal to the number of byt
     es written"
   : STOP #
0310 IF STR(A1$(),1,B)=STR(B$(),1,B)THEN 320
   : PRINT AT(8,0);"Data Compare Error"
   : STOP #
0320 R=R+1
   : IF R>WTHEN 330
   : REM JUMP IF DONE
   : ROTATEC(STR(B$()),(MOD(B,9)))
   : GOTO 270
0330 REM
0340 P=P+1
0350 GOTO 120
0370 STOP
5210 DEFFN'102
   : REM % BOARD STATUS
   : S$=ALL(20)
   : R$=ALL(01)
   : $GIO#4(4402 8701 1800 C340,R$)STR(S$,1,VAL(STR(R$,1,1)))
   : RETURN