1  REM ****  HP TIME-SHARED BASIC PROGRAM LIBRARY *********************
2  REM
3  REM       36218     REV A     PART 1 OF 2
4  REM
5  REM       LIST/DUMP HP ASSEMBLER FILES
6  REM
7  REM ****  CONTRIBUTED PROGRAM **************************************
10  DIM Z$[72],X$[72],I$[72]
11  DIM L$[7],N$[10]
100  FILES 
110  X=16
200  I$="LDADJMISJSSTANXOIOCPLIMIOTSFHLOCDEEQABBSENRESONAEXOR"
210  L$="       "
220  N$="0123456789"
300  L0=0
303  L7=1
305  L8=1
310  L9=0
400  FOR N=1 TO X
410  IF  END #N THEN 8900
900  L0=L0+L7*L9
910  L9=1
920  L7=L8
930  L8=1
1000  READ #N;Z$
1005  IF Z$[1,1]="*" THEN 7900
1010  Z$[LEN(Z$)+1]=" "
1040  X$=Z$[7,8]
1050  FOR I=1 TO LEN(I$)-1 STEP 2
1060  IF X$=I$[I,I+1] THEN 1200
1065  NEXT I
1070  X$=Z$[7,9]
1071  IF X$="CLC" THEN 1200
1072  IF X$="CLF" THEN 1200
1075  IF X$="ASC" THEN 7000
1079  K=7
1080  FOR I=K TO LEN(Z$) STEP 1
1090  IF Z$[I,I]=" " THEN 1500
1100  NEXT I
1110  GOTO 1500
1200  K=11
1210  GOTO 1080
1500  IF I>24 THEN 7000
1510  FOR J=I TO LEN(Z$)
1520  IF Z$[J,J]#" " THEN 1550
1530  NEXT J
1540  GOTO 7000
1550  X$=Z$[I+1]
1560  Z$[I]="                      "
1570  Z$[26]=X$[1,LEN(X$) MIN 45]
1580  GOTO 7000
2000  FOR I=11 TO LEN(Z$)
2010  IF Z$[I,I]#" " THEN 2050
2020  NEXT I
2030  GOTO 8000
2050  L0=0
2060  J=1
2070  I=I-1
2080  L0=8*L0+J-1
2090  I=I+1
2100  FOR J=1 TO 8
2110  IF Z$[I,I]=N$[J,J] THEN 2080
2120  NEXT J
2130  L9=0
2140  GOTO 8500
3000  FOR J=11 TO LEN(Z$)
3010  IF Z$[J,J]#" " THEN 3035
3020  NEXT J
3030  GOTO 8000
3035  L9=1
3040  FOR I=J TO LEN(Z$)
3050  IF Z$[I,I]=" " THEN 8500
3060  IF Z$[I,I]#"," THEN 3080
3070  L9=L9+1
3080  NEXT I
3090  GOTO 8500
4000  FOR I=11 TO LEN(Z$)
4010  IF Z$[I,I]#" " THEN 4050
4020  NEXT I
4030  GOTO 8000
4050  L9=0
4060  J=1
4070  I=I-1
4080  L9=10*L9+J-1
4090  I=I+1
4100  FOR J=1 TO 10
4110  IF Z$[I,I]=N$[J,J] THEN 4080
4120  NEXT J
4130  GOTO 8500
5000  FOR I=11 TO LEN(Z$)
5010  IF Z$[I,I]#" " THEN 5050
5020  NEXT I
5030  GOTO 8000
5050  L8=0
5060  J=1
5070  I=I-1
5080  L8=10*L8+J-1
5090  I=I+1
5100  FOR J=1 TO 10
5110  IF Z$[I,I]=N$[J,J] THEN 5080
5120  NEXT J
5130  L9=0
5140  GOTO 8500
7000  IF Z$[7,9]="ORG" THEN 2000
7010  IF Z$[7,9]="EQU" THEN 8000
7020  IF Z$[7,9]="OCT" THEN 3000
7030  IF Z$[7,9]="DEC" THEN 3000
7040  IF Z$[7,9]="BSS" THEN 4000
7050  IF Z$[7,9]="REP" THEN 5000
7060  IF Z$[7,9]="END" THEN 8000
7090  GOTO 8500
7900  PRINT Z$
7910  L9=0
7920  GOTO 900
8000  FOR I=LEN(Z$) TO 1 STEP -1
8010  IF Z$[I,I]#" " THEN 8040
8020  NEXT I
8030  I=LEN(Z$)
8040  PRINT "       ";Z$[1,I]
8050  L9=0
8060  GOTO 900
8090  I=I+1
8500  FOR I=LEN(Z$) TO 1 STEP -1
8510  IF Z$[I,I]#" " THEN 8540
8520  NEXT I
8530  I=LEN(Z$)
8540  L1=L0
8550  FOR J=5 TO 1 STEP -1
8560  L2=L1
8570  L1=INT(L1/8)
8575  L2=L2-8*L1+1
8580  L$[J,J]=N$[L2,L2]
8590  NEXT J
8600  PRINT L$;Z$[1,I]
8610  GOTO 900
8900  L0=L0-L9
8910  NEXT N
9000  REM
9999  END 
