IMD 1.16: 2/09/2008 18:17:12 84-93655-01 e400 f65501 os4 rtx/sfm demos    @0|)wwЀЀtQql)  " }gA `_l M@IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIOS4 MF182020516011504820205160115 8202051601150F65501 VOLOS4 RTX/SFM DEMOS 84-93655-01-E400   IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII_l M@iGyy GGG`HZ@ b G`^Y e IQ BBp@;:9 :7P@ G:پN 8!0. * C'xC# b# }B @0DAJL w+™ЀЀΖQA1"   i ž} š} @EEFF)DEۄF8 џ} ԟ} ̟} * `jUBBI,v BI, # @ G9H@pܾrCHC C GTq` Lg"gEXC P+s=胾P+c fQN p $Rxnj  ޔniZ ތ⊞ } }HGž Ÿ@ALS)"$ C k20j.h( +$`%ꂜ\1 !M' y %'+os慾)sY ed|{ @8 o O m J K i gN )V% t%sLn`"E F. F„ D>) =`;nrgy w"G,{Kq1 A&}E*`(t@% ;c  765y342(.OS:: SYS"iwvc Bc A@6<# Ic B# gIjHc r/ SFMDEMO.JCL --- JCL TO ASSEMBLE & LINK SFM DEMO PROGRAM / (93441-7A-E400) / THE FOLLOWING DIRECTORY ASSIGNMENTS ARE ASSUMED: / UF CONTAINS THE SFM DEMO SOURCE (SFMDEMO.ASM) / X1 CONTAINS THE MACRO FILES / X2 CONTAINS THE RTX LIBRARY (RTX.LIB) / X2 CONTAINS THE IOS LIBRARY (IOS.LIB) / X2 CONTAINS THE SFM LIBRARY (SFM.LIB) / /PAUSE --- ARE ALL ASSIGNMENTS CORRECT? / /MACRO SFMDEMO(D=X1.GEN+X1.RTX+X1.IOS+X1.IOSD+X1.SFM+X1.SFMD) /DI SF /PAUSE --- IF SYSTEM IS ON FLOPPY, LOAD LINKER FLOPPY INTO SF /MO SF /LINK SFMDEMO(RL=100)+X2.SFM+X2.IOS+X2.RTX /DI SF /PAUSE --- IF SYSTEM IS ON FLOPPY, LOAD SYSTEM FLOPPY INTO SF /MO SF / /JO SFM DEMO PROGRAM CREATED ON UF X2 CONTAINS THE RTX LIBRARY (RTX.LIB) / X2 CONTAINS THE IOS LIBRARY (IOS.LIB) / X2 CONTAINS THE SFM LIBRARY (SFM.LIB) / /PAUSE --- ARE ALL ASSIGNMENTS CORRECT?/ SFMDEMO:ANL --- ASSEMBLE & LINK SFMDEMO (93441-70-E100) / ALL SOURCE FILES ASSUMED TO BE ON UF /  CREATES OBJECT & LISTING ON UF / CREATES BINARY & MAP ON UF / CREATES ERROR LISTING ON S L / /MACRO SFMDEMO(D=GEN+RTX+IOS+IOSD+SFM+SFMD,L=) / /PAUSE --- PROCEED TO LINK? / /AS X4 LO /AS LO SFMDEMO.MAP /LINK SFMDEMO(RL=100)+SF.SFM+SF.IOS+SF.RTX /AS LO X4 / /CO OC=SFMDEMO.MAP(FL) 205160115820205160115O0SEGMENTBLANK SFMDEMO:o KFM:SVC DEBUG4 iiJTDB ECB RDFC JRDIOB FILESM BUFSM JMSG BP IBUF JHAD LUNT LUNF JVOLUME NAME RLNPP JSEXTPP INXTPP LUNPP JDIRLUN DIRPUN UNIT JOPCODE DIRPL UAT:S JBUF:N R:INIT IODEMO JG:A O0SEGMENTBLANK SFMDEMO:OTABLE: o  KF:MONT F:CREA F:CONN KR:SIG R:BGIN R:WAIT KR:CINT RTX: FM:SFM KD:DH00 D:DM01 D:DM00 KD:DF01 D:DF00 D:PP00 KD:PR00 D:LP00 D:CR00 KD:TY00 I:IO DEBUG4 KSLU IOERR ERR14 KERR12 ERR11 ERR9A KERR10A ERR10 ERR9 KERR8 ERR7 ERR6 KERR5 ERR4 ERR2 KERR1 MES9 MES6A KMES6 MES5 MOV KIDI:A VIE:A COP:A KASS:A DEL:A CRE:A KMES0 NR:MBXL R:ECBL R:TDBL NBUF:: BUF: R:SL iigigTYtCRtLPtPRtPPtCItLOtSLtt t t t t  DRDUF1F2F3F4F5F6F7F8ii3kg>ii7fgkkkkkkkkkkiig ii gk dii gk n0llliASSIGNCOPY FCREATEDELETEDUMP EXTEND3IDIR MOUNT VIEW %DEBUG t FA FB FSUF0123456789ABCDEFgAggDR.  gg@ggggggg g g g i kg>it/t.t-t,t+t*g܀t0PZ Ct#o::d c[QtrT vσ,q(lŃ$:# bt :d z!NM{z:# :d  |q΃M Gt$:# :d |:# :d |HR-YL/=0 Ӟמ* a]I YU:"܆T:5 VQţ΂̸ = ʃ7U 4 اÂÇQ + :T#:U:# t!:d ztztw ¤tp žtiŃC:# :d |t) [Qtt ߞ  ۃڇܣ_ۂ\ؒ XKSEȡ G  ˂ʢ DFt':I ⾣ ߷  ⭀ߨ"Y t(:d # zyt-OPSKId"jYTZt&HfTnt DUR TLOg  C @HǬ@N2@% @ 'ߡuc # %' ߖ# @Xy * * Z * L M *I*MZI*g@e# YJ4Z Т΀)ƃG:t%:d # tz:d5 )K(@6 +-v # t { ԧǦ  ƃ;J # t" {t{txRt) -[L=HKd#I rFnopF # t {t w  ~@aIW%C B' `(Z%C @'` TKOo f akA  [Z77 U623 01 # +2 E ç( # t" {⨠@ "*!1F ϞQE*24) ã#  Ct$ # g ~+:j}vudS SL  |{z +. 5>:: DHY %'*UTLK YCItHSLgCI fgCI > Z[I C KLz⸣R@ ` L%'E 0 :ߣ Aߣ Fߠ ÛN!˙˘ @ ǕÖN1@Ǔ-,ߏ,ߏ, '%'!N# MNPORZJERR14 ERR12 ERR11 JERR9A ERR10A ERR10 JERR9 ERR8 ERR7 JERR6 ERR5 ERR4 JERR3 ERR2 ERR1 JMES9 MES6A MES6 JMES5 IOERR MES4 JMES3 MES2 MES1 JMES0 SLU MOV JIDI:A VIE:A COP:A JASS:A DEL:A CRE:A JG:B O0SEGMENTBLANK SFMDEMO:OTABLE: o 8HKD:TY00 F:CONN I:IO KF:DELE R:END F:CREA KR:SIG R:WAIT BP KIBUF HAD DIRPL KOPCODE LUNT LUNF KDIRLUN DIRPUN UNIT KLUNPP  RLNPP SEXTPP KINXTPP VOLUME NAME KFILESM BUFSM MSG KUAT:S RDFC RDIOB NR:TDBL iig!g IC @`@@+kc # I )+ # )w I@b g I"@bbV` [δ Q T` "bέQ U# g @BJ+ B CJS8#  :t T1ʣ+@`K  6 `+pƄK /:tgft tttt C @ @uĀ+c # ig k )dh ih)XYZ:tDH8:D{ttti gk )d~ i~:tD8G:4{igk  )d i X@ 1:t QX 0:t :tV::t,yc::tqtCI#tCIthti$gk, )d i )݃V:t  ؄@ DL 0CK` E M` B˄H C K[IÀ\8 ¸[r 1C 1K:t:8 w 4t 1C ,l G  &\ 1C ^\ tttSLD i0gk8 )d' i' )xVv U` T E Dm@ 0C` B:t  ^ CE;  UuG  1CL:t:F8w o qt#i >SB:t# C @:tc g bNjI))) …!' # gIODEMOg FILE  CREATEDg FILE DELETEDg $FILE ASSIGNED TO g *FILE : RECORDS COPIED gDUMP COMPLETE g SECTOR g VIEW COMPLETE DI RECTORY INITIALIZED gMOUNT COMPLETEg SYNTAX ERRORg  INVALID COMMAND g g  INVALID UNIT NAME g  INVALID MODEg  INVALID DECIMAL NUMBERgUNIT NOT FOUNDg INVALID FILE NAME g$FILE g ALREADY EXISTS gFILE g  NOT FOUNDg "I/O ERROR ON  g NEITHER UNIT OR VOLUME SPECIFIEDgFILE LU ERROR  1PAGE 0001 MACRO (E100) SFM IOS DEMO PROGRAM - SFMDEMO - 93440-10-E400 1980/06/06 12:15:35.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0002 SHARABLE SFMDEMO: 0000 0002 0003 SFMDEMO: REL 0005 * LENGTH OF MESSAGE 0006 MACRO LNM  0007 WORD #1-$-1*2 0008 ENDM 00004349 0010 CI EQU 'CI'  00004C4F 0011 LO EQU 'LO' LIST OUTPUT 0000534C 0012 SL EQU 'SL' SYSTEM LOG  0014 * Y SCRATCHPAD 00000000 0015 INLUN EQU 0 INPUT IOB 00000000 0016 INIOB EQU 0 00000002 0017 INCRI EQU 2 00000003 0018 INFC EQU 3 00000004 0019 INBCT EQU 4 00000005 0020 INBUF EQU 5 00000006 0021 INACT EQU 6 00000007 0022 INST EQU 7 00000008 0023 OUTLUN EQU 8 OUTPUT IOB 00000008 0024 OUTIOB EQU 8 0000000A 0025 OUTCRI EQU 10 0000000B 0026 OUTFC EQU 11 0000000C 0027 OUTBCT EQU 12 0000000D 0028 OUTBUF EQU 13 0000000E 0029 OUTACT EQU 14 0000000F 0030  OUTST EQU 15 1PAGE 0002 MACRO (E100) SFM IOS DEMO PROGRAM - SFMDEMO - 93440-10-E400 1980/06/06 12:15:36.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 00000010 0032 INFP EQU 16  INPUT FILE POINTER 00000012 0033 OUTFP EQU 18 OUTPUT FILE POINTER 00000014 0035 NAMPTR EQU 20 00000015 0036 VOLPTR EQU 21 00000016 0037 PUN EQU 22 00000017 0038 FNO EQU NAMPTR+FNO: 00000018 0039 LUN EQU NAMPTR+LUN: 00000018 0040 MOD EQU  LUN 00000018 0041 INXT EQU NAMPTR+INXT: 00000019 0042 SEXT EQU NAMPTR+SEXT: 0000001A 0043 RECLN EQU NAMPTR+RLN: 0000001B 0044 NAM EQU RECLN+1 00000022 0045 VOL EQU  NAM+7 00000029 0046 ENDY EQU VOL+7 0000002A 0047 IBUFF EQU ENDY+1 INPUT BUFFER  0000012A 0048 ENDB EQU IBUFF+256 END OF Y-SPAD FOR COPY 0049 SAVE   0050 LOAD DEBUG4 0051 LOAD FM:SVC 0052 END 0000 ERRORS (0000) 0000 WARNINGS (0000) 1PAGE 0003 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:08.75 SI = DH00.SFMDEMO  .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0054 SHARABLE SFMDEMO: 0000 0002 0055 SFMDEMO: REL 0000 0056 NAM G:A 00C5 0057 NAM IODEMO 0587  0058 NAM R:INIT 0005 0059 NAM BUF:N 0001 0060 NAM UAT:S 003C 0061 NAM DIRPL 00A1 0062 NAM OPCODE 009C 0063 NAM UNIT,DIRPUN,DIRLUN 003E 0040 009E 0064 NAM LUNPP 009E 0065  NAM INXTPP,SEXTPP,RLNPP 009F 00A0 00A4 0066 NAM NAME,VOLUME 00B2 00A2  0067 NAM LUNF,LUNT 00A3 0354 0068 NAM HAD,IBUF,BP 005A 0059  045B 0069 NAM MSG,BUFSM 09D1 0035 0070 NAM FILESM 04AB 0071 NAM RDIOB 04AE 0072 NAM RDFC 0073 EXTR MES0,MES1,MES2,MES3,MES4 0074 EXTR CRE:A,DEL:A,ASS:A,COP:A,VIE:A,IDI:A 0075 EXTR MOV 0076 EXTR MES5 0077 EXTR MES6 0078 EXTR MES6A 0079 EXTR MES9 1PAGE 0004 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:09.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0080 EXTR ERR1,ERR2,ERR3,ERR4,ERR5,ERR6,ERR7,ERR8,ERR9,ERR10 0081 EXTR ERR10A,ERR9A 0082  EXTR ERR11,ERR12 0083 EXTR ERR14 0084 EXTR IOERR  0085 EXTR SLU 0086 EXTR DEBUG4 00000000 0088 G:A  EQU $ 0000 F09E 0089 UAT:AA UAT:S 0001 0017 0089+ 0002 0000 0089+ 0005 5459 0090 UAT:EE 'TY',D:TY00 0006 0012 0090+ 0007 4352 0091 UAT:EE 'CR',D:CR00 0008 0011 0091+ 0009 4C50 0092 UAT:EE 'LP',D:LP00 000A 0010 0092+ 000B 5052 0093 UAT:EE 'PR',D:PR00 000C 000F 0093+ 000D 5050 0094 UAT:EE 'PP',D:PP00 000E 000E 0094+ 000F 4349 0095  UAT:EE 'CI',D:TY00 0010 0012 0095+ 0011 4C4F 0096 UAT:EE 'LO',D:TY00 0012 0012 0096+ 0013 534C 0097 UAT:EE 'SL',D:TY00 0014 0012 0097+ 0015 0001 0098 UAT:EE 1,D:DF00  DISKS 0016 000D 0098+ 1PAGE 0005 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:10.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0017 0002 0099 UAT:EE 2,D:DF01 0018 000C 00 99+ 0019 0003 0100 UAT:EE 3,D:DM00 001A 000B 0100+ 001B 0004 0101 UAT:EE 4,D:DM01 001C 000A 0101+ 001D 0005 0102 UAT:EE 5,D:DH00 001E 0009 0102+ 001F 4452 0103 UAT:EE 'DR',0 DIRECTORY LUN 0020 0000 0103+ 00000021 0104 DUMPLU EQU $ 00000022 0105 DUMPUT EQU $+1 DUMP UNIT 0021 4455 0106 UAT:EE 'DU',0 0022 0000 0106+ 00000023 0107 FILELU EQU $ START OF FILE LU'S FOR COPY 0023 4631 0108 UAT:EE 'F1',0 FILE LUNS FOR COPY 0024 0000 0108+ 0025 4632 0109 UAT:EE 'F2',0 FILE LUNS FOR COPY 0026 0000 0109+ 0027 4633 0110 UAT:EE 'F3',0 0028 0000 0110+ 0029 4634 0111 UAT:EE 'F4',0 002A 0000 0111+ 002B 4635 0112 UAT:EE 'F5',0 002C 0000 0112+ 002D 4636 0113 UAT:EE  'F6',0 002E 0000 0113+ 002F 4637 0114 UAT:EE 'F7',0 0030 0000 0114+ 0031 4638 0115  UAT:EE 'F8',0 0032 0000 0115+ 00000008 0116 NFILE EQU $-FILELU/2 NUMBER OF LOGICAL UNITS FOR FILES 0000 0002 0117 UAT:ZZ 1PAGE 0006 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:12.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0033 0119 SDB:A FILESM,NFILE SEMAPHORE FOR FILE LU'S 0034 0008 0119+ 0035 0008 0119+ 0036 F03E 0119+ 0037 0120 BUF:R 5 0038 0120+ 0039 0000 0120+ 003D 0200 0120+ 003E 0000 0120+ 0040 0000 0120+ 0047 0000 0120+ 0147 0120+ 0148 0120+ 0149 0000 0120+ 014D 0200 0120+ 014E 0000  0120+ 0150 0000 0120+ 0157 0000 0120+ 0257 0120+ 0258 0120+ 0259 0000 0120+ 025D 0200 0120+ 025E 0000 0120+ 0260 0000 0120+ 0267 0000 0120+ 0367 0120+ 0368 0120+ 0369 0000 0120+ 036D 0200 0120+ 036E 0000 0120+ 0370 0000 0120+ 0377 0000 0120+ 0477  0120+ 0478 0120+ 0479 0000 0120+ 1PAGE 0007 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:13.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 047D 0200 0120+ 047E 0000 0120+ 0480 0000 0120+ 0487 0000 0120+ 0587 0000 0122 INIT:A 0,0,0,0,ECB,TDB,:1000,:400 0588 0000 0122+ 0589 0000 0122+ 058A 0000 0122+ 058B 099E 0122+ 058C 0992 0122+ 058D 1000 0122+ 058E F00E 0122+ 058F 0400 0122+ 0590 0592 0122+ 0591 0000 0122+ 0592 8080 0122+ 0992  0123 TDB:A TDB,IODEMO,0,0,:100,0,1 0993 0000 0123+ 0994 099A 0123+ 0995 0001 0123+ 0996 0000 0123+ 0997 0000 0123+ 0998 0100 0123+ 0999 00C5 0123+ 099A 0001 0123+ 099B 0000  0123+ 099D F01E 0123+ 099E 0124 ECB:A ECB,UAT:S 099F 0000 0124+ 09A0 099E 0124+  09A1 0001 0124+ 09A2 0000 0124+ 1PAGE 0008 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:15.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 09A4 0000 0124+ 09A5 0000 0124+ 09A6 0000 0124+ 09A7 0000 0124+ 09A8 0000 0124+ 09A9 F06E 0124+ 09AA 0010 0124+ 09AB 0030 0124+ 09AC 0000 0124+ 09AE 0000 0124+ 09BE 0001 0124+ 09BF 0000 0124+ 09C0 0000 0124+ 09C1 0000  0124+ 09C2 0000 0124+ 09C3 7FFF 0124+ 09C4 0124+ 09C5 0124+ 09C6 0124+ 09C7 0000 0124+ 09C8 0000 0124+ 09C9 0000 0124+ 09CA 0000 0124+ 09CB 0000 0124+ 09CC 0000  0124+ 09CD 0000 0124+ 09CE 0000 0124+ 1PAGE 0009 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:17.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 00000006 0126 CMDLN EQU 6 00000000 0127 CMDTBL EQU $ 0000 0003 0128 WORD CMDLN+1/2 WORD LENGTH OF A COMMAND 0001 4153 0129 BYTE 'ASSIGN' 0002 5349 0003 474E 0004 0112 0130 WORD ASSIGN 0005 434F 0131 BYTE 'COPY ' 0006 5059 0007 2020 0008 0146 0132 WORD COPY 0009 4352  0133 BYTE 'CREATE' 000A 4541 000B 5445 000C 00E9 0134 WORD CREATE 000D 4445 0135 BYTE 'DELETE' 000E 4C45 000F 5445 0010 0108 0136 WORD DELETE 0011 4455 0137  BYTE 'DUMP ' 0012 4D50 0013 2020 0014 01C9 0138 WORD DUMP 0015 4558 0139 BYTE  'EXTEND' 0016 5445 0017 4E44 0018 0133 0140 WORD EXTEND 0019 4944 0141 BYTE 'IDIR ' 001A 4952 001B 2020 001C 01AC 0142 WORD IDIR 001D 4D4F 0143 BYTE 'MOUNT ' 001E 554E 001F 5420 0020 0387 0144 WORD MOUNT 1PAGE 0010 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:17.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0021 5649 0145 BYTE  'VIEW ' 0022 4557 0023 2020 0024 0125 0146 WORD VIEW 0025 4445 0147 BYTE 'DEBUG ' 0026 4255 0027 4720 0028 0014 0148 WORD DEBUG4 0029 0000 0149 WORD 0  0000002A 0151 MODTBL EQU $ COPY MODIFIER TABLE 002A 0001 0152 WORD 1  1 WORD PER ENTRY 002B 4641 0153 BYTE 'FA' 002C 000B 0154 WORD FA: 002D 4642  0155 BYTE 'FB' 002E 000A 0156 WORD FB: 002F 4653 0157 BYTE 'FS' 0030 0008 0158 WORD FS: 0031 5546 0159 BYTE 'UF' 0032 0000 0160 WORD UF: 0033 0000 0161 WORD 0 1PAGE 0011 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:18.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 00000034 0163 HEXTAB EQU $   HEX ASCII TABVLE 0034 3031 0164 BYTE '0123456789' 0035 3233 0036 3435 0037 3637 0038 3839 0039 4142 0165 BYTE 'ABCDEF' 003A 4344 003B 4546 003C 0041 0166 DIRPL WORD ROOT PL TO CONNECT ROOT TO 'DR' 003D 0000 0167 WORD 0 VOL NOT SPECIFIED 003E 0000 0168 DIRPUN  RES 1,0 DIB ADDR 003F 0000 0169 WORD 0 FNO 0040 4452 0170 DIRLUN WORD 'DR' LUN TO CONNECT TO 0041 2E20 0171 ROOT BYTE '. ' NAME OF ROOT 0042 2020 0043 2020 0044 2020 0045 2020 0046 2020 0047 2020 0048 0000 0173 T1 RES 1,0 TEMP 0049 0000 0174 T2 RES 1,0 TEMP 004A 0000 0175 T3 RES 1,0 TEMP 004B 0000 0176 TC RES 1,0 ISM DELIMETER 004C 0000 0177 NC RES 1,0 ISM COUNT INPUT 004D 0000 0178 DV RES 1,0 DECIMAL VALUE 004E 0000 0179 DF RES 1,0 DECIMAL FLAG 004F 0000 0180 HF RES 1,0 HEX FLAG 1PAGE 0012 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:19.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0050 0000 0181 HV RES 1,0 HEX VALUE 0051 0000 0182 COPEXT RES 1,0 COPY OR EXTEND FLAG, 0 FOR COPY 1 FOR EX 0052 0000 0183 SBUF RES 7,0 SYMBOL BUFFERR 0059 0000 0184 BP RES 1,0 BUFFER POINTER 005A 0000 0185 IBUF RES 64,0 CI INPUT BUFFER 009A 0000 0187 NAMPP RES 1,0 NAME POINTER 009B 0000 0188 VOLPP RES 1,0 VOLUME NAME POINTER 009C 0000 0189 UNIT RES 1,0 009D 0000 0190 RES 1,0 FOR FNO 0000009E 0191 LUNPP EQU $ 009E 0000 0192 INXTPP RES 1,0 INIT EXTENT 009F 0000 0193 SEXTPP RES 1,0 SECONDARY EXTENT 00A0 0000 0194 RLNPP RES 1,0 RECORD LENGTH 00A1 0000 0195 OPCODE RES 1,0 00A2 0000 0196 LUNF RES 1,0 FROM LOGICAL UNIT 00A3 0000 0197 LUNT RES 1,0 TO LOGICAL UNIT 00A4 0000 0198 NAME RES 7,0 FILE NAME 00AB 0000 0199 NAME1 RES 7,0  TO FILE NAME 00B2 0000 0200 VOLUME RES 7,0 VOLUME NAME 09CF 0202 SDB:A  BUFSM,0 COMMAND INPUT BUFFER SEMAPHORE 09D0 0000 0202+ 09D1 0000 0202+ 09D2 F03E 0202+ 1PAGE 0013 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:20.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0204 * BEGIN PL'S 00B9 002F 0205 CREPL WORD CRE:A 00BA 1000  0206 WORD :1000 00BB 002E 0207 DELPL WORD DEL:A 00BC 1000 0208 WORD :1000 00BD 002D 0209 ASSPL WORD ASS:A 00BE 1000 0210 WORD :1000 00BF 002C 0211 COPYPL WORD  COP:A 00C0 1000 0212 WORD :1000 00C1 002B 0213 VIEWPL WORD VIE:A 00C2 1000 0214  WORD :1000 00C3 002A 0215 IDIRPL WORD IDI:A 00C4 1000 0216 WORD :1000  000000C5 0218 IODEMO EQU $ 00C5 A2A0 00E6 0219 COPY =D:TY00,X 00C6 8081 0001 0220 COPY DI:FLG(X),A 00C7 00AD 0221 RBIT DIF:FC,A 00C8 8481 0001 0222 COPY A,DI:FLG(X) SET FOR NO FORM CONTROL 00C9 A099 0019 0223 COPY DI:ELI(X),X 00CA DC80 0000 0224 IMS 0(X) 00CB BF96 00E2 0225 IOD1 JST MSG ANNOUNCE 'IODEMO' 00CC 0030 0226 WORD MES0 00CD BF99 00E7 0227 JST READ GET COMMAND 00CE 0050 0228 WORD 80 00CF 005A 0229 WORD IBUF 00D0 0900 0230 COPY:M =0,A,BP RESET BUFFER POINTER 00D1 8607 0059 0230+ 00D2 8790 00E3 0231 COPY A,COPEXT TESET COPY EXTEND FLAG 1PAGE 0014 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:21.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 00D3 FF90 00E4 0233 JSK  ISM GET COMMAND 00D4 FF93 00E8 0234 JSK COMMA CHECK FOR COMMA 00D5 11B5 00CB 0235  JNE A,IOD1 SYNTAX ERROR 00D6 BF8E 00E5 0236 JST LOOKUP SEARCH FOR COMMAND 00D7 0000  0237 WORD CMDTBL 00D8 1143 00DC 0238 JEQ A,IOD3 GOT IT 00D9 BF88 00E2 0239  JST MSG INVALID COMMAND 00DA 0023 0240 WORD ERR2 00DB 9E6F 00CB 0241 JMP IOD1 TRY AGAIN 000000DC 0243 IOD3 EQU $ 00DC FC80 0000 0244 JSK 0(X) GO PROCESS COMMAND 00DD 3A08 0245 R:CINT WHIFON CONSOL INTERUPT 00DE 0000 0245+ 00DF 3A02 0246 R:WAIT BUFSM WAIT UNTIL COMMAND IS THROUGH WITH BUFFER 00E0 09D1 0246+ 00E1 9E63 00C5 0247 JMP IODEMO START AGAIN 0007 0248 LPOOL 00E2 045B MSG 00E3 0051 COPEXT 00E4 04BE ISM 00E5 03FB LOOKUP 00E6 0012 D:TY00 00E7 0472 READ 00E8 0454 COMMA 1PAGE 0015 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:22.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 000000E9 0250 CREATE EQU $ 00E9 FF9A 0104 0251 JSK GNVU GET NAME VOL & UNIT 00EA 11D6 0101 0252 JNE A,CRE14 BAD UNIT 00EB 11D5 0101 0253 JNE A,CRE14 ERROR 00EC FF98 0105 0254  JSK CNVU CHECK NAME VOL & UNIT 00ED FF76 00E4 0255 JSK ISM GET INITIAL EXTENT 00EE 8397 0106 0256 COPY DF,A 00EF 11CF 00FF 0257 JNE A,CRE12 INVALID DECIMAL NUMBER 00F0 8396 0107 0258 COPY:M DV,A,INXTPP 00F1 862C 009E 0258+ 00F2 FF71 00E4 0260 JSK ISM  GET SECONDARY EXTENT 00F3 8392 0106 0261 COPY DF,A 00F4 11CA 00FF 0262 JNE A,CRE12  INVALID DECIMAL NUMBER 00F5 8391 0107 0263 COPY:M DV,A,SEXTPP 00F6 8628 009F 0263+ 00F7 FF6C 00E4 0265  JSK ISM GET RECORD LENGTH 00F8 838D 0106 0266 COPY DF,A 00F9 11C5 00FF 0267 JNE A,CRE12 INVALID DECIMAL NUMBER 00FA 838C 0107 0268 COPY:M DV,A,RLNPP 00FB 8624 00A0 0268+ 00FC 3A03 0269 R:BGIN CREPL START ACTIVITY 00FD 00B9 0269+ 000000FE 0270 CRE10 EQU $ 00FE 2309 0271 RSK 00FF BF62 00E2 0273 CRE12 JST MSG BAD NUMBER 0100 0020 0274 WORD ERR6 1PAGE 0016 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:24.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 00000101 0275 CRE14 EQU $ 0101 3A01 0276 R:SIG BUFSM RELESASE BUFFER 0102 09D1 0276+ 0103 9E7A 00FE 0277 JMP CRE10 0004 0278 LPOOL 0104 0421 GNVU 0105 03E9 CNVU 0106 004E DF 0107 004D DV  1PAGE 0017 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:24.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ  LI = DH00.SFMDEMO .LST 00000108 0280 DELETE EQU $ 0108 FF7B 0104 0281 JSK GNVU GET NAME,VOL,& UNIT 0109 11C5 010F 0282 JNE A,DEL12 BAD UNIT 010A FF7A 0105 0283 JSK CNVU CHECK NAME, VOL, & UNIT 010B 11C3 010F 0284 JNE A,DEL12 ERROR 010C 3A03 0285 R:BGIN DELPL START ACTIVITY 010D 00BB 0285+ 010E 2309 0286 DEL10 RSK 010F 3A01 0288 DEL12 R:SIG BUFSM RELEASE BUFFER 0110 09D1 0288+ 0111 9E7C 010E 0289 JMP DEL10  1PAGE 0018 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:25.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 00000112 0291 ASSIGN EQU $ 0112 FF71 0104 0292  JSK GNVU GET NAME,VOL,UNIT 0113 11CE 0122 0293 JNE A,ASS12 BAD UNIT 0114 839C 0131 0294  COPY:M BP,A,T1 0115 8797 012D 0294+ 0116 FF4D 00E4 0295 JSK ISM GET LUN 0117 839A 0132 0296 COPY NC,A 0118 0C02 0297 CLSN A,=2 0119 9E83 011D 0298 JMP ASS3  GOOD 011A BF47 00E2 0299 JST MSG 011B 0024 0300 WORD ERR1 SYNTAX ERROR 011C 9E85 0122 0301 JMP ASS12 0000011D 0303 ASS3 EQU $ 011D 8390 012E 0304 COPY:M SBUF,A,LUNPP LUN 011E 8790 012F 0304+ 011F 3A03 0305 R:BGIN ASSPL START ACTIVITY 0120 00BD  0305+ 0121 2309 0306 ASS10 RSK 0122 3A01 0308 ASS12 R:SIG BUFSM RELEASE BUFFER 0123 09D1 0308+ 0124 9E7C 0121 0309 JMP ASS10 1PAGE 0019 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:27.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 00000125 0311  VIEW EQU $ 0125 FF8A 0130 0312 JSK GPUN GET UNIT 0126 11C3 012A 0313 JNE A,VIE12 BAD UNIT 0127 3A03 0314 R:BGIN VIEWPL START ACTIVITY 0128 00C1 0314+ 00000129  0315 VIE10 EQU $ 0129 2309 0316 RSK 012A 3A01 0318 VIE12 R:SIG BUFSM RELEASE BUFFER 012B 09D1 0318+ 012C 9E7C 0129 0319 JMP VIE10 0006 0320 LPOOL 012D 0048 T1 012E 0052 SBUF 012F 009E LUNPP 0130 042D GPUN 0131 0059 BP 0132 004C NC 1PAGE 0020 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:28.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 00000133 0322 EXTEND EQU $ EXTEND FILE 0133 DF2F 00E3 0323 IMS COPEXT  SET FLAG TO EXTEND 0134 9E91 0146 0324 JMP COPY GO USE COPY LOGIC 0135 0000  0326 IOB:A COPIOB,0,FU:,OP:,0,0,COPFP 0136 0000 0326+ 0137 013D 0326+ 0138 0030 0326+ 0139 0000 0326+ 013A 0000 0326+ 013B 0000 0326+ 013C 0000 0326+ 013D 0000 0327 COPFP RES  2,0 013F 9ED3 0193 0329 COP12J JMP COP12 0140 9ED7 0198 0330 COP16J JMP COP16 0141 9EE3 01A5 0331 COP22J JMP COP22 0004 0332 LPOOL 0142 0143 0144 0145 1PAGE 0021 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:29.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST  00000146 0334 COPY EQU $ 0146 FF1D 00E4 0335 JSK ISM GET MODE 0147 BF1D 00E5 0336  JST LOOKUP LOOK IT UP 0148 002A 0337 WORD MODTBL 0149 11B5 013F 0338 JNE  A,COP12J BAD 014A A7EF 01BA 0339 COPY X,OPCODE 014B FFEF 01BB 0340 JSK GFL GET FROM FILE 014C 11B3 0140 0341 JNE A,COP16J BAD FILE NAME 014D 8361 012F 0342 COPY:M LUNPP,A,LUNF FROM LU FOR DEVICE 014E 87ED 01BC 0342+ 014F 835D 012D 0343 COPY T1,A CHECK FOR FILE NAME 0150 87EC 01BD 0344 COPY A,NAME SET IN CASE OF DEVICE 0151 1149 015B 0345 JEQ A,COP3 JUST DEVICE 0152 C2EA 01BD 0347 COPY =NAME,Q MOVE FILE NAME HERE 0153 0907 0348 COPY =7,A 0154 A259 012E 0349 COPY =SBUF,X 0155 FFE0 01B6 0350 JSK MOV 0156 FFE7 01BE 0352 JSK GFLU GET AN LU FOR THE FILE 0157 11FD 0195 0353 JNE A,COP14 ERROR 0158 A7E3 01BC 0354 COPY X,LUNF LU GOTTEN 0159 A755 012F 0355 COPY X,LUNPP SET UP TO CONNECT IT 015A 82E2 01BD 0356 COPY =NAME,A 015B 87E3 01BF 0357 COP3 COPY A,NAMPP 015C 3A18 0358  F:CONN NAMPP 015D 009A 0358+ 015E 1122 0141 0359 JEQ A,COP22J FILE DOESN'T EXIST 1PAGE 0022 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:30.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00  .SFMDEMO .LST 015F 83DC 01BC 0361 COPY:M LUNF,A,COPIOB+IO:LUN 0160 8654 0135 0361+ 0161 3A07  0362 I:IO COPIOB OPEN FROM FILE 0162 0135 0362+ 0163 9EB7 019B 0363 JMP COP18  ERROR 0164 8256 013B 0364 COPY COPIOB+IO:ACT,A RECORD LENGTH IF FILE 0165 11C1 0167 0365 JNE A,COP3A RLN NOT UNDEFINED 0166 82D0 01B7 0366 COPY =512,A ASSUME THIS FOR UNDEFINED 00000167 0367 COP3A EQU $ 0167 C3D7 01BF 0368 COPY NAMPP,Q 0168 51C5 016E 0369 JNE Q,COP4 FILE, SO ALL SET 0169 A3CE 01B8 0370 COPY UNIT,X DIB 016A 82CC 01B7 0371 COPY =512,A MAX RECORD LENGTH FOR COPY 016B B890 0010 0372 CSK A,DI:CPL(X) TRUNCATE TO LINE LENGTH 016C 9E81 016E 0373 JMP $+2 O.K. 016D 8090 0010 0374 COPY DI:CPL(X),A TRUNCATE 016E 87D1 01C0 0375 COP4 COPY A,RLNPP RECORD LENGTH 016F FFCB 01BB 0377 JSK GFL GET TO FILE 0170 11E7 0198 0378 JNE A,COP16 BAD FILE NAME 0171 833D 012F 0379 COPY:M LUNPP,A,LUNT LU FOR DEVICE 0172 87CE 01C1 0379+ 0173 0900 0380 COPY:M =0,A,NAMPP INIT 0174 87CA 01BF 0380+ 0175 8337 012D 0381 COPY T1,A 0176 1155 018C 0382 JEQ A,COP5 DEVICE ONLY 1PAGE 0023 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:31.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST  0177 C2CA 01C2 0384 COPY =NAME1,Q MOVE FILE NAME HERE 0178 0907 0385 COPY =7,A 0179 A234 012E 0386 COPY =SBUF,X 017A FFBB 01B6 0387 JSK MOV 017B FFC2 01BE 0388 JSK  GFLU GET LU FOR IT 017C 11D8 0195 0389 JNE A,COP14 ERROR 017D A7C3 01C1 0390 COPY  X,LUNT TO LU 017E 82C3 01C2 0391 COPY:M =NAME1,A,NAMPP SET UP TOCREATE IT 017F 87BF 01BF 0391+ 0180 C3C2 01C3 0392 COPY COPEXT,Q 0181 51C8 018A 0393 JNE Q,COP4A EXTEND, SO FILE ALREADY EXISTS 0182 090A 0394 COPY:M =10,A,INXTPP INIT EXTENT 0183 872B 012F 0394+ 0184 090A 0395 COPY:M =10,A,SEXTPP SECONDARY 0185 87BE 01C4 0395+ 0186 3A16 0396 F:CREA NAMPP 0187 009A 0396+ 0188 13D2 019B 0397 JLT A,COP18 I/O ERROR 0189 1154 019E 0398 JEQ A,COP20 ALREADY EXISTS 0000018A 0400 COP4A EQU $ 018A 83B6 01C1 0401 COPY:M LUNT,A,LUNPP SET UP FOR CONNECT 018B 8723 012F 0401+ 0000018C 0402 COP5 EQU $ 018C 3A18 0403 F:CONN NAMPP 018D 009A 0403+ 018E 13CC 019B 0404 JLT A,COP18 I/O ERROR 018F 1155 01A5 0405 JEQ A,COP22 FILE DOESN'T EXIST 0190 3A03 0406 R:BGIN COPYPL START ACTIVITY 0191 00BF 0406+ 00000192 0407 COP10 EQU $ 0192 2309 0408 RSK 1PAGE 0024 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:33.5  0 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 00000193 0410 COP12 EQU $ 0193 BFA5 01B9 0411 JST MSG BAD MODE 0194 0021 0412 WORD ERR5 00000195  0413 COP14 EQU $ 0195 3A01 0414 R:SIG BUFSM RELEASE BUFFER 0196 09D1 0414+ 0197 9E7A 0192 0415 JMP COP10 0198 BFA0 01B9 0417 COP16 JST MSG BAD FILE NAME 0199 001E  0418 WORD ERR8 019A 9E7A 0195 0419 JMP COP14 019B BF9D 01B9 0421 COP18 JST MSG I/O ERROR 019C 0019 0422 WORD ERR11 019D 9E77 0195 0423 JMP COP14 019E 0907 0425 COP20 COPY =7,A 019F A39F 01BF 0426 COPY NAMPP,X ADDR OF FILE ANME 01A0 C2A4 01C5 0427 COPY =ERR9A,Q 01A1 FF94 01B6 0428 JSK MOV MOVE FILE NAME TO MESSAGE 01A2 BF96 01B9 0429 JST MSG FILE ALREADY E ISTS 01A3 001D 0430 WORD ERR9 01A4 9E70 0195 0431 JMP COP14 01A5 0907 0433 COP22 COPY =7,A 01A6 A398 01BF 0434 COPY NAMPP,X ADDR OF FILE ANME 01A7 C29E 01C6 0435 COPY =ERR10A,Q 1PAGE 0025 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:34.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 01A8 FF8D 01B6 0436  JSK MOV MOVE FILE NAME TO MESSAGE 01A9 BF8F 01B9 0437 JST MSG FILE DOSNT EXIST 01AA 001C 0438 WORD ERR10 01AB 9E69 0195 0439 JMP COP14  1PAGE 0026 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:35.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 000001AC 0441 IDIR EQU $ 01AC FF03 0130 0442 JSK GPUN GET PUN 01AD 11C5 01B3 0443 JNE A,IDI12 BAD UNIT 01AE 8389 01B8 0444 COPY UNIT,A 01AF 1143 01B3 0445 JEQ A,IDI12 UNIT NOT SPECIFIED 01B0 3A03 0446 R:BGIN IDIRPL START ACTIVITY 01B1 00C3 0446+ 000001B2 0447 IDI10 EQU $ 01B2 2309 0448  RSK 01B3 3A01 0450 IDI12 R:SIG BUFSM RELEASE BUFFER 01B4 09D1 0450+ 01B5 9E7C 01B2 0451  JMP IDI10 0011 0452 LPOOL 01B6 0029 MOV 01B7 0200 01B8 009C UNIT 01B9 045B MSG 01BA 00A1 OPCODE 01BB 03B8 GFL 01BC 00A2 LUNF 01BD 00A4 NAME 01BE 03A0 GFLU 01BF 009A NAMPP 01C0 00A0 RLNPP 01C1 00A3 LUNT 01C2 00AB NAME1 01C3 0051 COPEXT 01C4 009F SEXTPP 01C5 001A ERR9A 01C6 001B ERR10A 1PAGE 0027 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:36.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 01C7 9EDF 0227  0454 DUM12J JMP DUM12 01C8 9EDF 0228 0455 DUM14J JMP DUM14 000001C9 0457 DUMP EQU $  DUMP SECTORS 01C9 FFE4 022E 0458 JSK GPUN GET UNIT 01CA 11BC 01C7 0459 JNE   A,DUM12J BAD UNIT 01CB FFE3 022F 0460 JSK ISM GET SECTOR 01CC 83E3 0230 0461 COPY  HF,A 01CD 11BA 01C8 0462 JNE A,DUM14J DAB VALUE 01CE 83E2 0231 0463 COPY:M HV,A,DUFP+1 SECTOR 01CF 87E2 0232 0463+ 01D0 83E2 0233 0464 COPY TC,A 01D1 0AD4 0465 SUB =',',A 01D2 11C3 01D6 0466 JNE A,DUM1 NO TO SECTOR 01D3 FFDB 022F 0467 JSK ISM GET LAST SECTOR 01D4 83DB 0230 0468 COPY HF,A 01D5 11B2 01C8 0469 JNE A,DUM14J BA D VALUE 000001D6 0470 DUM1 EQU $ 01D6 83DA 0231 0471 COPY:M HV,A,T2 LAST SECTOR TO DO 01D7 87DC 0234 0471+ 01D8 A35F 01B8 0472 COPY UNIT,X 01D9 A7DB 0235 0473 COPY X,DUMPUT UNIT IN UAT 01DA 825C 01B7 0474 COPY =BUF:LN,A DO A BUFFER AT A TIME 01DB 86F1 024D 0475 COPY A,DUIOB+IO:BCT 01DC 92F4 0251 0476 EXCH:M DULO,MESIOB+IO:LUN SET UP OUTPUT LU FOR DUMP 01DD 93D8 0236 0476+ 01DE 92F2 0251 0476+  000001DF 0477 DUM1A EQU $ 01DF A358 01B8 0478 COPY UNIT,X 01E0 C3D3 0234 0479 COPY  T2,Q SEE IF LESS THAN 01E1 4B01 0480 ADD =1,Q ONE BUFFER TO DO LEFT 01E2 CEF0 0253 0481 SUB DUFP+1,Q SECTORS LEFT TOT DO 01E3 CCA1 0021 0482 SUB DI:SBF(X),Q 1PAGE 0028 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:37.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO  .LST 01E4 5345 01EA 0483 JGE Q,DUM1B ATLEAST ONE BUFFER TO DO 01E5 C8A1 0021 0484 ADD  DI:SBF(X),Q 01E6 0900 0485 COPY =0,A 01E7 4720 0486 MUL DI:BPS(X),AQ BYTES LEFT TO DO 01E8 0010 01E9 C6E3 024D 0487 COPY Q,DUIOB+IO:BCT 000001EA 0489 DUM1B EQU $ 01EA 0900 0490 COPY:M =0,A,BP 01EB 87CB 0237 0490+ 01EC 82E6 0253 0491 COPY DUFP+1,A SECTOR 01ED FFCA 0238 0492 JSK HAD CONVERT TO ASCII 01EE A2CA 0239 0493 COPY =IBUF,X 01EF 0902 0494 COPY =2,A 01F0 C2C9 023A 0495 COPY =MES6A,Q 01F1 FF44 01B6 0496 JSK MOV MOVE T MESSAGE 01F2 BF46 01B9 0497 JST MSG SECTOR NUMBER 01F3 0027 0498  WORD MES6 01F4 3A07 0499 I:IO DUIOB READ SECTOR 01F5 0249 0499+ 01F6 9EB2 0229 0500  JMP DUM16 I/O ERROR 01F7 0900 0501 COPY:M =0,A,T1 BYTE COUNTER FOR SECTOR 01F8 87C2 023B 0501+ 000001F9 0502 DUM2 EQU $ 01F9 0900 0503 COPY:M =0,A,BP START OF BUFFER 01FA 87BC 0237 0503+ 01FB 83BF 023B 0504 COPY T1,A ADDR OF LINE IN SECTOR 01FC FFBB 0238 0505  JSK HAD CONVERT WORD TO ASCII & PUT IN BUFFER 01FD FFBE 023C 0506 JSK STB SPACE TO BUFFER 01FE E2BE 023D 0508 DUM3 COPY =DUBUF,Y 1PAGE 0029 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:1 6:38.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 01FF A3BB 023B 0509 COPY T1,X 0200 80C0 0000 0510 COPY 0(Y,X),A WORD FROM SECTOR 0201 FFB6 0238 0512 DUM5 JSK  HAD CONVERT WORD TO ASCII & PUT IN BUFFER 0202 FFB9 023C 0513 JSK STB SPACE TO BUFFER 0203 DFB7 023B 0514 IMS T1 NEXT WORD 0204 83B6 023B 0515 COPY T1,A 0205 1807 0516 AND =7,A 8 WORDS,PER LINE 0206 11B7 01FE 0517 JNE A,DUM3 NOT DONE WITH THIS LINE 0207 83B3 023B 0519 COPY T1,A 0208 0AF8 0520 SUB =8,A BACK TO START OF LINE 0209 87B1 023B 0521 COPY A,T1 020A FFB1 023C 0522 JSK STB SEPARATION IN FRONT OF ASCII 020B FFB0 023C 0523 JSK STB 020C FFAF 023C 0524 JSK STB 020D FFAE 023C 0525 JSK STB 020E A3AC 023B 0526 DUM6 COPY T1,X BUFFER POINTER 020F E2AD 023D 0527 COPY =DUBUF,Y 0210 80C0 0000 0528 COPY 0(Y,X),A WORD FROM BUFFER 0211 FFAC 023E 0529 JSK ATB  PUT WORD IN BUFFER IF ASCII 0212 DFA8 023B 0530 IMS T1 NEXT WEORD 0213 83A7 023B 0531  COPY T1,A 0214 1807 0532 AND =7,A 0215 11B8 020E 0533 JNE A,DUM6 LINE NOT DONE 0216 BF22 01B9 0535 JST MSG PRINT LINE 0217 0059 0536 WORD BP 0218 83A2 023B 0537 COPY T1,A 1PAGE 0030 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:40.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0219 0002 0538 ADD A,A BYTES DONE THIS SECTOR 021A 8EB4 024F 0539 SUB DUIOB+IO:ACT,A 021B 139D 01F9 0540 JLT A,DUM2 021C 8397 0234 0542 COPY T2,A 021D 8EB5 0253 0543 SUB DUFP+1,A SEE IF DONE WITH SECTORS 021E 1300 01DF 0544 JGE A,DUM1A MORE SECTORS TO DO 021F 92B1 0251 0545 EXCH:M DULO,MESIOB+IO:LUN RESTORE LU FOR MSG 0220 9395 0236 0545+ 0221 92AF 0251 0545+ 00000222 0546 DUM10 EQU $ 0222 BF16 01B9 0547 JST MSG DUMP COMPLETE 0223 0028 0548 WORD MES5 0224 3A01 0549 R:SIG BUFSM 0225 09D1 0549+ 0226 2309 0550 RSK 00000227 0552 DUM12 EQU $ 0227 9E7A 0222 0553 JMP DUM10 00000228 0555 DUM14 EQU $ 0228 9E79 0222 0556 JMP  DUM10 00000229 0558 DUM16 EQU $ 0229 92A7 0251 0559 EXCH:M DULO,MESIOB+IO:LUN RESTORE LU FOR MSG 022A 938B 0236 0559+ 022B 92A5 0251 0559+ 1PAGE 0031 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:41.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 022C FF92 023F 0560 JSK IOERR 022D 9E74 0222 0561 JMP DUM10 001B 0562 LPOOL 022E 042D GPUN 022F 04BE ISM 0230 004F HF  0231 0050 HV 0232 0253 0233 004B TC 0234 0049 T2 0235 0022 DUMPUT 0236 046A 0237 0059 BP 0238 0354 HAD 0239 005A IBUF  023A 0026 MES6A 023B 0048 T1 023C 0366 STB 023D 0254 DUBUF 023E 036E ATB 023F 0016 IOERR 0240 0241 0242 0243 0244 0245 0246 0247 0248 1PAGE 0032 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:41.50 SI = DH00.SFMDEMO .ASM  SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0249 4455 0564 IOB:A DUIOB,'DU',RE:,FA:,0,DUBUF,DUFP 024A 0000 0564+ 024B 0252 0564+ 024C 000B 0564+ 024D 0000 0564+ 024E 0254 0564+ 024F 0000  0564+ 0250 0000 0564+ 0251 4C4F 0565 DULO WORD LO DUMP OUTPUT LU 0252 0000 0566 DUFP RES 2,0 0254 0000 0567 DUBUF RES 256,0 00000354 0569 HAD EQU $ HEX TO ASCII TO DUMP BUFFER 0354 4309 0570 PUSH :40 0355 0040 0356 48FC 0571  COPY:M =-4,Q,T3 4 CHARS PER WORD 0357 C7AC 0384 0571+ 0358 4000 0572 COPY A,Q PUT WORD IN Q 00000359 0573 HAD2 EQU $ 0359 4E32 0574 ROTATE Q,L,4 PUT NEXT DIGIT IN PLACE  035A 0040 0575 COPY Q,A 035B 180F 0576 AND =:F,A ISOLATE DIGIT 035C E2A8 0385 0577 COPY =HEXTAB,Y 035D 0E25 0578 SBIT BY:,S 035E 030A 0579 XNX A 035F 8040 0000 0580 COPY 0(Y),A CHAR 0360 0E27 0581 RBIT BY:,S 1PAGE 0033 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:42.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0361 FE85 0367 0582 JSK BTB BYTE TO BUFFER 0362 DFA1 0384 0583 IMS T3 0363 9E75 0359 0584 JMP HAD2 WORD NOT DONE 0364 6309 0585 POP 0365 2309 0586 RSK 00000366 0588 STB EQU $ SPACE TO BUFFER 0366 0920 0589 COPY =' ',A SEPARATE WORDS 00000367 0590 BTB EQU $ BYTE TO BUFFER ENTRY 0367 A39B 0383 0591 COPY BP,X 0368 E29D 0386 0592 COPY =IBUF,Y BUFFER ADDR 0369 0E25 0593 SBIT BY:,S 036A 84C0 0000 0594 COPY A,0(Y,X) 036B 0E27 0595 RBIT BY:,S 036C DF96 0383 0596 IMS BP 036D 2309 0597 RSK 0000036E 0599 ATB EQU $  CHECK WORD FOR ATCII & PUT IN BUFFER 036E 4000 0600 COPY A,Q 1PAGE 0034 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:43.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 036F 58FF  0601 AND =:FF,Q 0370 0E79 0602 SHIFT A,RO,8 SPLIT BYTES IN A & Q 0371 0C20  0603 CLSN A,=' ' SPACE IS O.K. 0372 9E85 0378 0604 JMP ATB3 SPACE 0373 0D2A  0605 CSK A,='*' IF NOT BETWEEN '*' - 'Z' THEN 0374 092A 0606 COPY ='*',A SU BSTITUTUTE '*' TO AVOID 0375 0D5A 0607 CSK A,='Z' PRINTING CONTROL CHARACTERS 0376 9E81 0378 0608 JMP $+2 OK 0377 092A 0609 COPY ='*',A 0378 4C20 0610 ATB3 CLSN Q,=' ' SPACE IS O.K. 0379 9E85 037F 0611 JMP ATB5 SPACE 037A 4D2A 0612 CSK Q,='*' 037B 492A 0613 COPY ='*',Q 037C 4D5A 0614 CSK Q,='Z' 037D 9E81 037F 0615  JMP $+2 OK 037E 492A 0616 COPY ='*',Q 0000037F 0618 ATB5 EQU $ 037F FE67 0367 0619 JSK BTB BYTE TO BUFFER 0380 0040 0620 COPY Q,A 0381 FE65 0367 0621 JSK BTB BYTE TO BUFFER 0382 2309 0622 RSK 0004 0623 LPOOL 0383 0059 BP 0384 004A T3 0385 0034 HEXTAB 0386 005A IBUF 1PAGE 0035 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:44.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 00000387 0625 MOUNT EQU $ MOUNT DISK 0387 FFD1 03D9 0626 JSK ISM GET VOL 0388 0907 0627  COPY =7,A 0389 A2D0 03DA 0628 COPY =SBUF,X 038A C2D0 03DB 0629 COPY =VOLUME,Q MOVE IT TO HERE 038B FFD0 03DC 0630 JSK MOV 038C A2CE 03DB 0631 COPY =VOLUME,X VOL PTR 038D 8080 0000 0632 COPY 0(X),A 038E 8ECE 03DD 0633 SUB =' ',A CHECK FOR NULL 038F 11C1 0391 0634 JNE A,MOU5 SPECIFIED 0390 2900 0635 COPY =0,X NOT SPECIFIED 0391 A7D3 03E5 0636 MOU5 COPY X,VOLPP 0392 FFCB 03DE 0638 JSK GPUN GET UNIT 0393 11C6 039A 0639 JNE A,MOU10 BAD UNIT 0394 83CA 03DF 0640 COPY UNIT,A 0395 1147 039D 0641 JEQ A,MOU12 NOT SPECIFIED 0396 3A19 0642 F:MONT VOLPP CHECK MOUNTING 0397 009B 0642+ 0398 BFC7 03E0 0643 JST MSG MONUT COMPLETE 0399 0025 0644 WORD MES9 039A 3A01  0645 MOU10 R:SIG BUFSM 039B 09D1 0645+ 039C 2309 0646 RSK 039D BFC2 03E0 0648 MOU12 JST MSG UNIT NOT SPECIFIED 039E 001F 0649 WORD ERR7 039F 9E7A 039A 0650 JMP MOU10 1PAGE 0036 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:45.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 000003A0 0652 GFLU EQU $ GET LU FOR FILE 03A0 3A02  0653 R:WAIT FILESM WAIT FOR AN LU TO BE AVAILABLE 03A1 0035 0653+ 03A2 E2C3 03E6 0654 COPY =FILELU,Y 03A3 2900 0655 COPY =0,X 03A4 80C1 0001 0656 FLU3 COPY 1(Y,X),A SEE IF ASSIGNED 03A5 114B 03B1 0657 JEQ A,FLU5 UNASSIGNED, GOT ONE 03A6 0028 0658 EXCH X,A  CHECK IF FILE OPEN 03A7 C081 0001 0659 COPY FC:FLG(X),Q 03A8 409F 0660 TBIT FCF:O P,Q 03A9 36C6 03B0 0661 JF OV,FLU4 NOT OPEN SO LU AVAILABLE 03AA 2000 0662 COPY A,X RESTORE INDEX 03AB 2B02 0663 ADD =2,X NEXT LU 03AC 2D10 0664 CSK  X,=NFILE*2 SEE IF SEARCH OVER 03AD 9E76 03A4 0665 JMP FLU3 NO 03AE 0000 0666 NOP  03AF 9E84 03B4 0667 JMP FLU12 SERIOUS PROBLEM , THIS SHOULD'T HAPPEN 03B0 2000 0668 FLU4 COPY A,X RESTORE INDEX 03B1 A0C0 0000 0669 FLU5 COPY 0(Y,X),X LU 03B2 0900 0670 COPY =0,A GOOD RETURN 03B3 2309 0671 FLU10 RSK 000003B4 0673 FLU12 EQU $ 03B4 BFAB 03E0 0674 JST MSG FILE LU ERROR 03B5 0017 0675 WORD ERR14 03B6 0901 0676  COPY =1,A 03B7 9E7B 03B3 0677 JMP FLU10 1PAGE 0037 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:46.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 000003B8 0679 GFL EQU $ GET FILE 03B8 FFA0 03D9 0680 JSK ISM GET UNIT 03B9 83A7 03E1 0681 COPY NC,A 03BA 0C04 0682 CLSN A,=4 CHECK FOR VALID LENGTH 03BB 9E81 03BD 0683  JMP $+2 GOOD 03BC 9E92 03CF 0684 JMP GFL12 BAD 03BD FEFF 043D 0685 JSK SPU FIND DIB ADDR 03BE 11D4 03D3 0686 JNE A,GFL16 NOT FOUND 03BF A79F 03DF 0687  COPY X,UNIT DIB ADDR 03C0 C7A6 03E7 0688 COPY Q,LUNPP LU OF DEVICE 03C1 0900 0689  COPY =0,A 03C2 87A0 03E3 0690 COPY A,T1 INIT 03C3 87A4 03E8 0691 COPY A,T2 03C4 839F 03E4 0692 COPY TC,A 03C5 0AD2 0693 SUB ='.',A CHECK FOR DISK FILE 03C6 11C6 03CD 0694 JNE A,GFL9 NOT DISK FILE 03C7 833B 0383 0695 COPY:M BP,A,T1 START OF FILE NAME 03C8 879A 03E3 0695+ 03C9 FF8F 03D9 0696 JSK ISM 03CA 8396 03E1 0697 COPY NC,A 03CB 114A 03D6 0698 JEQ A,GFL18 NULL FILE NAME 03CC 879B 03E8 0699 COPY A,T2 LENGTH 03CD 0900 0700 GFL9 COPY =0,A 03CE 2309 0701 GFL10 RSK 03CF BF90 03E0 0703 GFL12 JST MSG INVALID UNIT NAME 03D0 0022 0704 WORD ERR4 03D1 0901 0705 GFL14 COPY =1,A 03D2 9E7B 03CE 0706 JMP GFL10 03D3 BF8C 03E0 0708 GFL16 JST MSG UNIT NOT FOUND 1PAGE 0038 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:48.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 03D4 001F 0709 WORD ERR7 03D5 9E7B 03D1 0710 JMP GFL14 03D6 BF89 03E0 0712 GFL18 JST MSG INVALID FILE NAME 03D7 001E 0713 WORD ERR8 03D8 9E78 03D1 0714 JMP GFL14 0010 0715 LPOOL 03D9 04BE ISM 03DA 0052 SBUF 03DB 00B2 VOLUME 03DC 0029 MOV   03DD 2020 03DE 042D GPUN 03DF 009C UNIT 03E0 045B MSG 03E1 004C NC 03E2 043D SPU 03E3 0048 T1 03E4 004B TC 03E5 009B VOLPP 03E6 0023 FILELU 03E7 009E LUNPP 03E8 0049 T2 000003E9 0717 CNVU EQU $ CHECK NAME VOL & UNIT FOR CREATE & DELETE 1PAGE 0039 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:48.50 SI = DH00.SFMDEMO  .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 03E9 8390 03FA 0718 COPY NAME,A 03EA 8E72 03DD 0719 SUB =' ',A 03EB 1146 03F2 0720 JEQ A,CNV12 NAME NOT SPECIFIED, ERROR 03EC 836E 03DB 0721 COPY VOLUME,A EITHER UNIT OR VOLUME MUST BE SPECIFIED 03ED 8E6F 03DD 0722 SUB =' ',A 03EE B770 03DF 0723 OR UNIT,A 03EF 1146 03F6 0724 JEQ A,CNV14 NEITHER SPECIFIED 03F0 0900 0725 COPY =0,A 03F1 2309 0726 CNV10 RSK 03F2 BEE8 045B 0728 CNV12 JST MSG BAD FILE BAME 03F3 001E 0729 WORD ERR8 03F4 0901 0730 COPY =1,A 03F5 9E7B 03F1 0731 JMP CNV10 03F6 BEE4 045B 0733 CNV14 JST MSG NETHER VOL OR UNIT THERERE 03F7 0018 0734 WORD ERR12 03F8 0901 0735 COPY =1,A 03F9 9E77 03F1 0736 JMP  CNV10 0001 0737 LPOOL 03FA 00A4 NAME 03FB 0E0D 0739 LOOKUP ENT  TABLE LOOKUP 1PAGE 0040 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:49.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 03FC E37E 03FB 0740 COPY *LOOKUP,Y TABLE ADDR 03FD 8040 0000 0741 COPY 0(Y),A LENGTH OF COMMAND IN WORDS 03FE 0002 0742 ADD A,A IN BYTES 03FF 8F61 03E1 0743 SUB NC,A SEE IF VALID LENGTH 0400 13DD 041E 0744 JLT A,LKP9 OVicEdDano< ?TYCRLPPRPPCILOSL'xDRDUF1F2F3F4F5F6F7F8 r> v  v w       n0 @NHASSIGNCOPY FCREATEDELETEDUMP EXTEND3IDIR MOUNT VIEW %DEBUG 5FA FB FSUF0123456789ABCDEFA DR. q r>*N6B܀;PZ Co::c[QrTvσ,qʃ(lŃ$:# b:z!NM{z:# : |q΃M G:# :|:# :|HR-YL/=0 Ӟמ*a]I YU:"܆T:5$V Qţ΂̸= ʃ7U 4اÂÇQ + :T#:U:# :zz w ¤p ž iŃC:# :|[Q ,ߞ ۃڇܣ_ۂ\ؒXK̡SEȡ G  ˂ʢ DF:I! ⾣߷ ⭀ߨ"Y :# zyt-OPSKI ajYTZHfTn* DUR TLO/C @HǬ@N2@% @'ߡuc #  %'ߖ# @Xy * * Z *L M*I*MZI*g@e# YJ4Z Т΀)ƃG::# z: t)K(@6 +-v #  7 { ԧǦ ƃ;J #  {{xR  -[L=HK bI rFnopF #  { & w? ~@aIW%C B'`(Z%C @'` TKOof akA [Z77 U623 01# +2 E ç( #  {⨠@ "*!1FϞQE*24) ã#  C #  ~+:j}vu @SSL |{z +. 5>:: DHY %'*UTLK YCI6HSLCI CIF> Z[IC KLz⸣R@ `L%'E 0 :ߣ Aߣ Fߠ ÛN!˙˘ @ǕÖN1@Ǔ-,ߏ,ߏ,'%'!N# MNPORZ?IC @`@@+kc # I)+ # )w I@bg I"@bbV` [δQ T` "bέQ U# @BJ+ B CJS8#  :T1ʣ+@`K  6 `+pƄK /:gf [ @ C @ @uĀ+c #  )o o)XYZ:DH?:D{& ) :D8N:4 {*2 )  X@ 1: QX 0: :]::, yc::qCI*CIo6*> )  )݃V:<5؄@ DL 0CK` EM` B˄H C K[IÀ\8¸[r 1C 1K:: ?w 4t 1C ,lG  &\ 1C ^\>@[SLD B6J ). . )xVv U` T E Dm@ 0C` B:<^ CE; UuG  1CL::F ?w o q*NBV *o o"7 I@bX@HD Z 0CK` *EM` B` J: XC XK@:ՀFL5ZZm 1C 1K: Z ¦) bɀ@+  ˜ p::T YTZ6[*|te2 1C G  1C K 1Km@H# > >SB: t# C @:c b I))) …!' #   IODEMOFILE CREATEDFILE DELETED$FILE  ASSIGNED TO *FILE : RECORDS COPIED DUMP COMPLETE SECTOR VIEW COMPLETE DIRECTORY INITIALIZED MOUNT COMPLETE SYNTAX ERRORINVALID COMMAND INVALID UNIT NAME INVALID MODEINVALID DECIMAL NUMBERUNIT NOT FOUNDINVALID FILE NAME $FILE ALREADY EXISTS FILE NOT FOUND"I/O ERROR ON NEITHER UNIT OR VOLUME SPECIFIEDFILE LU ERROR UϤA FDZYBZ Z Bą  Y H H H @ ɠAZg ZuMD!C"`!!#W"!"#g4+"abfѤA ʄZH ОǞȞɀWX AZȀ  TZT UVETj`ZЀ`ZʠAZZgZAvM!C!"!#W!#!"#n""4+"aN͠Y ABSA ZZߠYۀABā A@Ѐ ĀBĉZĊ¨ćā@ giZAZw ABZZCAN M!D!C"8"a4+=p*B1:A! _ "* H1xvB C @C @ pā_B __ __6 1  pE/p p_/p p @*3AB1NBɀ6f 1 g/p py M9$laD#^ljPc Pfdma1*\BB1GVgSz!!""VӞ N OQJ?QC @QBTP G `QRS GGG_\ ­G!ac BR IG!SGBĝBR IG SB # #n#W!"!xuD Y 1C# MTMC @C @C @C @C @`p FYcB/p $p# g' I[QaGWXZ/p(p(Y@IC @C U?p(+p(# }"!#W!!#YIA@AĊ# PB1LZĀ6P1PA# ƒċ# !)IGVWXWBG! R]^TVC SSURR9ƀ^S66 # Z#nTɞQ;/ph@ph@(РP+?ph@kph P+P6jP  fP{z  Ā ΥQ/ph@ph ?ph@kph ?ph@kph  # ?ph@kphv$2T24MT4+DZB+E(z(# ^][WXS SY\΀[ PWXG[ I\fe\+U*ZZ# }| z#W#n"!!YYB1Jy YQ^\YQg!WXWXJS+XW7y B N OLƠQ ?G # }{y>v N O6ӠQMI+9\Y\+\JR9P$P#  \F6\AB [ IZF cL\FXN9C  2          B[GZI #  p.9A6AkDYLWXFXC        @@ 0WXADAASO`NCZNZYNNYCYTڀ`LS ! z#W#n ! !5XWFA Z [NWOX I]G [NWOXWXPAOGA ZA6QSÂYK=A:YQFXQfx r'`WX%A$EA [SÂlYHAgYDfc#LWXā  A6ADYF             WW   9WXAPQBWXFA;A6XSÀYRSDAYA]Aw! ! z!#P#W!#f BnWNXOAhPQfBbWX``F^AY\;[A6_SÀYSYSAIQQYAbAWFXFBBAA@k r?((WXY )C-NOAWXAFA;SDA B gÕE JEI\YSZZ Z h#f  1w4WXPQY )oBBWXBB]rYE JEI\YROPeNDZ ! z#W!`C`9A6ALWXhF מ DSAGV WE [NOWXP [ I  WXWXLāEҠA+ DSAGV NCWXM [ IA+WXNFрOF [WXEA;WXAĂ/ 2T !"LNO[`FFA ՠA6AA֠A`AAƀF̄F@BK@" @+ `  @6F@F@``/AB`@ CWVF̈́F` ʀ6AAA !!!#W!"##4+{qqA6B6D6BπF ĠA AZ_Aդ`AQQF̄FN@BK@" H @(_GCCB_@``EF D`@2`G CABŀÀ@@`@"C!`AF@F@ā ܉ZL  Z__ !""A_ABB!#W#nGF"7 TBV񀧄UA__ggC_bv+O*P+N{TTOxU΀VG_FZ!!!P@Ʉ`_99t`A`00 i_`_ A^  +@(U+@(@#QF*U+UVATVU # /ph@ph?ph@kphs"`#""m\Y/p(p(E%G @  }*19 ' ?p(+p(Y# YDLPWX T]VBG S^YSBYDEQ` LPLπIY@SB INZZI QE# 2SN# PQWXʸNO F # [| TV]R]TSUR^S # !%! !\ Yx^A]AZؠQÈJ^*+DYY^yEDDY]AZNWOXQEDZ\\1f*\ "E8Y@Y]RVU ƀWNXOc!#W U#f" #n+yDZZHnnD؀DeeZπDZ)@AІ̆VUU # "!#2NO@AGVA PÀYCY# 2V# AVUT# MB TUA/ąV # "!/A1 # L# ANO# WPXQY)>EYPY # NYR€YNN# A+# 24 qSÒZNZ# 0_@APOQ`H%} 'F+`HPu `@_P# ZB+F C8# AEYF@Y# XAWXĂ/ # NVWXW# YNY# A+# 2ToYS@@YCYZBZ @GVWX@ Y# Q# C @Q# C A @\"\S@"VSO 6ĈEN 6ОEN 6Q`*%VB`H`H5Q`*%VBt`H`H5Q`%VA`HA`HA'kK*Q`V`H 6*%`H`H'. 5D@5c # !"S SRKRPQWSРBGVNOPSǀSP S # }#W#ni RBG NOS GS G !GVNO# }S. Q# @ GؠBG! SȜRU# BG! ]^ # I C U# B+# !+# B SXR.*RS SB 9P{Qxh@%xh.%A s⑂@ @AF ## # %xh%%# TY00H _t'%(?.5    LP00 P92   t%(?.5vCR00P&+WPvt*++?.5vPP00  vt%(?.5PR00  _t''.M?.5ODF01AAM M'ODF00AAM M O't++,?.5 fdOxDM01AA   OxDM00AA   OOv,,-2?.5dDH00AA 7  &7 @Lv,,-2?.5dB%EDπF ĠB΋QG F ʀD.$TR&*YDۄDI3BJEK~CFxDOFB6E@6ArP + 1QCܗ 0y vBD+KFQFQFVAxPB ЄP䀑GG\䟉--%g..H--%.&SO ZDFF6EEKeee dcAxF@0 CXJQB1h6ǀy C DD P+KFQFBJGy ÂGG/pPAC -'%u%$OϞw@KQB@61U@ KCNJĂ܄6À @KQNDI@lJFJCIIBΛQ:ʗNyJQKQĀJ/6-'.9.%%g..HLP)({(lj IPRED*DDNF  EKBF @Q6@JP F 6 M_CK_%'3 oPDJ IQDF6AKFQCK_%+'PQ͟'.$(z%.-(q((aLL K IDGDQh IIADDIIFXJQCcKF6+DJ B%QC*˞aa' QQ ICB1€F DPQ_QAFND(d(o.H&&(k'/EKM B%'Q_J  K@* H%'@(KK+I_K#BK`M@#QbAIIDMN F6FKK _IQҠMK1yAʠMK1yv DBKFFM `K@P QQҞ QMJM`UEK>Q hKMeII ΀_E6q.y' IICđB@1B H# k p+p(/*-%g.'[&&-.H.9&.%&)7)QBJFF % $ ʠK` D II ӠB1P1wD+KB I螮 ҠB K D IIF  FBDQKNy@HID@DÀDrI1oD+KGeCI I  ^ BBܗI ICF  ŠB- @KQB@6TLP %.&&&&.%&?Bp MBV ;KI D I KI D I .V(TYTKPP(TP)k)u()wDIBK̈́JSC DIFF IEDמҞОсKy  D5 ͠CFK ICDEKnCCFF DBKCILUCCIDGKCǞ{x %.-%g.*v.H*Z*^.%--p؞ӀDIBK̈́JFGFc0 DCIĐ IK ֠CKD@yNqāKJpGFCDEK@CC:`DI77݀FF DCBK Ā$#I" IG}wDI@lJ_6D/6Bh%u%$.9)KF@6+%'6* 6|EK+D@*l# *zEDрF PDIBNCDIEKמ؞ٞ߀DIDBJ1B6GBK'B /6yF ̠BǀII F ^D DBP KDB āBKB6À }J/6w ur%..$-.-%g.H"+$%u%$.9.% c@ SjB T.V+$3 C )@aE+6֤ N 6LN 6 9C @_9#C @o? P Px!@p@ *P z 9*r A|4>>l> }5d~ e34W4P3124B2|4I514;5 ~͞"0SU 4~<o$jT<BR{|}S;TUTV T ( :ӂE - :ӂ" )  J ΦpP0 @0B ¢` h }cD ¯⯂pP0/o D E B U G 4 E 4 0 0 ӟe 3}%  ӂzӾ P AC Q@ X= Y:ԽѾ K3 L0 S- D* C'ԟK =ӟ{ } ӟ|" *ٽ҆ Y Q A Gҽ؆ R Ƥ D V Wƚ›LBLCLFLLLSLJLILGLRLZߝ  Ǟ< /}҆{҆u łt P Lłj T P BŁ P ӂ\ W H TŅ Ğ|QEI ,  , `솂՟ _ٞ3 9} ` J B YK QJf䞁ւ cޡ @ޟޝ `@E ;߽RA@EN@Aޏǎ Qފ ,^:F& o*| x` D `랞oY*Qd Ѐ_Ѐ āZ@AĄ܃T B `ǁ D임*L_U3 `Ģ1*/) 'r "Bƽу۽ֽˁC凑ā / XŃ ѽ۞i ]с䆫@ڃ۽ցBǢ ,ž[ + - * X /KJƎ^[{ xނZ ,ş| ֽL ΁ P ޽с۽۽޺{ ӽўq kɆȂGާ}ަyޠ}y E ~  .Ӄ E ~  .ޣfN ,Žֆs@FC kqLL (w{u ^|JQBZy L S TўNM  Isľˆ_]]| IƎ> ,ŽƇ ,ƂpIưk , ,Htr Hm -ņց -ņ('\\ÂF -tтڃԞx ’@"Fz@ Ό F ō lG#䆠.bƝޙޖJQ!’ފދJQĽ %ӂԞu U B * ӂGo h fe "cIaM K Y&V&RR `QKL$kK N =ӂDD GӂA   :Ӟ ӟL ̟{ y9u    :w ³ 0C C 96C C " z a ࢅ0 `e •墒C "C tC I60@—Tz @0 6=". 1 `@p Iyyyx R G , ; + - * / X_1]\IW` RRR -@A@KJ@ JH +O -M * / X?Ҿ  `YҾ B `R-҆, , +& N I+KL v `p `PAQXYKLSDC Z A 9 0n C F =  t ,Ɲ ,ƙ˽•䆒ޏJQ ` Tѝ Žp@ ʽтۂTB۝ľ@L@|LOLmLo׾  `LpJRbC ߞݞ[ } ޟ} @ƹwr·Q†BLLreޣޤsg3 P@™b@ `@ ` @P `lނ}H.ry  qvty j 6 fdv s`z fZYya[ľ⟄ Cӝ IOH0zr(E ` <;C TK@ԝĽ MӃ/ԝ 6I6;6D6666""d "96=96"q "I6=I6"qp 0|| y0 `{ 6} ` L o , ,Ūߦ `AņЁ V IP΃͆˃ʅ QJ @ } }IPNÂAKK ՂF IƱ ² ¨N ‚çަ| } Kz h# hƿcQHUbQÎaA¶snQBzx } @ydK@_Fs? V;8HgKeI 3Q IIZ@ZI A=; 7 6 31w BK . IJQs %ӂ" ԟx.<@ A# @HBD`pCDEF!I JAFGHDIH6 @QDCEGEI A‰ `@# 4+/<.M# BJJ B` E ``b`# D# r`@@ABCDEF` &`JHIFˤHG^FDZ HFFEFĎEJ # 32333P4 BGDFwDHI`(j򀁄IJKLG@ @HA BF@`CED@ H6RC @I܆/#@ # ``@ # CČ @䀞lL5`4+<3/e 01As?10,qgI,B0&C1&D `@/ph@ph?ph@kphr%`H@@h@`@@r`H@A@ 0a1_2T2440bj0d0ePiSC* bĀ+u*M] # Sm vjsCk JS검@mkb `@nbG*`@ G*g'ā <<<<5_<$<<<<<<<<<<<<<<<4mE7E4E5E3--E2E05HI f)% JS `k z&‹ ADD =NAM,A BUFFER ADDR COPY A,INBUF(Y) COPY A,OUTBUF(Y) COPY Y,A ADD =INFP,A  COPY A,INCRI(Y) COPY:M =SL,A,OUTLUN(Y) I:IO INIOB(Y) OPEN DIRECTORY JMP VIEW14  ERROR I:IO OUTIOB(Y) OPEN LO DEVICE JMP VIEW16 ERROR COPY:M =RE:%4+FS:,A,INFC(Y) READ STREAM COPY:M =WR:%4+FA:,A,OUTFC(Y) WRITE ASCII SPACE 3 VIEW1 EQU $ I:IO INIOB(Y) READ DIRECTORY ENTRY JMP VIEW18 ERROR COPY NAM(Y),A FNO COPY ='',Q JNE A,VIEW2  FILE EXISTS COPY NAM+1(Y),A SEE IF EVER USED JEQ A,VIEW1 NEVER USED COPY ='D ',Q  DELETED VIEW2 COPY Q,NAM(Y) I:IO OUTIOB(Y) LIST ENTRY JMP VIEW20 ERROR JMP VIEW1 KEEP ON GOING SPACE 3 VIEW5 EQU $ COPY:M =FU:%4+CL:,A,INFC(Y) CLOSE I:IO INIOB(Y)  CLOSE DIRECTORY JMP VIEW22 ERROR COPY:M =FU:%4+CL:,A,OUTFC(Y) CLOSE I:IO OUTIOB(Y)  CLOSE 'LO' JMP VIEW22 ERROR VIEW10 EQU $ JST MSG VIEW COMPLETE WORD MES7  R:SIG BUFSM FREE BUFFER R:END SPACE 3 VIEW12 EQU $ JST MSG DIRECTORY NOT FOUND  WORD ERR15 JMP VIEW10 SPACE 3 VIEW14 EQU $ COPY =INIOB,A JSK IOERR ANNOUNCE I/O ERROR JMP VIEW10 SPACE 3 VIEW16 EQU $ COPY:M =FU:%4+CL:,A,INFC(Y) CLOSE I:IO INIOB(Y) CLOSE DIRECTORY JMP VIEW22 ERROR COPY =OUTIOB,A JSK IOERR ANNOUNCE I/O ERROR JMP VIEW10 SPACE 3 VIEW18 EQU $ COPY IO:ST+INIOB(Y),A SOFTWARE STATUS SUB  =EOF:,A CHECK FOR END OF FILE JEQ A,VIEW5 GO FINISH UP COPY =INIOB,A JSK IOERR  ANNOUNCE I/O ERROR JMP VIEW5 GO CLOSE VIEW20 EQU $ COPY:M =FU:%4+CL:,A,INFC(Y) CLOSE  I:IO INIOB(Y) CLOSE DIRECTORY JMP VIEW22 ERROR COPY =OUTIOB,A JSK IOERR  ANNOUNCE I/O ERROR JMP VIEW10 SPACE 3 VIEW22 EQU $ JSK IOERR ANNOUNCE I/O ERROR  JMP VIEW10 LPOOL SPACE 60 TDB:A IDI:A,IDI:S,ENDY,0,:100,0,10 IDI:S EQU $ IN IT DIRECTROY ACTIVITY COPY =ENDY,A JSK ISP INIT YSPAD COPY:M UNIT,A,PUN(Y) DIB COPY A,DIRPUN FOR DIRECTORY COPY:M =0,A,VOLPTR(Y) NO VOLUME NAME SPECIFIED COPY Y,A ADD =NAM,A ADDR OF FILE NAME COPY A,NAMPTR(Y) SUB =1,A 1 WORD FOR FNO COPY A,INBUF(Y)  COPY:M =16,A,INBCT(Y) BYTES PER ENTRY COPY:M DIRLUN,A,INLUN(Y) LU OF DIRECTORY COPY:M =FU:%4+OP:,A,INFC(Y) OPEN COPY Y,A ADD =INFP,A ADDR OF FILE POINTER COPY A,INCRI(Y) F:CONN DIRPL  CONNECT TO DIRECTORY JEQ A,IDIR12 BAD CONNECT I:IO INIOB(Y) OPEN DIRECTORY JMP  IDIR17 ERROR COPY:M =RE:%4+FS:,A,INFC(Y) READ STREAM SPACE 4 IDIR5 I:IO INIOB(Y) READ DIRECTORY JMP IDIR7 ERROR COPY *INBUF(Y),A FNO JEQ A,IDIR5 EMPTY ENTRY SUB =5,A CHECK FOR SYSTEM ENTRIES JLE A,IDIR5 DON'T DELETE SYSTEM ENTRIES F:DELE NAMPTR(Y) DELETE FILE JEQ A,IDIR17 SOMETHING FUNNY,FILE NOT FOUND JMP IDIR5 SPACE 4 IDIR7 COPY INST(Y),A CHECK FOR EOF SUB =EOF:,A JNE A,IDIR16 ERROR IDIR8 COPY:M =FU:%4+CL:,A,INFC(Y)  I:IO INIOB(Y) CLOSE DIRECTORY JMP IDIR17 ERROR IDIR10 EQU $ JST MSG DONE WORD MES8 R:SIG BUFSM FREE BUFFER R:END SPACE 3 IDIR12 EQU $ JST MSG DIRECTORY NOT FOUND WORD ERR15 JMP IDIR10 SPACE 3 IDIR16 EQU $ COPY =INIOB,A JSK IOERR JMP IDIR8 SPACE 3 IDIR17 EQU $ COPY =INIOB,A JSK IOERR ANNOUNCE I/O ERROR  JMP IDIR10 LPOOL SPACE 60 TDB:A COP:A,COP:S,ENDB,0,:100,0,10 COP:S EQU $ COPY ACTIVITY COPY =ENDB,A LENGHT OF YSPAD JSK ISP INIT YSPAD COPY =7,A MOVE FROM FILE NAME TO SPAD COPY =NAME,X COPY =NAM,Q ADD Y,Q JSK MOV COPY:M OPCODE,A,MOD(Y) MODIFIER COPY:M LUNF,A,INLUN(Y) SET UP LOGICAL UNITS COPY:M LUNT,A,OUTIOB(Y) COPY:M RLNPP,A,INBCT(Y)  RECORD LENGTH SPACE 3 COPY:M =0,A,RECLN(Y) INIT RECORD COUNTER COPY:M =FU:%4+OP:,A,INFC(Y) OPEN  COPY A,OUTFC(Y) COPY Y,A ADD =IBUFF,A COPY A,INBUF(Y) COPY A,OUTBUF(Y) COPY  Y,A ADD =INFP,A COPY A,INCRI(Y) COPY Y,A ADD =OUTFP,A COPY A,OUTCRI(Y) SPACE 3 I:IO OUTIOB(Y) OPEN OUTPUT FILE JMP COPY14 ERROR R:SIG BUFSM FREE BUFFER SPACE 3 COPY =RE:%4,A READ OR MOD(Y),A ADD MODIFIER COPY A,INFC(Y)  COPY =WR:%4,A OR MOD(Y),A ADD MODIFIER COPY A,OUTFC(Y) SPACE 3 COPY8 EQU $ COPY INLUN(Y),A SET UP PROMPT COPY A,PROMPT+IO:LUN I:IO PROMPT PROMPT INPUT JMP COPY16   ERROR I:IO INIOB(Y) IMPUT JMP COPY16 ERROR COPY:M INACT(Y),A,OUTBCT(Y) WRITE THAT WHICH WAS WRITTEN JEQ A,COPY8 NULL INPUT I:IO OUTIOB(Y) WRITE JMP COPY18 ERROR IMS RECLN(Y) BUMP RECORD COUNTER NOP COPY RECLN(Y),A SELP A,4  DISPLAY RECORD NUMBER JMP COPY8 SPACE 3 COPY9 EQU $ COPY:M =FU:%4+CL:,A,INFC(Y) I:IO INIOB(Y) CLOSE INPUT FILE JMP COPY22 ERROR COPY9A EQU $ COPY:M =FU:%4+CL:,A,OUTFC(Y)  I:IO OUTIOB(Y) CLOSE OUTPUT FILE JMP COPY19 ERROR SPACE 3 JSK RFL RELEASE FILE LOGICAL UNITS R:WAIT BUFSM WAIT FOR CONTROL COPY:M =0,A,BP SET TO CONVERT RECORD LENGTH COPY RECLN(Y),A HEX NIMBER OF RECORDS JSK HAD CONVERT TO ASCII COPY =2,A  MOVE TO MESSAGE COPY =IBUF,X FROM HERE COPY =MES4B,Q JSK MOV COPY =NAM,X CHECK FOR FILE ADD Y,X COPY 0(X),A JNE A,COPY9B FILE COPY INLUN(Y),A LU  JSK SLU FIND UNIT COPY 1(X),X DIB ADDR ADD =DI:NAM,X NAME ADDR COPY  =MES4A,Q COPY =7,A JSK BFN CLEAR OUT OLD FILE NAME COPY =2,A JMP COPY9C COPY9B COPY =MES4A,Q COPY =7,A COPY9C JSK MOV MOVE FILE OR DEVICE NAME TO MESSAGFE JST MSG  PRINT NUMBER OF RECORDS COPIED WORD MES4 COPY10 EQU $ R:SIG BUFSM LET GO OF BUFFER R:END  THROUGH COPY9J JMP COPY9 LPOOL SPACE 3 COPY14 EQU $ COPY:M =FU:%4+CL:,A,INFC(Y)  I:IO INIOB(Y) CLOSE INPUT FILE JMP COPY22 ERROR COPY =OUTIOB,A JSK IOERR  I/O ERROR JMP COPY20 SPACE 3 COPY16 EQU $ COPY INST(Y),A SUB =EOF:,A CHECK FOR END OF FILE JEQ A,COPY9J EOF GO DO NORMAL TTUFF JSK RFL RELEASE FILE LOGICAL UNITS  JMP COPY22 GO CLOSSE OUPUT FILE COPY17 EQU $ COPY =INIOB,A JSK SIOERR I/O ERROR  JMP COPY20 SPACE 3 COPY18 EQU $ COPY:M =FU:%4+CL:,A,INFC(Y) I:IO INIOB(Y) CLOSE INPUT FILE JMP COPY22 ERROR COPY19 EQU $ JSK RFL RELEASE FILE LOGICAL UNITS COPY =OUTIOB,A JSK SIOERR I/O ERROR JMP COPY20 SPACE 3 COPY20 EQU $ JMP COPY10  SPACE 3 COPY22 EQU $ COPY:M =FU:%4+CL:,A,OUTFC(Y) I:IO OUTIOB(Y) CLOSE OUTPUT FILE NOP  JMP COPY17 SPACE 6 RFL EQU $ RELEASE FILES COPY INLUN(Y),A JSK RFLU  RELEASE FINPUT FILE LU COPY OUTLUN(Y),A JSK RFLU RELEASE OUTPUT FILE LU RSK LPOOL IOB:A PROMPT,0,WR:,WP:,1,PCHAR,0 PCHAR BYTE '>' SPACE 60 RFLU EQU $ RELEASE FILE LU   JSK SLU FIND FCB COPY 1(X),X FCB ADDR COPY FC:FLG(X),Q CHECK IF FCB JGE  Q,RFL10 NOT FCB R:SIG FILESM SIGNAL FILE LU SEMAPHORE RFL10 RSK SPACE 9 SIOERR EQU $  SEMAPHORE ENTRY PUSH :40 SAVE IOB DISP IN A R:WAIT BUFSM POP IOERR EQU $  I/O ERROR MESSAGE ROUTINE COPY A,X ADD Y,X IOB ADDR COPY:M IO:LUN(X),Q,ERR11B LU INTO MESSAGE COPY IO:ST(X),A STATUS COPY:M =0,Q,BP START OF IBUF JSK HAD CONVERT CODE TO ASCII COPY =IBUF,X MOVE CODE TO MESSAGE COPY =2,A 4 CHARS COPY =ERR11A,Q JSK MOV JST MSG WORD ERR11 I/O ERROR RSK LPOOL SPACE 9 MES0 LNM MES1 BYTE 'IODEMO' MES1 LNM MES2 BYTE 'FILE ' MES1A BYTE ' ' BYTE ' CREATED' MES2 LNM MES3 BYTE 'FILE ' MES2A BYTE ' ' BYTE ' DELETED' MES3 LNM MES4 BYTE 'FILE ' MES3A BYTE '  ' BYTE ' ASSIGNED TO ' MES3B BYTE ' ' MES4 LNM MES5 BYTE 'FILE ' MES4A BYTE ' ' BYTE ' :' MES4B BYTE ' ' BYTE ' RECORDS COPIED' MES5 LNM MES6 BYTE 'DUMP COMPLETE' MES6 LNM MES7 BYTE 'SECTOR ' MES6A BYTE ' ' MES7 LNM MES8 BYTE 'VIEW COMPLETE' MES8 LNM MES9 BYTE 'DIRECTORY INITIALIZED' MES9 LNM MES10  BYTE 'MOUNT COMPLETE' MES10 EQU $ ERR1 LNM ERR2 BYTE 'SYNTAX ERROR' ERR2 LNM ERR3 BYTE 'INVALID COMMAND' ERR3 LNM ERR4 ERR4 LNM ERR5 BYTE 'INVALID UNIT NAME' ERR5 LNM ERR6 BYTE 'INVALID MODE' ERR6 LNM ERR7 BYTE 'INVALID DECIMAL NUMBER' ERR7 LNM ERR8 BYTE 'UNIT NOT FOUND' ERR8 LNM ERR9 BYTE 'INVALID FILE NAME' ERR9 LNM ERR10 BYTE 'FILE ' ERR9A BYTE ' ' BYTE ' ALREADY EXISTS' ERR10 LNM ERR11 BYTE 'FILE ' ERR10A EQU $ BYTE ' ' BYTE ' NOT FOUND' ERR11 LNM ERR12 BYTE 'I/O ERROR' BYTE ' ' ERR11A BYTE  ' ' BYTE ' ON ' ERR11B BYTE ' ' ERR12 LNM ERR14 BYTE 'NEITHER UNIT OR VOLUME SPECIFIED' ERR14 LNM ERR15 BYTE 'FILE LU ERROR' ERR15 EQU $ LPOOL END FOUND' ERR8 LNM ERR9 BYTE 'INVALID FILE NAME' ERR9 LNM ERR10 BYTE 'FILE ' ERR9A BYTE ' ' BYTE ' ALREADY EXISTS' ERR10 LNM ERR11 BYTE 'FILE 'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII! IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIe820205160115820205160115820205161052e@820205160115820205160115820205160743" e820205160115820205160115820205160115e820205160115820205160115820205160115820205160115820205160115820205160115e,8009250005275080092500053100820205160806de8102021025580081020210260125820205160814e8009250008090080092500081525820205160826d ed~# 8009250008400080092500093100820205160942d ey8o8009250010017580092500101675820205161003d e8009250011112580092500111450820205161010d e8009250012577580092500130400820205161022d eIJ8009250013367580092500140075820205161051d$ % & ' ( ) * + . SFMDEMO JCLSFMDEMO:ANLJCLSFMDEMO OBJ SFMDEMO LST SFMDEMO BIN RTXDEMO:ANLJCL SFMDEMO MAP SFMDEMO ASM,  TOOO LONG 0401 4900 0745 COPY =0,Q 00000402 0746 LKP3 EQU $ 0402 A257 03DA 0747  COPY =SBUF,X ADDR OF REQUESTED COMMAND 0403 0E25 0748 SBIT BY:,S 0404 430A 0749  XNX Q 0405 8042 0002 0750 COPY 2(Y),A CHAR FROM TABLE 0406 0E27 0751 RBIT  BY:,S 0407 6028 0752 EXCH X,Y 0408 875A 03E3 0753 COPY A,T1 0409 0E25 0754  SBIT BY:,S 040A 430A 0755 XNX Q 040B 8040 0000 0756 COPY 0(Y),A 040C 0E27 0757 RBIT BY:,S 040D 6020 0758 COPY X,Y ADDR IN TABLE 040E 8F54 03E3 0759  SUB T1,A 040F 11C9 0419 0760 JNE A,LKP7 NOT IT 0410 4B01 0761 ADD =1,Q  NEXT CHAR 0411 FB4F 03E1 0762 CSK Q,NC SEE IF DONE 0412 9E6F 0402 0763 JMP LKP3  NOT DONE 0413 0000 0765 NOP 0414 A366 03FB 0766 COPY *LOOKUP,X 0415 A080 0000 0767 COPY 0(X),X LENGTH OF TABLE ENTRY 0416 A0C1 0001 0768 COPY 1(Y,X),X ENTRY FOUND 0417 0900 0769 COPY =0,A 0418 9E86 041F 0770 JMP LKP10 1PAGE 0041 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:50.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0419 A361 03FB 0772 LKP7 COPY *LOOKUP,X ADDR OF TABLE 041A E880 0000 0773 ADD 0(X),Y BUMP Y TO NEXT ENTRY 041B 6B01 0774 ADD =1,Y 041C 8041 0001 0775 COPY 1(Y),A 041D 11A4 0402 0776  JNE A,LKP3 NOT END OF TABLE 0000041E 0777 LKP9 EQU $ 041E 0901 0778 COPY =1,A 0000041F 0780 LKP10 EQU $ 041F DE5B 03FB 0781 IMS LOOKUP 0420 9F5A 03FB 0782 JMP *LOOKUP 00000421 0784 GNVU EQU $ GET NAME,VOL,& UNIT 0421 FF37 03D9 0785 JSK ISM GET NAME 0422 A237 03DA 0786 COPY =SBUF,X MOVE NAME 0423 0907 0787 COPY =7,A WORDS TO MOVE 0424 C255 03FA 0788 COPY =NAME,Q PLACE TO MOVE IT TO 0425 FF36 03DC 0789 JSK MOV 0426 FF32 03D9 0791 JSK ISM GET VOL 0427 C233 03DB 0792 COPY =VOLUME,Q PLACE TO MOVE IT TO 0428 0907 0793 COPY =7,A WORDS TO MOVE 0429 A230 03DA 0794 COPY =SBUF,X MOVE VOLUME NAME 1PAGE 0042 MACRO (E100) IOS4 DEMO PROGRAM  1980/06/06 12:16:51.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 042A FF31 03DC 0795 JSK MOV 042B FE81 042D 0798 JSK GPUN GET UNIT 042C 2309 0799 GNV10 RSK 0000042D 0801 GPUN EQU $ GET PUN 042D FF2B 03D9 0802 JSK  ISM GET UNIT 042E 8332 03E1 0803 COPY NC,A 042F 2000 0804 COPY A,X -  IN CASE NOR SPECIFIED 0430 1145 0436 0805 JEQ A,GPU7 NOT SPECIFIED 0431 0C04 0806 CLSN A,=4 0432 9E81 0434 0807 JMP GPU5 GOOD 0433 9E85 0439 0808 JMP GPU12 BAD 0434 FE88 043D 0809 GPU5 JSK SPU LOOK UP UNIT 0435 11C3 0439 0810 JNE A,GPU12 UNIT NOT FOUND 00000436 0811 GPU7 EQU $ 0436 A728 03DF 0812 COPY X,UNIT DIB ADDR 0437 0900 0813 COPY =0,A 0438 2309 0814 GPU10 RSK 1PAGE 0043 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:52.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0439 BEA1 045B 0816 GPU12 JST MSG BAD UNIT 043A 0022 0817 WORD ERR4 043B 0901 0818 COPY =1,A 043C 9E7B 0438 0819 JMP GPU10 0000043D 0821 SPU EQU $ LOOK UP UNIT THRU UAT 043D E2A8 0466 0822 COPY =UAT:S,Y UAT ADDR 043E A040 0000 0823 COPY 0(Y),X NUMBER OF ENTRIES 043F 2022 0824 ADD X,X 2 WORDS PER 0440 2AFF 0825 SUB =1,X 0441 A721 03E3 0826 SPU3 COPY X,T1 SAVE INDEX 0442 A0C4 0004 0827 COPY 4(Y,X),X  NEXT DIB 0443 3146 044A 0828 JEQ X,SPU5 NOT IT 0444 8084 0004 0829 COPY DI:NAM(X),A DIB NAME 0445 C085 0005 0830 COPY DI:NAM+1(X),Q 0446 8F13 03DA 0831 SUB SBUF,A 0447 11C2 044A 0832 JNE A,SPU5 NOT IT 0448 CF9E 0467 0833 SUB SBUF+1,Q 0449 5145 044F 0834  JEQ Q,SPU9 GOT IT 044A A318 03E3 0835 SPU5 COPY T1,X INDEX TO UAT 044B 2AFE 0836  SUB =2,X NEX TENTRY 044C 3234 0441 0837 JGT X,SPU3 NOT DONE 044D 2901 0838  COPY =1,X 044E 9E84 0453 0839 JMP SPU10 NOT FOUND 1PAGE 0044 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:53.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 044F 0900 0841 SPU9 COPY =0,A GOT IT 0450 B312 03E3 0842 EXCH T1,X 0451 C0C3 0003 0843  COPY 3(Y,X),Q LUN 0452 A310 03E3 0844 COPY T1,X DIB ADDR 0453 2309 0845 SPU10 RSK 00000454 0847 COMMA EQU $ CHECK FOR COMMA 0454 830F 03E4 0848 COPY  TC,A 0455 0AD4 0849 SUB =',',A 0456 1143 045A 0850 JEQ A,COM5 O.K. 0457 BE83 045B 0851 JST MSG 0458 0024 0852 WORD ERR1 SYNTAX ERROR 0459 0901 0853  COPY =1,A 045A 2309 0854 COM5 RSK 0856 ************************************************************ 0857 * *  0858 * MESSAGE SUBROUTINE * 0859 * CALLING SEQUENCE .  * 1PAGE 0045 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:53.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0860 *  * 0861 * JST MSG * 0862 * WORD MESSAGE ADDRESS * 0863 * * 0864 ************************************************************ 0000045B 0865 MSG EQU $ PRINT MESSAGE 045B 0E0D 0866 ENT 045C A37E 045B 0867 COPY *MSG,X ADDR OF MESSAGE 045D 8080 0000 0868 COPY:M 0(X),A,MESIOB+IO:BCT LENGTH 045E 868F 046E 0868+ 045F 2B01 0869 ADD =1,X  ADDR OF BYTE 0460 A68E 046F 0870 COPY X,MESIOB+IO:BUF 0461 3A07 0871 MSG5 I:IO MESIOB 0462 046A 0871+ 0463 9E7D 0461 0872 JMP MSG5 RETRY ON ERROR 0464 DE76 045B 0873 IMS MSG BUNP RETURN OVER PARAMETER 0465 9F75 045B 0874 JMP *MSG 0004 0875 LPOOL 0466 0001 UAT:S 0467 0053 0468 0469 046A 534C 0876 IOB:A MESIOB,SL,WR:,FA:,0,0,0 046B 0000 0876+ 046C 0000 0876+ 046D 001B 0876+ 046E 0000 0876+ 046F 0000 0876+ 0470 0000 0876+ 0471 0000  0876+ 0877 ************************************************************ 0878 *  * 0879 * READ COMMAND INPUT SUBROUTINE  * 0880 * * 0881 * CALLING SEQUENCE * 1PAGE 0046 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:55.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0882 *  * 0883 * JST READ * 0884 * WORD NUMBER OF CHARACTERS * 0885 * WORD BUFFER ADDR * 0886 * * 0887 * OUTPUTS  * 0888 * NC NUMBER OF CHARACTERS INPUT * 0889 *  TC LAST CHARACTER INPUT * 0890 *  * 0891 * INPUT BUFFER IS INITIALIZED TO BLANKS * 0892 *  * 0893 ************************************************************ 0472 0E0D 0894 READ ENT 0473 0900 0895 COPY:M =0,A,NC INITIALIZATION 0474 87A9 049E 0895+ 0475 A37C 0472 0896 COPY *READ,X BYTE COUNT 0476 DE7B 0472 0897 IMS READ 0477 / E37A 0472 0898 COPY *READ,Y BUFFER ADDR 0478 A6B6 04AF 0899 COPY X,RDIOB+IO:BCT 0479 E6B6 04B0 0900 COPY Y,RDIOB+IO:BUF 047A 0920 0901 COPY:M =' ',A,TC 047B 87A3 049F 0901+ 047C 82A3 04A0 0902 COPY =' ',A 047D 2B01 0903 ADD =1,X 047E 2E09 0904 SHIFT X,RO,1 WORDS TO BLANK 047F 84C0 0000 0905 READ5 COPY A,0(Y,X) 0480 353E 047F 0906 JEQD X,READ5 0481 3A07 0907 READ6 I:IO PROMPT 0482 04B5 0907+ 0483 0000 0908 NOP 0484 3A07 0909  READ7 I:IO RDIOB 0485 04AB 0909+ 0486 0000 0910 NOP 0487 829A 04A2 0911 COPY =CI,A SEE IF CI & SL ARE THE SAME 0488 FF9A 04A3 0912 JSK SLU 1PAGE 0047 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:57.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0489 A79A 04A4 0913 COPY X,T1 048A 829A 04A5 0914 COPY =SL,A 048B FF97 04A3 0915 JSK SLU 048C 8081 0001 0916 COPY 1(X),A DIB OF SL 048D A396 04A4 0917 COPY T1,X 048E 8C81 0001 0918  SUB 1(X),A 048F 1144 0494 0919 JEQ A,READ10 THE SAME DO('T ECHO IT 0490 82A0 04B1 0920  COPY:M RDIOB+IO:ACT,A,BP LENGTH OF INPUT 0491 878F 04A1 0920+ 0492 BE48 045B 0921 JST MSG ECHO COMMAND ON SL 0493 0059 0922 WORD BP 00000494 0923 READ10 EQU $ 0494 A29C 04B1 0924  COPY:M RDIOB+IO:ACT,X,NC BYTES INPUT 0495 A788 049E 0924+ 0496 A299 04B0 0925 COPY RDIOB+IO:BUF,X 0497 0E25 0926 SBIT BY:,S 0498 80C0 0000 0927 COPY 0(Y,X),A 0499 0E27 0928 RBIT BY:,S 049A 8784 049F 0929 COPY A,TC 049B 2AFF 0930 SUB =1,X 049C DE55 0472 0931 IMS READ 049D 9F54 0472 0932 JMP *READ 000D 0933 LPOOL 049E 004C NC 049F 004B TC 04A0 2020 04A1 0059 BP 04A2 4349 CI 04A3 0015 SLU 04A4 0048 T1 04A5 534C SL 04A6 04A7 04A8 04A9 1PAGE 0048  MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:57.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 04AA 04AB 4349 0934 IOB:A RDIOB,CI,RE:,FA:,0,0,RDFP 04AC 0000 0934+ 04AD 04B3 0934+ 04AE 000B 0934+ 04AF 0000 0934+ 04B0 0000 0934+ 04B1 0000 0934+ 04B2 0000 0934+ 000004AE 0935 RDFC EQU RDIOB+IO:FC 04B3 0000 0936 RDFP RES 2,0 04B5 4349 0937 IOB:A  PROMPT,CI,WR:,WP:,1,PCHAR,0 04B6 0000 0937+ 04B7 0000 0937+ 04B8 0011 0937+ 04B9 0001 0937+ 04BA 04BD 0937+ 04BB 0000 0937+ 04BC 0000 0937+ 04BD 3E20 0938 PCHAR BYTE '>' PROMPT CHAR 1PAGE 0049 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:58.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 000004BE 0940 ISM EQU $ INPUT SYMBOL 0 04BE 0900 0941 COPY =0,A 04BF 87C1 0501 0942 COPY A,DV INIT 04C0 87C1 0502 0943  COPY A,DF 04C1 87C1 0503 0944 COPY A,HV 04C2 87C1 0504 0945 COPY A,HF 04C3 875A 049E 0946 COPY A,NC 04C4 825B 04A0 0947 COPY =' ',A 04C5 4900 0948 COPY =0,Q  04C6 A2BE 0505 0949 COPY =SBUF,X BLANK BUFFER 04C7 430A 0950 ISM1 XNX Q 04C8 8480 0000 0951 COPY A,0(X) 04C9 4B01 0952 ADD =1,Q 04CA 4C07 0953 CLSN Q,=7 04CB 9E81 04CD 0954 JMP $+2 DONE 04CC 9E7A 04C7 0955 JMP ISM1 NOT DONE 04CD E2B8 0506 0957 ISM2 COPY =IBUF,Y INPUT BUFFER 04CE A352 04A1 0958 COPY BP,X BUFFER POINTER 04CF 4020 0959 COPY X,Q 04D0 FA60 04B1 0960 CSK Q,RDIOB+IO:ACT SEE IF INPUT EXAUSTED 04D1 9E82 04D4 0961 JMP $+3 NO 04D2 0000 0962 NOP 04D3 9EAB 04FF 0963 JMP ISM10 NOTHING LEFT IN BUFFER 04D4 DF4C 04A1 0965 IMS BP BUNP POINTER 04D5 0000 0966 NOP 04D6 0E25 0967 SBIT BY:,S 04D7 80C0 0000 0968 COPY 0(Y,X),A  GET CHARACTER 04D8 0E27 0969 RBIT BY:,S 04D9 8745 049F 0970 COPY A,TC 1PAGE 0050 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:16:59.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 04DA 0D30 0971 CSK A,='0' CHECK FOR DECIMAL 04DB 9EA3 04FF 0972 JMP ISM10  DELEIMITER 04DC 0D3A 0973 CSK A,='9'+1 04DD 9E87 04E5 0974 JMP ISM3 O.K. FOR HEX OR DECIMAL 04DE DFA3 0502 0975 IMS DF NOT 04DF 0D41 0977 CSK A,='A' CHECK FOR HEX 04E0 DFA3 0504 0978 IMS HF NOT 04E1 0D46 0979 CSK A,='F' 04E2 9E81 04E4 0980 JMP $+2 HEX 04E3 DFA0 0504 0981 IMS HF NOT HEX 04E4 0AF9 0982 SUB =7,A SET TO HEX VALUE 000004E5 0984 ISM3 EQU $ 04E5 C39B 0501 0985 COPY DV,Q 04E6 4E21 0986 SHIFT Q,LO,3 *8 04E7 CB99 0501 0987 ADD DV,Q *9 04E8 CB98 0501 0988 ADD DV,Q *10 04E9 0AD0 0989 SUB ='0',A 04EA 4002 0990 ADD A,Q 04EB C795 0501 0991 COPY Q,DV CUURENT DECIMAL VALUE 04EC C396 0503 0992 COPY HV,Q 04ED 4E31 0993 SHIFT Q,LO,4 04EE 4002 0994 ADD  A,Q ADD NEXT DIGIT 04EF C793 0503 0995 COPY Q,HV 04F0 A32D 049E 0996 COPY NC,X 04F1 2C04 0997 CLSN X,=4 LIMIT FOR DECIMAL 04F2 DF8F 0502 0998 IMS DF NOT DECIMAL 04F3 2C04 0999 CLSN X,=4 04F4 DF8F 0504 1000 IMS HF NOT HEX 04F5 2C01 E 1001 CLSN X,=14 CHECK FOR LIMIT 1PAGE 0051 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:00.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 04F6 9E87 04FE 1002 JMP  ISM8 HIT LIMIT 04F7 8327 049F 1003 COPY TC,A RESTORE CHAR 04F8 E28C 0505 1004 COPY =SBUF,Y 04F9 0E25 1005 SBIT BY:,S 04FA 84C0 0000 1006 COPY A,0(Y,X) PUT CHARACTER INTO SYMBOL BUFFER 04FB 0E27 1007 RBIT BY:,S 04FC DF21 049E 1008 IMS NC BUMP PCOUNTER 04FD 0000 1009 NOP 04FE 9E4E 04CD 1010 ISM8 JMP ISM2 000004FF 1012 ISM10  EQU $ 04FF 871F 049F 1013 COPY A,TC SAVE DELIMITER 0500 2309 1014 RSK 0006 1015 LPOOL 0501 004D DV 0502 004E DF 0503 0050 HV 0504 004F HF 0505 0052 SBUF 0506 005A IBUF  1016 END 0000 ERRORS (0000) 0000 WARNINGS (0000) 1PAGE 0052 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:32.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 1018  SHARABLE SFMDEMO: 0000 0002 1019 SFMDEMO: REL 0000 1020 NAM G:B 0000 1021  NAM CRE:A,DEL:A,ASS:A,COP:A,VIE:A,IDI:A 000C 0018 003C 0024 0030 0000 1022 NAM MOV 002F 1023 NAM SLU 0234 1024 NAM MES0,MES1,MES2,MES3,MES4 0238 0247 0256 0269 0223 1025 NAM IOERR 027F 1026  NAM MES5 0287 1027 NAM MES6 028C 1028 NAM MES6A 02A2 1029 NAM MES9 02AA 1030 NAM ERR1,ERR2,ERR3,ERR4,ERR5,ERR6,ERR7,ERR8,ERR9,ERR10 02B1 02BA 02BB 02C5 02CC 02D8 02E0 02EA 02FD 0301 1031 NAM  ERR10A,ERR9A 02EE 030D 1032 NAM ERR11,ERR12 031F 1PAGE 0053 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:33.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0330  1033 NAM ERR14 1034 EXTR RDIOB 1035 EXTR RDFC 1036 EXTR UAT:S 1037 EXTR MSG,BUFSM 1038  EXTR FILESM 1039 EXTR NAME,VOLUME 1040 EXTR INXTPP,SEXTPP,RLNPP 1041 EXTR LUNPP 1042 EXTR UNIT,DIRPUN,DIRLUN  1043 EXTR LUNF,LUNT 1044 EXTR OPCODE 1045 EXTR DIRPL 1046 EXTR HAD,IBUF,BP 00000000 1048 G:B EQU $ 00000000 1049 MOV EQU $ MOVE WORDS 0000 1549 000A 1050 JEQD A,MOV10 NOTHING TO DO 00012  4309 1051 PUSH :40 0002 0040 0003 6040 1052 COPY Q,Y TO ADDR 0004 C080 0000 1053 MOV5 COPY 0(X),Q 0005 C440 0000 1054 COPY Q,0(Y) 0006 2B01 1055 ADD =1,X  0007 6B01 1056 ADD =1,Y 0008 15BB 0004 1057 JNED A,MOV5 NOT DONE 0009 6309 1058 POP 1PAGE 0054 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:34.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 000A 2309 1059 MOV10 RSK 0000000B 1061 ISP  EQU $ INIT SCRATCH PAD 000B 4900 1062 COPY =0,Q 000C 2900 1063 COPY  =0,X 000D C4C0 0000 1064 ISP5 COPY Q,0(Y,X) 000E 2B01 1065 ADD =1,X 000F 0AFF 1066  SUB =1,A 0010 11BC 000D 1067 JNE A,ISP5 NOT DONE 0011 2309 1068 RSK  00000012 1070 TNVU EQU $ XFER NAME,VOL & UNIT TO Y SPAD 0012 0929 1071 COPY =ENDY,A LENGTH OF SPAD 0013 FE77 000B 1072 JSK ISP ZERO IT 0014 A2C5 005A 1073  COPY =NAME,X MOVE NAME 0015 0907 1074 COPY =7,A WORDS TO MOVE 0016 491B 1075 COPY =NAM,Q 0017 4062 1076 ADD Y,Q 0018 FE67 0000 1077 JSK MOV MOVE FROM BUFFER TO SCRATCHPAD 1PAGE 0055 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:35.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0019 0907 1078 COPY =7,A WORDS TO MOVE 001A A2C0 005B 1079 COPY =VOLUME,X MOVE VOLUME NAME 001B 4922 1080 COPY =VOL,Q 001C 4062  1081 ADD Y,Q 001D FE62 0000 1082 JSK MOV MOVE FROM BUFFER TO SCRATCHPAD 001E 83B8 0057 1083 COPY:M UNIT,A,PUN(Y) DIB ADDR 001F 8456 0016 1083+ 0020 0060 1084 COPY Y,A 0021 0B1B 1085 ADD =NAM,A ADDR OF NAME 0022 C05B 001B 1086 COPY NAM(Y),Q SEE IF EXISTS 0023 CEB4 0058 1087 SUB =' ',Q 0024 51C1 0026 1088 JNE Q,TNV2 EXISTS 0025 0900  1089 COPY =0,A NULL 00000026 1090 TNV2 EQU $ 0026 8454 0014 1091 COPY  A,NAMPTR(Y) 0027 0060 1092 COPY Y,A 0028 0B22 1093 ADD =VOL,A 0029 C062 0022 1094 COPY VOL(Y),Q SEE IF VOL SPECIFIED 002A CEAD 0058 1095 SUB =' ',Q 002B 51C1 002D 1096  JNE Q,TNV3 SPECIFIED 002C 0900 1097 COPY =0,A NOT SPECIFIED 0000002D  1098 TNV3 EQU $ 002D 8455 0015 1099 COPY A,VOLPTR(Y) 002E 2309 1100 RSK  0000002F 1102 SLU EQU $ 002F A2AC 005C 1103 COPY =UAT:S,X UAT ADDR 1PAGE 0056 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:36.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO3  .LST 0030 C080 0000 1104 COPY 0(X),Q LENGTH 0031 4042 1105 ADD Q,Q 2 WORDS PER ENTRY 0032 4AFE 1106 SUB =2,Q 0033 2B04 1107 ADD =4,X POINT TO FIRST ENTRY 0034 2042 1108 SLU3 ADD Q,X ADDR OF NEXT ENTRY 0035 B880 0000 1109 CSK A,0(X) SERCH FOR LU 0036 9E82 0039 1110 JMP SLU5 NOT IT 0037 9E81 0039 1111 JMP  SLU5 NOT IT 0038 9E83 003C 1112 JMP SLU9 GOT IT 0039 2043 1113 SLU5 SUB Q,X 003A 4AFE 1114 SUB =2,Q NEXT ENTRY 003B 5338 0034 1115 JGE Q,SLU3 MORE TO SEARCH 003C 2309 1116 SLU9 RSK 003D 0E0D 1118 FMSG ENT FILE MESSAGE 003E 3A02 1119 R:WAIT BUFSM WAIT FOR BUFFER CONTROL 003F 0019 1119+ 0040 A054 0014 1120  COPY NAMPTR(Y),X MOVE FILE NAME TO MESSAGE 0041 31CA 004C 1121 JNE X,FMS2 DISK FILE 0042 A394 0057 1122 COPY UNIT,X DIB OF UNIT 0043 2B04 1123 ADD =DI:NAM,X ADDR OF DVICE NAME 0044 4060 1124 COPY Y,Q 0045 4B1B 1125 ADD =NAM,Q MOVE IT TO HERE 0046 0907 1126 COPY =7,A 0047 FE96 005E 1127 JSK BFN CLEAR OUT OLD FILE NAME 0048 0902 1128 COPY =2,A 2 WORDS LONG 0049 FE36 0000 1129 JSK MOV 1PAGE 0057 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:37.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 004A 2060 1130 COPY Y,X 004B 2B1B 1131 ADD =NAM,X 0000004C 1132 FMS2  EQU $ 004C C370 003D 1133 COPY *FMSG,Q 004D C684 0052 1134 COPY Q,FMS5 MESSAGE ADDR 004E 4B04 1135 ADD =4,Q ADDR TO MOVE FILE NAME TO 004F 0907 1136 COPY =7,A  LENGTH OF NAME 0050 FE2F 0000 1137 JSK MOV 0051 BF87 0059 1138 JST MSG 0052 0000  1139 FMS5 RES 1,0 0053 3A01 1140 R:SIG BUFSM LET GO OF BUFFER 0054 0019 1140+ 0055 DE67 003D 1141 IMS FMSG 0056 9F66 003D 1142 JMP *FMSG 0007 1143 LPOOL 0057 0011 UNIT 0058 2020 0059 001A MSG 005A 0017 NAME 005B 0016 VOLUME 005C 001B UAT:S 005D 0000005E 1144 BFN  EQU $ BLANK FILE NAME 005E 4309 1145 PUSH :40 005F 0040 0060 0AFF 1146  SUB =1,A 0061 2040 1147 COPY Q,X ADDR OF NAME 0062 C275 0058 1148 COPY =' ',Q 0063 C480 0000 1149 BFN3 COPY Q,0(X) 0064 2B01 1150 ADD =1,X NEXT WORD 0065 15BD 0063 1151 JNED A,BFN3 NOT DONE 0066 6309 1152 POP 0067 2309 1153 RSK  1PAGE 0058 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:38.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ 4  LI = DH00.SFMDEMO .LST 1PAGE 0059 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:38.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0000 1156 TDB:A CRE:A,CRE:S,ENDY,0,:100,0,10 0001 0000 1156+ 0002 0008 1156+ 0003 000A  1156+ 0004 0029 1156+ 0005 0000 1156+ 0006 0100 1156+ 0007 0068 1156+ 0008 000A 1156+ 0009 0000 1156+ 000B F01E 1156+ 00000068 1157 CRE:S EQU $ CREATE ACTIVITY 0068 FE29 0012  1158 JSK TNVU TRANSFER NAME,VOL, & UNIT TO Y-SPAD 0069 8391 007B 1159 COPY:M INXTPP,A,INXT(Y) SET UP REST OF PL 006A 8458 0018 1159+ 006B 8390 007C 1160 COPY:M SEXTPP,A,SEXT(Y) IN SPAD 006C 8459 0019  1160+ 006D 838F 007D 1161 COPY:M RLNPP,A,RECLN(Y) 006E 845A 001A 1161+ 006F 3A01 1162 R:SIG  BUFSM FREE BUFFER 0070 0019 1162+ 0071 1A16 1163 F:CREA NAMPTR(Y) CREATE FILE 0072 1014 0014 1163+ 0073 1144 0078 1164 JEQ A,CREA12 FILE ALREADY EXISTS 0074 BE48 003D 1165 JST FMSG TELL USER FILE CREATED 0075 0238 1166 WORD MES1 00000076 1167 CREA10 EQU $ 0076 3A04 1168 R:END 0077 0000 1168+ 0078 BE44 003D 1170 CREA12 JST FMSG FILE ALREADY EXISTS 0079 02EA 1171 WORD ERR9 007A 9E7B 0076 1172 JMP CREA10 1PAGE 0060 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:41.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 1PAGE 0061 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:41.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 007B 0015 INXTPP  TDB:A DEL:A,DEL:S,ENDY,0,:100,0,10 007C 0014 SEXTPP 007D 0013 RLNPP 000C 1174 000D 0000 1174+ 000E 0014 1174+ 000F 000A 1174+ 0010 0029 1174+ 0011 0000 1174+ 0012 0100 1174+ 0013 007E 1174+ 0014 000A 1174+ 0015 0000 1174+ 0017 F01E 1174+ 0000007E 1175 DEL:S EQU $ DELETE ACTIVITY 007E FE13 0012 1176 JSK TNVU TRANSFER NAME,VOL, & UNIT TO Y-SPAD 007F 3A01 1177 R:SIG BUFSM FREE BUFFER 0080 0019 1177+ 0081 1A17 1178 F:DELE NAMPTR(Y) DELETE FILE 0082 1014 0014 1178+ 0083 1144 0088 1179 JEQ A,DELE12 FILE NOT FOUND 0084 BE38 003D 1180  JST FMSG FILE DELETED 0085 0247 1181 WORD MES2 00000086 1182 DELE10 EQU $ 0086 3A04 1183 R:END 0087 0000 1183+ 0088 BE34 003D 1185 DELE12 JST FMSG FILE NOT FOUND 0089 02FD 1186 WORD ERR10 008A 9E7B 0086 1187 JMP DELE10 1PAGE 0062 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:43.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO 5  .LST 0018 1189 TDB:A ASS:A,ASS:S,ENDY,0,:100,0,10 0019 0000 1189+ 001A 0020 1189+ 001B 000A 1189+ 001C 0029 1189+ 001D 0000 1189+ 001E 0100 1189+ 001F 008B 1189+ 0020 000A  1189+ 0021 0000 1189+ 0023 F01E 1189+ 0000008B 1190 ASS:S EQU $ ASSIGN ACTIVITY 008B FE06 0012 1191 JSK TNVU TRANSFER NAME,VOL, & UNIT TO Y-SPAD 008C 83B0 00BD 1192 COPY:M  LUNPP,A,LUN(Y) 008D 8458 0018 1192+ 008E 8440 0000 1193 COPY A,INLUN(Y) 008F 8EAE 00BE 1194 SUB  ='CI',A IF COMMAND INPUT BEING CHANGED 0090 11C5 0096 1195 JNE A,ASSI3 NO 0091 0931 1196 COPY:M =FU:%4+CL:,A,RDFC 0092 87AC 00BF 1196+ 0093 3A07 1197 I:IO RDIOB CLOSE OLD FILE 0094 001D 1197+ 0095 0000 1198 NOP 00000096 1200 ASSI3 EQU $ 0096 1A18 1201 F:CONN NAMPTR(Y) CONNECT FILE 0097 1014 0014 1201+ 0098 1151 00AA 1202 JEQ A,ASSI12  FILE NOT FOUND 0099 8058 0018 1203 COPY:M LUN(Y),A,MES3B LUN TO MESSAGE 009A 87A5 00C0 1203+ 009B 8EA2 00BE 1204 SUB =CI,A 009C 11C7 00A4 1205 JNE A,ASSI8 009D 0930 1206 COPY:M =FU:%4+OP:,A,RDFC 1PAGE 0063 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:46.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 009E 87A0 00BF 1206+ 009F 3A07 1207 I:IO RDIOB OPEN NEW FILE 00A0 001D 1207+ 00A1 9E8D 00AF 1208 JMP ASSI14 ERROR 00A2 090B 1209 COPY:M =RE:%4+FA:,A,RDFC 00A3 879B 00BF 1209+ 000000A4 1211 ASSI8 EQU $ 00A4 3A01 1212 R:SIG BUFSM FREE BUFFER 00A5 0019 1212+ 00A6 BE16 003D 1213 JST FMSG FILE CONNECTED 00A7 0256 1214 WORD MES3 000000A8 1215 ASSI10 EQU $ 00A8 3A04 1216 R:END 00A9 0000  1216+ 00AA 3A01 1218 ASSI12 R:SIG BUFSM 00AB 0019 1218+ 00AC BF2C 0059 1219 JST  MSG FILE NOT FOUND 00AD 02FD 1220 WORD ERR10 00AE 9E79 00A8 1221 JMP ASSI10  00AF 8291 00C1 1223 ASSI14 COPY =RDIOB,A 00B0 0063 1224 SUB Y,A TO COMPENSATE FOR IOERR ADDING Y 00B1 FF8A 00BC 1225 JSK IOERR OPEN ERROR 00B2 3A18 1226 ASSI16 F:CONN TTYPL  PUT CI BACK TO TTY 00B3 00B7 1226+ 00B4 3A01 1227 R:SIG BUFSM 00B5 0019 1227+ 1PAGE 0064 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:48.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 00B6 9E71 00A8 1228 JMP ASSI10 1230 EXTR D:TY00 00B7 0000 1231 CONN:A TTYPL,0,0,TY00,CI 00B8 0000 1231+ 00B9 0000 1231+ 00BA 0000 1231+ 00BB 4349 1231+ 0006 1232 LPOOL 00BC 0223 IOERR 00BD 0012 LUNPP 00BE 4349 00BF 001C RDFC 00C0 0268 MES3B6  00C1 001D RDIOB 1PAGE 0065 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:49.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0024 1234 TDB:A VIE:A,VIE:S,ENDY,0,:100,0,10 0025 0000 1234+ 0026 002C 1234+ 0027 000A 1234+ 0028 0029 1234+ 0029 0000  1234+ 002A 0100 1234+ 002B 00C2 1234+ 002C 000A 1234+ 002D 0000 1234+ 002F F01E 1234+  000000C2 1235 VIE:S EQU $ VIEW ACTIVITY 00C2 0929 1236 COPY =ENDY,A 00C3 FFDD 0121 1237 JSK ISP INIT SPAD 00C4 8312 0057 1238 COPY:M UNIT,A,PUN(Y) DIB ADDR 00C5 8456 0016 1238+ 00C6 87DB 0122 1239 COPY A,DIRPUN 00C7 3A18 1240 F:CONN DIRPL CONNECT TO DIRECTORY 00C8 000B 1240+ 00C9 12F9 0103 1241 JLE A,VIEW12 CAN'T MAKE NO CONNECTION 00CA 83D8 0123 1242 COPY:M DIRLUN,A,INLUN(Y) SET UP IOBS 00CB 8440 0000 1242+ 00CC 0910 1243 COPY:M =16,A,INBCT(Y) 00CD 8444 0004 1243+ 00CE 844C 000C 1244 COPY A,OUTBCT(Y) 00CF 0930 1245 COPY:M =FU:%4+OP:,A,INFC(Y) OPEN 00D0 8443 0003 1245+ 00D1 844B 000B 1246 COPY A,OUTFC(Y) 00D2 0060 1247 COPY Y,A 00D3 0B1B 1248 ADD =NAM,A BUFFER ADDR 00D4 8445 0005 1249 COPY A,INBUF(Y) 00D5 844D 000D 1250 COPY A,OUTBUF(Y) 00D6 0060 1251 COPY Y,A 00D7 0B10 1252  ADD =INFP,A 00D8 8442 0002 1253 COPY A,INCRI(Y) 1PAGE 0066 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:51.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 00D9 82CB 0125 1254  COPY:M =SL,A,OUTLUN(Y) 00DA 8448 0008 1254+ 00DB 1A07 1255 I:IO INIOB(Y) OPEN DIRECTORY 00DC 1000 0000 1255+ 00DD 9EA8 0106 1256 JMP VIEW14 ERROR 00DE 1A07 1257 I:IO OUTIOB(Y) OPEN LO DEVICE 00DF 1008 0008 1257+ 00E0 9EA8 0109 1258 JMP VIEW16 ERROR 00E1 0908 1259  COPY:M =RE:%4+FS:,A,INFC(Y) READ STREAM 00E2 8443 0003 1259+ 00E3 091B 1260 COPY:M =WR:%4+FA:,A,OUTFC(Y) WRITE ASCII 00E4 844B 000B 1260+ 000000E5 1262 VIEW1 EQU $ 00E5 1A07 1263 I:IO INIOB(Y) READ DIRECTORY ENTRY 00E6 1000 0000 1263+ 00E7 9EA9 0111 1264 JMP VIEW18 ERROR 00E8 805B 001B 1265 COPY NAM(Y),A FNO 00E9 4900 1266 COPY ='',Q 00EA 11C3 00EE 1267  JNE A,VIEW2 FILE EXISTS 00EB 805C 001C 1268 COPY NAM+1(Y),A SEE IF EVER USED 00EC 1138 00E5 1269 JEQ A,VIEW1 NEVER USED 00ED C2B8 0126 1270 COPY ='D ',Q DELETED 00EE C45B 001B 1271 VIEW2 COPY Q,NAM(Y) 00EF 1A07 1272 I:IO OUTIOB(Y) LIST ENTRY 00F0 1008 0008 1272+ 00F1 9EA5 0117 1273 JMP VIEW20 ERROR 00F2 9E72 00E5 1274 JMP VIEW1 KEEP ON GOING 7  000000F3 1276 VIEW5 EQU $ 00F3 0931 1277 COPY:M =FU:%4+CL:,A,INFC(Y) CLOSE 1PAGE 0067  MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:53.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 00F4 8443 0003 1277+ 00F5 1A07 1278 I:IO INIOB(Y) CLOSE DIRECTORY 00F6 1000 0000 1278+ 00F7 9EA7 011F 1279 JMP VIEW22 ERROR 00F8 0931 1280 COPY:M =FU:%4+CL:,A,OUTFC(Y) CLOSE 00F9 844B 000B 1280+ 00FA 1A07 1281 I:IO OUTIOB(Y) CLOSE 'LO' 00FB 1008 0008 1281+ 00FC 9EA2 011F 1282 JMP VIEW22 ERROR 000000FD 1283 VIEW10 EQU $ 00FD BFA6 0124 1284 JST MSG VIEW COMPLETE 00FE 028E 1285 WORD MES7 00FF 3A01 1286 R:SIG BUFSM  FREE BUFFER 0100 0019 1286+ 0101 3A04 1287 R:END 0102 0000 1287+ 00000103 1289 VIEW12 EQU $ 0103 BFA0 0124 1290 JST MSG DIRECTORY NOT FOUND 0104 0338 1291  WORD ERR15 0105 9E77 00FD 1292 JMP VIEW10 00000106 1294 VIEW14 EQU $ 0106 0900  1295 COPY =INIOB,A 0107 FF34 00BC 1296 JSK IOERR ANNOUNCE I/O ERROR 0108 9E74 00FD 1297 JMP VIEW10 00000109 1299 VIEW16 EQU $ 0109 0931 1300 COPY:M =FU:%4+CL:,A,INFC(Y) CLOSE 1PAGE 0068 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:55.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 010A 8443 0003 1300+ 010B 1A07 1301 I:IO INIOB(Y) CLOSE DIRECTORY 010C 1000 0000 1301+ 010D 9E91 011F 1302 JMP VIEW22 ERROR 010E 0908 1303 COPY =OUTIOB,A 010F FF2C 00BC 1304 JSK IOERR ANNOUNCE I/O ERROR 0110 9E6C 00FD 1305 JMP VIEW10 00000111 1307 VIEW18 EQU $ 0111 8047 0007 1308 COPY IO:ST+INIOB(Y),A SOFTWARE STATUS 0112 0AFF 1309 SUB =EOF:,A CHECK FOR END OF FILE 0113 111F 00F3 1310 JEQ A,VIEW5 GO FINISH UP 0114 0900 1311 COPY =INIOB,A 0115 FF26 00BC 1312 JSK IOERR  ANNOUNCE I/O ERROR 0116 9E5C 00F3 1313 JMP VIEW5 GO CLOSE 00000117 1314 VIEW20 EQU $  0117 0931 1315 COPY:M =FU:%4+CL:,A,INFC(Y) CLOSE 0118 8443 0003 1315+ 0119 1A07 1316 I:IO  INIOB(Y) CLOSE DIRECTORY 011A 1000 0000 1316+ 011B 9E83 011F 1317 JMP VIEW22 ERROR 011C 0908 1318 COPY =OUTIOB,A 011D FF1E 00BC 1319 JSK IOERR ANNOUNCE I/O ERROR 011E 9E5E 00FD 1320 JMP VIEW10 0000011F 1322 VIEW22 EQU $ 011F FF1C 00BC 1323 JSK IOERR ANNOUNCE I/O ERROR 0120 9E5C 00FD 1324 JMP VIEW10 0006 1325 LPOOL 0121 000B ISP 0122 0010 DIRPUN 1PAGE 0069 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:56.75 SI = DH00.SFMDEMO .ASM SO = DH008 .SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0123 000F DIRLUN 0124 001A MSG 0125 534C SL 0126 4420  1PAGE 0070 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:57.25 SI = DH00.SFMDEMO  .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0030 1327 TDB:A IDI:A,IDI:S,ENDY,0,:100,0,10 0031 0000 1327+ 0032 0038 1327+ 0033 000A 1327+ 0034 0029 1327+ 0035 0000 1327+ 0036 0100 1327+ 0037 0127 1327+ 0038 000A 1327+ 0039 0000 1327+ 003B F01E 1327+ 00000127 1328 IDI:S EQU $ INIT DIRECTROY ACTIVITY 0127 0929 1329 COPY =ENDY,A 0128 FF78 0121 1330 JSK ISP INIT YSPAD 0129 83BC 0166 1331 COPY:M UNIT,A,PUN(Y) DIB 012A 8456 0016 1331+ 012B 8776 0122 1332 COPY A,DIRPUN FOR DIRECTORY 012C 0900 1333 COPY:M =0,A,VOLPTR(Y) NO VOLUME NAME SPECIFIED 012D 8455 0015 1333+ 012E 0060 1334 COPY Y,A 012F 0B1B 1335 ADD  =NAM,A ADDR OF FILE NAME 0130 8454 0014 1336 COPY A,NAMPTR(Y) 0131 0AFF 1337 SUB  =1,A 1 WORD FOR FNO 0132 8445 0005 1338 COPY A,INBUF(Y) 0133 0910 1339 COPY:M =16,A,INBCT(Y) BYTES PER ENTRY 0134 8444 0004 1339+ 0135 836D 0123 1340 COPY:M DIRLUN,A,INLUN(Y) LU OF DIRECTORY 0136 8440 0000 1340+ 0137 0930 1341 COPY:M =FU:%4+OP:,A,INFC(Y) OPEN 0138 8443 0003 1341+ 0139 0060 1342 COPY Y,A 013A 0B10 1343 ADD =INFP,A ADDR OF FILE POINTER 013B 8442 0002 1344  COPY A,INCRI(Y) 013C 3A18 1345 F:CONN DIRPL CONNECT TO DIRECTORY 013D 000B 1345+ 1PAGE 0071 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:17:59.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 013E 115E 015D 1346 JEQ A,IDIR12 BAD CONNECT 013F 1A07 1347 I:IO  INIOB(Y) OPEN DIRECTORY 0140 1000 0000 1347+ 0141 9EA1 0163 1348 JMP IDIR17 ERROR 0142 0908  1349 COPY:M =RE:%4+FS:,A,INFC(Y) READ STREAM 0143 8443 0003 1349+ 0144 1A07 1351 IDIR5 I:IO INIOB(Y) READ DIRECTORY 0145 1000 0000 1351+ 0146 9E88 014F 1352 JMP IDIR7 ERROR 0147 8145 0005 1353 COPY *INBUF(Y),A FNO 0148 113B 0144 1354 JEQ A,IDIR5 EMPTY ENTRY 0149 0AFB 1355 SUB =5,A CHECK FOR SYSTEM ENTRIES 014A 12B9 0144 1356 JLE A,IDIR5 DON'T DELETE SYSTEM ENTRIES 014B 1A17 1357 F:DELE NAMPTR(Y) DELETE FILE 014C 1014 0014 1357+ 014D 1155 0163 1358 JEQ A,IDIR17 SOMETHING FUNNY,FILE NOT FOUND 014E 9E75 0144 1359 JMP IDIR5  014F 8047 0007 1361 IDIR7 COPY INST(Y),A CHECK FOR EOF 0150 0AFF 1362 SUB =EOF:,A 0151 11CE 0160 1363 JNE A,IDIR16 ERROR 0152 0931 1364 IDIR8 COPY:M =FU:%4+CL:,A,INFC(Y) 0153 8443 00039  1364+ 0154 1A07 1365 I:IO INIOB(Y) CLOSE DIRECTORY 0155 1000 0000 1365+ 0156 9E8C 0163 1366  JMP IDIR17 ERROR 00000157 1367 IDIR10 EQU $ 0157 BF4C 0124 1368 JST MSG  DONE 1PAGE 0072 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:01.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO  .OBJ LI = DH00.SFMDEMO .LST 0158 0296 1369 WORD MES8 0159 3A01 1370 R:SIG BUFSM FREE BUFFER 015A 0019 1370+ 015B 3A04 1371 R:END 015C 0000 1371+ 0000015D 1373 IDIR12 EQU $ 015D BF46 0124 1374 JST MSG DIRECTORY NOT FOUND 015E 0338 1375  WORD ERR15 015F 9E77 0157 1376 JMP IDIR10 00000160 1378 IDIR16 EQU $ 0160 0900  1379 COPY =INIOB,A 0161 FF85 0167 1380 JSK IOERR 0162 9E6F 0152 1381 JMP IDIR8 00000163 1383 IDIR17 EQU $ 0163 0900 1384 COPY =INIOB,A 0164 FF82 0167 1385  JSK IOERR ANNOUNCE I/O ERROR 0165 9E71 0157 1386 JMP IDIR10 0002 1387  LPOOL 0166 0011 UNIT 0167 0223 IOERR 1PAGE 0073 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:02.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 003C 1389 TDB:A COP:A,COP:S,ENDB,0,:100,0,10 003D 0000 1389+ 003E 0044 1389+ 003F 000A 1389+ 0040 012A 1389+ 0041 0000  1389+ 0042 0100 1389+ 0043 0168 1389+ 0044 000A 1389+ 0045 0000 1389+ 0047 F01E 1389+  00000168 1390 COP:S EQU $ COPY ACTIVITY 0168 82EF 01D8 1391 COPY =ENDB,A LENGHT OF YSPAD 0169 FF37 0121 1392 JSK ISP INIT YSPAD 016A 0907 1393 COPY =7,A MOVE FROM FILE NAME TO SPAD 016B A2ED 01D9 1394 COPY =NAME,X 016C 491B 1395 COPY =NAM,Q 016D 4062 1396 ADD Y,Q 016E FFE1 01D0 1397 JSK MOV 016F 83EA 01DA 1398 COPY:M OPCODE,A,MOD(Y) MODIFIER 0170 8458 0018 1398+ 0171 83E9 01DB 1399 COPY:M LUNF,A,INLUN(Y) SET UP LOGICAL UNITS 0172 8440 0000 1399+ 0173 83E8 01DC 1400 COPY:M LUNT,A,OUTIOB(Y) 0174 8448 0008 1400+ 0175 83E7 01DD 1401  COPY:M RLNPP,A,INBCT(Y) RECORD LENGTH 0176 8444 0004 1401+ 0177 0900 1403 COPY:M =0,A,RECLN(Y) INIT RECORD COUNTER 0178 845A 001A 1403+ 0179 0930 1404 COPY:M =FU:%4+OP:,A,INFC(Y) OPEN 017A 8443 0003  1404+ 017B 844B 000B 1405 COPY A,OUTFC(Y) 1PAGE 0074 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:04.50  SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 017C 0060 1406 COPY Y,A 017D 0B2A 1407 ADD =IBUFF,A 017E 8445 0005 1408 COPY A,INBUF(Y) 017F 844D 000D 1409  COPY A,OUTBUF(Y) 0180 0060 1410 COPY Y,A 0181 0B10 1411 ADD =INFP,A 0182:  8442 0002 1412 COPY A,INCRI(Y) 0183 0060 1413 COPY Y,A 0184 0B12 1414 ADD  =OUTFP,A 0185 844A 000A 1415 COPY A,OUTCRI(Y) 0186 1A07 1417 I:IO OUTIOB(Y) OPEN OUTPUT FILE 0187 1008 0008 1417+ 0188 9EDD 01E6 1418 JMP COPY14 ERROR 0189 3A01 1419  R:SIG BUFSM FREE BUFFER 018A 0019 1419+ 018B 0900 1421 COPY =RE:%4,A READ 018C B458 0018 1422 OR MOD(Y),A ADD MODIFIER 018D 8443 0003 1423 COPY A,INFC(Y) 018E 0910 1424 COPY =WR:%4,A 018F B458 0018 1425 OR MOD(Y),A ADD MODIFIER 0190 844B 000B 1426 COPY A,OUTFC(Y) 00000191 1428 COPY8 EQU $ 0191 8040 0000 1429 COPY INLUN(Y),A SET UP PROMPT 0192 86FB 020E 1430 COPY A,PROMPT+IO:LUN 0193 3A07 1431 I:IO PROMPT PROMPT INPUT 0194 020E 1431+ 1PAGE 0075 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:06.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0195 9ED8 01EE 1432 JMP COPY16 ERROR 0196 1A07 1433 I:IO INIOB(Y) IMPUT 0197 1000 0000 1433+ 0198 9ED5 01EE 1434 JMP COPY16 ERROR 0199 8046 0006 1435 COPY:M INACT(Y),A,OUTBCT(Y) WRITE THAT WHICH WAS WRITTEN 019A 844C 000C 1435+ 019B 1135 0191 1436 JEQ A,COPY8 NULL INPUT 019C 1A07 1437 I:IO OUTIOB(Y) WRITE 019D 1008 0008 1437+ 019E 9ED7 01F6 1438 JMP COPY18 ERROR 019F DC5A 001A 1439 IMS  RECLN(Y) BUMP RECORD COUNTER 01A0 0000 1440 NOP 01A1 805A 001A 1441 COPY RECLN(Y),A 01A2 0404 1442 SELP A,4 DISPLAY RECORD NUMBER 01A3 9E6D 0191 1443 JMP COPY8  000001A4 1445 COPY9 EQU $ 01A4 0931 1446 COPY:M =FU:%4+CL:,A,INFC(Y) 01A5 8443 0003 1446+ 01A6 1A07 1447 I:IO INIOB(Y) CLOSE INPUT FILE 01A7 1000 0000 1447+ 01A8 9ED7 0200 1448 JMP COPY22 ERROR 000001A9 1449 COPY9A EQU $ 01A9 0931 1450 COPY:M =FU:%4+CL:,A,OUTFC(Y) 01AA 844B 000B 1450+ 01AB 1A07 1451 I:IO OUTIOB(Y) CLOSE OUTPUT FILE 01AC 1008 0008 1451+ 01AD 9ECD 01FB 1452 JMP COPY19 ERROR 01AE FED7 0206 1454 JSK RFL RELEASE FILE LOGICAL UNITS 01AF 3A02 1455 R:WAIT BUFSM WAIT FOR CONTROL 1PAGE 0076 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:08.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 01B0 0019  1455+ 01B1 0900 1456 COPY:M =0,A,BP SET TO CONVERT RECORD LENGTH 01B2 87A0 01D3 1456+ 01B3 805A 001A 1457 COPY RECLN(Y),A HEX NIMBER OF RECORDS 01B4 FF9F 01D4 1458 JSK HAD CONVERT TO ASCII 01B5 0902 1459 COPY =2,A MOVE TO MESSAGE 01B6 A29E 01D5 1460 COPY =IBUF,X;  FROM HERE 01B7 C2A6 01DE 1461 COPY =MES4B,Q 01B8 FF97 01D0 1462 JSK MOV 01B9 291B  1463 COPY =NAM,X CHECK FOR FILE 01BA 2062 1464 ADD Y,X 01BB 8080 0000 1465  COPY 0(X),A 01BC 11C9 01C6 1466 JNE A,COPY9B FILE 01BD 8040 0000 1467 COPY INLUN(Y),A LU 01BE FF97 01D6 1468 JSK SLU FIND UNIT 01BF A081 0001 1469 COPY 1(X),X  DIB ADDR 01C0 2B04 1470 ADD =DI:NAM,X NAME ADDR 01C1 C29D 01DF 1471 COPY =MES4A,Q 01C2 0907 1472 COPY =7,A 01C3 FF9C 01E0 1473 JSK BFN CLEAR OUT OLD FILE NAME 01C4 0902 1474 COPY =2,A 01C5 9E82 01C8 1475 JMP COPY9C 01C6 C298 01DF 1476 COPY9B COPY  =MES4A,Q 01C7 0907 1477 COPY =7,A 01C8 FF87 01D0 1478 COPY9C JSK MOV MOVE FILE OR DEVICE NAME TO MESSAGFE 01C9 BF8D 01D7 1479 JST MSG PRINT NUMBER OF RECORDS COPIED 01CA 0269 1480  WORD MES4 000001CB 1481 COPY10 EQU $ 01CB 3A01 1482 R:SIG BUFSM LET GO OF BUFFER 01CC 0019 1482+ 01CD 3A04 1483 R:END THROUGH 01CE 0000 1483+ 01CF 9E54 01A4 1484 COPY9J JMP COPY9 0016 1485 LPOOL 01D0 0000 MOV 1PAGE 0077 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:10.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 01D1 0200 COPY22 01D2 0206 RFL 01D3 0008 BP 01D4 000A HAD 01D5 0009 IBUF 01D6 002F SLU 01D7 001A MSG 01D8 012A ENDB 01D9 0017 NAME 01DA 000C OPCODE 01DB 000E LUNF 01DC 000D LUNT 01DD 0013 RLNPP 01DE 0275 MES4B 01DF 026D MES4A 01E0 005E BFN 01E1 01E2 01E3 01E4 01E5 000001E6 1487 COPY14 EQU $ 01E6 0931 1488 COPY:M =FU:%4+CL:,A,INFC(Y) 01E7 8443 0003 1488+ 01E8 1A07 1489 I:IO INIOB(Y) CLOSE INPUT FILE 01E9 1000 0000 1489+ 01EA 9E95 0200 1490 JMP COPY22 ERROR 01EB 0908 1491 COPY =OUTIOB,A 01EC FEB6 0223 1492  JSK IOERR I/O ERROR 01ED 9E91 01FF 1493 JMP COPY20 1PAGE 0078 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:11.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 000001EE 1495 COPY16 EQU $ 01EE 8047 0007 1496 COPY INST(Y),A 01EF 0AFF 1497 SUB =EOF:,A CHECK FOR END OF FILE 01F0 111E 01CF 1498 JEQ A,COPY9J EOF GO DO NORMAL TTUFF 01F1 FE94 0206 1499 JSK RFL RELEASE FILE LOGICAL UNITS 01F2 9E8D 0200 1500 JMP COPY22 GO CLOSSE OUPUT FILE 000001F3 1501 COPY17 EQU $ 01F3 0900 1502 COPY =INIOB,A 01F4 FEA9 021E 1503 JSK SIOERR I/O ERROR 01F5 9E89 01FF 1504 JMP COPY20 000001F6 1506 COPY18 EQU $ 01F6 0931 1507 COPY:M =FU:%4+CL:,A,INFC(Y) 01F7 8443 0003 1507+ 01F8 1A07 1508 <  I:IO INIOB(Y) CLOSE INPUT FILE 01F9 1000 0000 1508+ 01FA 9E85 0200 1509 JMP COPY22 ERROR  000001FB 1510 COPY19 EQU $ 01FB FE8A 0206 1511 JSK RFL RELEASE FILE LOGICAL UNITS 01FC 0908 1512 COPY =OUTIOB,A 01FD FEA0 021E 1513 JSK SIOERR I/O ERROR 01FE 9E80 01FF  1514 JMP COPY20 000001FF 1516 COPY20 EQU $ 01FF 9E4B 01CB 1517 JMP COPY10 00000200 1519 COPY22 EQU $ 0200 0931 1520 COPY:M =FU:%4+CL:,A,OUTFC(Y) 0201 844B 000B 1520+ 1PAGE 0079 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:12.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0202 1A07 1521 I:IO OUTIOB(Y) CLOSE OUTPUT FILE 0203 1008 0008 1521+ 0204 0000 1522 NOP 0205 9E6D 01F3 1523 JMP COPY17 00000206 1525 RFL  EQU $ RELEASE FILES 0206 8040 0000 1526 COPY INLUN(Y),A 0207 FE8F 0217 1527 JSK  RFLU RELEASE FINPUT FILE LU 0208 8048 0008 1528 COPY OUTLUN(Y),A 0209 FE8D 0217 1529 JSK RFLU RELEASE OUTPUT FILE LU 020A 2309 1530 RSK 0003 1531 LPOOL 020B 020C 020D 020E 0000 1532 IOB:A PROMPT,0,WR:,WP:,1,PCHAR,0 020F 0000 1532+ 0210 0000 1532+ 0211 0011 1532+ 0212 0001 1532+ 0213 0216 1532+ 0214 0000 1532+ 0215 0000 1532+ 0216 3E20 1533 PCHAR BYTE '>' 1PAGE 0080 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:13.50 SI = DH00.SFMDEMO  .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 00000217 1535 RFLU EQU $ RELEASE FILE LU 0217 FF3E 01D6 1536 JSK SLU FIND FCB 0218 A081 0001 1537 COPY 1(X),X FCB ADDR 0219 C081 0001 1538 COPY FC:FLG(X),Q CHECK IF FCB 021A 5342 021D 1539 JGE Q,RFL10  NOT FCB 021B 3A01 1540 R:SIG FILESM SIGNAL FILE LU SEMAPHORE 021C 0018 1540+ 021D 2309  1541 RFL10 RSK 0000021E 1543 SIOERR EQU $ SEMAPHORE ENTRY 021E 4309 1544 PUSH :40 SAVE IOB DISP IN A 021F 0040 0220 3A02 1545 R:WAIT BUFSM 0221 0019  1545+ 0222 6309 1546 POP 00000223 1547 IOERR EQU $ I/O ERROR MESSAGE ROUTINE 0223 2000 1548 COPY A,X 0224 2062 1549 ADD Y,X IOB ADDR 0225 C080 0000 1550 COPY:M IO:LUN(X),Q,ERR11B LU INTO MESSAGE 0226 C78B 0232 1550+ 0227 8087 0007 1551 COPY IO:ST(X),A STATUS 0228 4900 1552 COPY:M =0,Q,BP START OF IBUF 0229 C729 01D3 1552+ 022A FF29 01D4 1553  JSK HAD CONVERT CODE TO ASCII 022B A229 01D5 1554 COPY =IBUF,X MOVE CODE TO MESSAGE 022C 0902 1555 COPY =2,A 4 CHARS 022D C285 0233 1556 COPY =ERR11A,Q 1PAGE 0081 = MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:15.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 022E FF21 01D0 1557 JSK MOV 022F BF27 01D7 1558 JST MSG 0230 030D 1559  WORD ERR11 I/O ERROR 0231 2309 1560 RSK 0002 1561 LPOOL 0232 0318 ERR11B 0233 0314 ERR11A 0234 0006 1563 MES0 LNM MES1 0235 494F 1564 BYTE 'IODEMO' 0236 4445 0237 4D4F 0238 001C 1565 MES1 LNM MES2 0239 4649 1566 BYTE 'FILE ' 023A 4C45 023B 2020 023C 2020 1567 MES1A BYTE ' ' 023D 2020 023E 2020 023F 2020 0240 2020 0241 2020 0242 2020 0243 2043 1568 BYTE ' CREATED' 0244 5245 0245 4154 0246 4544 1PAGE 0082 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:15.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0247 001C 1569 MES2 LNM MES3 0248 4649 1570 BYTE 'FILE ' 0249 4C45 024A 2020 024B 2020  1571 MES2A BYTE ' ' 024C 2020 024D 2020 024E 2020 024F 2020 0250 2020 0251 2020 0252 2044 1572 BYTE ' DELETED' 0253 454C 0254 4554 0255 4544 0256 0024 1573 MES3 LNM MES4 0257 4649  1574 BYTE 'FILE ' 0258 4C45 0259 2020 025A 2020 1575 MES3A BYTE ' ' 025B 2020 025C 2020 025D 2020 025E 2020 025F 2020 0260 2020 0261 2041 1576 BYTE ' ASSIGNED TO ' 0262 5353 0263 4947 0264 4E45 0265 4420 0266 544F 0267 2020 0268 2020 1577 MES3B BYTE ' ' 0269 002A 1578 MES4 LNM MES5 1PAGE 0083 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:16.00 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO  .OBJ LI = DH00.SFMDEMO .LST 026A 4649 1579 BYTE 'FILE ' 026B 4C45 026C 2020 026D 2020 1580 MES4A BYTE ' ' 026E 2020 026F 2020 0270 2020 0271 2020 0272 2020 0273 2020 0274 203A 1581  BYTE ' :' 0275 2020 1582 MES4B BYTE ' ' 0276 2020 0277 2052 1583 BYTE ' RECORDS COPIED' 0278 4543 0279 4F52 027A 4453 027B 2043 027C 4F50 027D 4945 027E 4420 027F 000E 1584 MES5 LNM  MES6 0280 4455 1585 BYTE 'DUMP COMPLETE' 0281 4D50 0282 2043 0283 4F4D 0284 504C 0285 4554 0286 4520 0287 000C 1586 MES6 LNM MES7 0288 5345 1587 BYTE 'SECTOR ' 0289 4354 028A 4F52 028B 2020 028C 2020 1588 MES6A BYTE ' ' 1PAGE 0084 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:16.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 028D 2020 028E 000E 1589 MES7 LNM  MES8 028F 5649 1590 BYTE 'VIEW COMPLETE' 0290 4557 0291 2043 0292 4F4D 0293 504C 0294 4554 0295 4520 0296 0016 1591 MES8 LNM MES9 0297 4449 1592 BYTE 'DIRECTORY INITIALIZED' 0298 5245 0299 4354 029A 4F52 029B 5920 029C 494E 029D 4954 029E 4941 029F 4C49 02A0 5A45 02A1 4420 02A2 000E 1593 MES9 >  LNM MES10 02A3 4D4F 1594 BYTE 'MOUNT COMPLETE' 02A4 554E 02A5 5420 02A6 434F 02A7 4D50 02A8 4C45 02A9 5445 000002AA 1595 MES10 EQU $ 02AA 000C 1596 ERR1 LNM ERR2 02AB 5359 1597  BYTE 'SYNTAX ERROR' 02AC 4E54 02AD 4158 02AE 2045 1PAGE 0085 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:17.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 02AF 5252 02B0 4F52 02B1 0010 1598 ERR2 LNM ERR3 02B2 494E 1599 BYTE 'INVALID COMMAND' 02B3 5641 02B4 4C49 02B5 4420 02B6 434F 02B7 4D4D 02B8 414E 02B9 4420 02BA 0000 1600 ERR3 LNM ERR4 02BB 0012 1601 ERR4 LNM ERR5  02BC 494E 1602 BYTE 'INVALID UNIT NAME' 02BD 5641 02BE 4C49 02BF 4420 02C0 554E 02C1 4954 02C2 204E 02C3 414D 02C4 4520 02C5 000C 1603 ERR5 LNM ERR6 02C6 494E 1604 BYTE 'INVALID MODE' 02C7 5641 02C8 4C49 02C9 4420 02CA 4D4F 02CB 4445 02CC 0016 1605 ERR6 LNM ERR7 02CD 494E 1606 BYTE 'INVALID DECIMAL NUMBER' 02CE 5641 02CF 4C49 02D0 4420 02D1 4445 1PAGE 0086 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:17.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 02D2 4349 02D3 4D41 02D4 4C20 02D5 4E55 02D6 4D42 02D7 4552 02D8 000E 1607 ERR7 LNM ERR8 02D9 554E 1608 BYTE  'UNIT NOT FOUND' 02DA 4954 02DB 204E 02DC 4F54 02DD 2046 02DE 4F55 02DF 4E44 02E0 0012 1609 ERR8 LNM ERR9 02E1 494E 1610 BYTE 'INVALID FILE NAME' 02E2 5641 02E3 4C49 02E4 4420 02E5 4649 02E6 4C45 02E7 204E 02E8 414D 02E9 4520 02EA 0024 1611 ERR9 LNM ERR10 02EB 4649 1612 BYTE 'FILE ' 02EC 4C45 02ED 2020 02EE 2020 1613 ERR9A BYTE ' ' 02EF 2020 02F0 2020 02F1 2020 02F2 2020 02F3 2020 02F4 2020 1PAGE 0087 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:18.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 02F5 2041 1614 BYTE ' ALREADY EXISTS' 02F6 4C52 02F7 4541 02F8 4459 02F9 2045 02FA 5849 02FB 5354 02FC 5320 02FD 001E 1615 ERR10 LNM ERR11 02FE 4649 1616 BYTE  'FILE ' 02FF 4C45 0300 2020 00000301 1617 ERR10A EQU $ 0301 2020 1618 BYTE '  ' 0302 2020 0303 2020 0304 2020 0305 2020 0306 2020 0307 2020 0308 204E 1619 BYTE ' NOT FOUND' 0309 4F54 030A 2046 030B 4F55 030C 4E44 030D 0022 1620 ERR11 LNM ERR12 030E 492F 1621 BYTE  'I/O ERROR' 030F 4F20 0310 4552 0311 524F 0312 5220 0313 2020 1622 BYTE ' ' 0314 2020 1623 ERR11A BYTE ' ' 0315 2020 0316 204F 1624 BYTE ' ON ' 1PAGE 0088 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:18.75 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 0317 4E20 0318 2020 1625 ERR11B BYTE ' ' 0319 2020 031A 2020 031B 2020 031C 2020 031D 2020 031E 2020 031F 0020 ?  1626 ERR12 LNM ERR14 0320 4E45 1627 BYTE 'NEITHER UNIT OR VOLUME SPECIFIED' 0321 4954 0322 4845 0323 5220 0324 554E 0325 4954 0326 204F 0327 5220 0328 564F 0329 4C55 032A 4D45 032B 2053 032C 5045 032D 4349 032E 4649 032F 4544 0330 000E 1628 ERR14 LNM ERR15 0331 4649 1629 BYTE 'FILE LU ERROR' 0332 4C45 0333 204C 0334 5520 0335 4552 0336 524F 0337 5220 00000338 1630 ERR15 EQU $ 0000 1631  LPOOL 1PAGE 0089 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:19.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 1632 END 0000 ERRORS (0000) 0000 WARNINGS (0000) 1PAGE 0090 MACRO (E100) 1980/06/06 12:18:19.50 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST **** GRAND-TOTALS **** 0000 ERRORS (0000) 0000 WARNINGS (0000) 30 ERR15 EQU $ 0000 1631  LPOOL 1PAGE 0089 MACRO (E100) IOS4 DEMO PROGRAM 1980/06/06 12:18:19.25 SI = DH00.SFMDEMO .ASM SO = DH00.SFMDEMO .OBJ LI = DH00.SFMDEMO .LST 1632 END 0000 ERRORS (0000) 0000 WARNINGS (0000) 1/ RTXDEMO:ANL --- ASSEMBLE & LINK RTXDEMO (93411-70-E100) / ALL SOURCE FILES ASSUMED TO BE ON UF /  CREATES OBJECT & LISTING ON UF / CREATES ERROR LISTING ON SL / CREATES BINARY & MAP ON UF / /MACRO RTXDEMO(D=GEN+RTX,L=) / /PAUSE --- PROCEED TO LINK? / /AS X4 LO /AS LO RTXDEMO.MAP /LINK RTXDEMO(RL=100)+RTX /AS LO X4 / /CO OC=RTXDEMO.MAP(FL) 8202051601158202051601158202051601151PAGE 0001 MULTI-TASKING LINKER (E7) 1980/06/06 12:18:32 FILE USAGE SUMMARY DH.SFMDEMO.BIN=DH.SFMDEMO.OBJ(RELOCATABLE=100)+ DH.SFM.LIB+ NOTE: *** SFM.LIB - REV E400 *** DH.IOS.LIB+ NOTE: *** IOS.LIB - REV E400 *** DH.RTX.LIB NOTE: *** RTX.LIB - REV E400 *** NOTE: *** DEBUGS.OBJ - REV E400 *** 1PAGE 0002 MULTI-TASKING LINKER (E7,E4,E5,E3,--,E2,E0) 1980/06/06 12:24:16 ALL SYMBOLS THE TRANSFER ADDRESS IS 3592(DEBUG:) ABSOLUTE SYMBOLS 0005-BUF:N 0068-R:CNSM 006D-R:PFK 0070-R:CDRG 0072-R:MPM1 0078-R:RTCI 007F-R:FAT1 001E-R:HLF 006A-R:WLKS 006E-R:SREG 0071-R:BTC1 0073-R:MPM2 007E-R:FATL 0080-RTX: 0066-R:CNTK 006C-R:PFLG 006F-R:SNSW MEMORY RELOCATABLE 0100-R:LOW 3CF8-R:HIGH SEGMENT SFMDEMO: (0100 - 093E) RELOCATABLE - RAM, SHAREABLE 0100-G:A 019E-INXTPP 01A4-NAME 0607-G:B 085D-MES3 08B8-ERR2 08F1-ERR9 013C-DIRPL 019E-LUNPP 01B2-VOLUME 0607-MOV 0870-MES4 08C1-ERR3 08F5-ERR9A 013E-DIRPUN 019F-SEXTPP 01C5-IODEMO 0636-SLU 0886-MES5 08C2-ERR4 0904-ERR10 0140-DIRLUN 01A0-RLNPP 0454-HAD 082A-IOERR 088E-MES6 08CC-ERR5 0908-ERR10A 0159-BP 01A1-OPCODE 055B-MSG 083B-MES0 0893-MES6A 08D3-ERR6 0914-ERR11 015A-IBUF 01A2-LUNF 05AB-RDIOB 083F-MES1 08A9-MES9 08DF-ERR7 0926-ERR12 019C-UNIT @  01A3-LUNT 05AE-RDFC 084E-MES2 08B1-ERR1 08E7-ERR8 0937-ERR14 SEGMENT TABLE: (093F - 16F7) RELOCATABLE - RAM, SHAREABLE 0940-UAT:S 1342-IDI:A 1378-I:KWDT 13CC-TYELI: 14FF-D:DF01 164A-SNITZ 169E-R:MPBLKS 0974-FILESM 134E-COP:A 137F-I:WDAC 13CE-TYBUF: 1527-D:DF00 164C-R:HALT 169F-R:LSTK 0EC6-R:INIT 135A-R:BFLN 138B-I:ERTB 13D1-D:LP00 154F-C:DF0 166C-R:WLAC 16DF-R:FPCNT 12D1-TDB 135B-BUF:S1 1390-I:ERS1 13F6-C:LP0 1578-D:DM01 1678-R:LTIC 16DF-R:KSTK 12DD-ECB 135C-BUF:S2 1391-I:ERS2 140F-D:CR00 15A0-D:DM00 1688-R:KTIC 16E0-R:FPMAX 1310-BUFSM 135D-BUF:CT 1392-I:ERS3 1476-C:CR0 15C8-C:DM0 168F-R:TKAC 16E1-R:RTXEX 1312-CRE:A 135E-B:HEAD 1393-D:TY00 148F-D:PP00 15F1-D:DH00 169B-RDC:S4 16E1-R:XPTE 131E-DEL:A 135F-B:HEDS 13AF-C:TY0 14AF-C:PP0 1619-C:DH0 169C-R:MPCNT 16E5-R:TABL 132A-ASS:A 1366-I:DOGY 13C7-TYEOL: 14C8-D:PR00 1642-C:HEAD 169D-R:MPMAX 16EA-R:SYSX 1336-VIE:A 1368-I:LWDT 13C9-TYTOF: 14E6-C:PR0 1PAGE 0003 MULTI-TASKING LINKER (E7,E4,E5,E3,--,E2,E0) 1980/06/06 12:24:31 ALL SYMBOLS SEGMENT SFM: (16F8 - 2475) RELOCATABLE - ROM, SHAREABLE 16F8-F:CREA 1994-F:DFNO 1FA0-F:CEOB 20A3-F:LEGR 2135-F:RMOV 228A-F:INB 2395-F:RDW 1762-F:DELE 199C-F:FOP 1FA4-F:CEO3 20B2-F:RAMV 213A-F:WMOV 2292-F:INFO 239D-F:RBD 17DE-F:CONN 19AE-F:GFCB 1FA7-F:CEOF 20B9-F:RLWP 218B-F:AGTW 2298-F:RDIB 23A0-F:IRBD 181E-F:CFNO 19B5-F:GNE 1FB7-F:CPAU 20BF-F:RXFR 21B0-F:AULS 229E-F:SLUS 23AF-F:DBF 183E-F:DMNT 19E1-F:RLU 1FC9-F:DALC 20CE-F:SCR 21CC-F:BAX 22A3-F:RTAU 23CA-F:GLST  183E-F:DMOUNT 1A38-F:SFC 205A-F:EOFR 20E4-F:SFD 21D0-F:CFEN 22A7-F:RTFN 23CF-F:GSEC 18CF-F:MONT 1A43-F:SND  2068-F:ERQ 20F0-F:TRUN 21DC-F:CRAU 22C5-F:SFAU 240D-F:AQB 18E7-F:MOUNT 1A82-F:SVU 2070-F:EXTD 20FC-F:UPWP 21E8-F:GCB 2350-F:GBF 2435-F:RDS 1944-F:CKMT 1ADD-FM:SFM 207A-F:FAUS 2109-F:UWFP 21EF-F:GDIB 2357-F:GBS 2437-F:WRS 194D-F:INITS 1EB2-F:ADEX 208F-F:FCHK 2112-F:UWRQ 21F3-F:GLUS 2366-F:RBW 2466-F:CBA 1961-F:EXITS 1F58-F:BLNK 2096-F:GTFP 2116-F:WTWP 21F8-F:GTAU 236E-F:RBF 246C-F:RLST 1967-F:ADE 1F72-F:BLOCK 209B-F:GTWP 211C-F:WXFR 2260-F:GTFN 2371-F:IRBF SEGMENT IOS: (2476 - 2E6F) RELOCATABLE - ROM, SHAREABLE 2476-I:IO 2575-I:FINI  25EE-PP:WRT 2A8C-CR:RD 2C98-DK:WRT 2D9D-I:URC 2E10-I:STAT 24F0-F:SLU 2589-I:NEOB 25EE-TY:WRT 2B15-CR:WRT 2D32-DK:FUN 2DA6-I:DEOF 2E1E-I:RST 24F0-I:SLU 2595-I:POWR 271B-PR:RD 2B17-CR:FUN 2D43-I:DCAL 2DBD-I:TRLL 2E24-I:EMEM 2508-I:DOIO 25A2-I:WDT 271B-TY:RD 2B24-I:TRLT 2D5D-I:DKIO 2DC4-I:TRTB 2E35-I:EOB 2524-I:RET 25D3-I:INIT 289B-LP:FUN 2B57-CR:TAB 2D68-I:SRTC 2DDE-I:DIO 2E39-I:ECTT 252E-I:STUP 25ED-I:ABRT 289B-PP:FUN 2BD0-DF:RD 2D73-I:DKIC 2DDF-I:SDIO 2E48-I:VCNT 2531-I:STU0 25ED-I:DOER 289B-TY:FUN 2BD0-DF:WRT 2D79-I:RATE 2DE9-I:SIV 2E4D-I:OPEN 2553-I:STUR 25ED-I:DOSV 2980-FBR: 2C88-DF:FUN 2D83-I:HARD 2E07-I:RPF 2E56-I:OPCL 2567-A I:WAIT 25EE-LP:WRT 2A07-FBW: 2C98-DK:RD 2D93-I:USEC 2E0C-I:COMP 2E6B-I:QWAIT SEGMENT RTX: (2E70 - 3591) RELOCATABLE - ROM, SHAREABLE 2E70-R:PATCH 3005-R:RIWAL 3234-R:ISIG 329D-R:CINT 3350-R:DISP 343B-R:AETH 349E-R:DOOREX 2E84-R:BGIN 3064-R:WCP 3234-R:SIG 32B7-R:CNSL 338A-R:SACT 3442-R:CNTH 34C4-R:DCHK 2EE3-R:BGINI 3065-R:SATD 323D-R:SSIG 32C7-R:GETM 3390-R:IACB 3449-R:USTH 34D9-R:NOPF 2EF7-R:BGIN2 30DD-R:GATD 3254-R:IWAI 32FC-R:EMPI  33BA-R:STRT 3450-R:UMTH 3531-R:IDOR 2F62-R:END 315F-R:ITIC 3254-R:WAIT 330E-R:GIVM 33CB-R:INI1 3457-R:UITH  355F-R:EX 2FA3-R:PRID 31B8-R:TICI 325C-R:SWAI 3318-R:GIVMX 33EA-R:PWRF 3459-R:UIRTN 3560-R:ODOR 2FAF-R:IWAL 31BE-R:TICP 3282-R:GPRI 3345-R:RE12 340B-R:GTS 346C-R:USTREX 3564-R:DBUG 2FD4-R:WALP 31E3-R:CTIC 3286-R:GPR 3348-R:DAQX 341B-R:GVST 3481-R:SETH 356D-R:SERB 2FED-R:WALEX 321E-R:MTIC 3289-R:SPRI 334C-R:DA 342B-R:GVSH 349C-R:STR0EX 3591-R:SERL 1PAGE 0004 MULTI-TASKING LINKER (E7,E4,E5,E3,--,E2,E0) 1980/06/06 12:24:45  ALL SYMBOLS SEGMENT DEBUG: (3592 - 3CDC) RELOCATABLE - RAM, SHAREABLE 3592-DEBUG4 39EA-DBG4:CNT 39FC-DBG4:LP SEGMENT DUMMY: (3CDD - 3CF8) RELOCATABLE - ROM, SHAREABLE 3CDD-R:TMPL 3CE4-R:UINI 3CEA-R:RECV 3CED-R:RBUF 3CF0-R:AWAL 3CF3-I:OVL 3CF6-R:RFB 3CDE-R:TSIZE 3CE6-R:EMLTR 3CEB-R:PAUS 3CEE-R:STOD 3CF1-R:CWAL 3CF4-I:LD410S 3CF7-R:DUMMY 3CE2-R:RINT 3CE9-R:SEND 3CEC-R:ABUF 3CEF-R:GTOD 3CF2-I:LOAD 3CF5-R:AFB SEGMENT BLANK (3CF9) RELOCATABLE - RAM 3CF9-FM:SVC C H A I N S DH: 15F1(TABLE:) Z:DH00 0000(0SEGMENT) Z:DM00 0000(0SEGMENT) DM:  15A0(TABLE:) Z:DM01 0000(0SEGMENT) Z:DF00 0000(0SEGMENT) DF: 1527(TABLE:) Z:DF01 0000(0SEGMENT) PR: 14C8(TABLE:) PP: 148F(TABLE:) CR: 140F(TABLE:) LP0: 13D1(TABLE:) CIB: 1619(TABLE:) TY: 1393(TABLE:) R:SL 1648(TABLE:) BUF: 0DB6(TABLE:) BUF:: 0DB7(TABLE:) R:TDBL 134E(TABLE:) R:ECBL 12DD(TABLE:) R:MBXL 0000(0SEGMENT) MISSING: SRF:ER NO WARNINGS I N S DH: 15F1(TABLE:) Z:DH00 0000(0SEGMENT) Z:DM00 0000(0SEGMENT) DM:  TITL SFM IOS DEMO PROGRAM - SFMDEMO - 93440-10-E400 SHARABLE SFMDEMO: SFMDEMO: REL SPACE 3 * LENGTH OF MESSAGE MACRO LNM WORD #1-$-1*2 ENDM SPACE 3 CI EQU 'CI' LO EQU 'LO' LIST OUTPUT SL EQU 'SL' SYSTEM LOG SPACE 3 * Y SCRATCHPAD INLUN EQU 0 INPUT IOB INIOB EQU 0 INCRI EQU 2 INFC EQU 3 INBCT EQU 4 INBUF EQU 5 INACT EQU 6 INST EQU 7 OUTLUN EQU 8 OUTPUT IOB OUTIOB EQU 8 OUTCRI EQU 10 OUTFC EQU 11 OUTBCT EQU 12 OUTBUF EQU 13 OUTACT EQU 14 OUTST EQU 15 SPACE 3 INFP EQU 16 INPUT FILE POINTER OUTFP EQU 18 OUTPUT FILE POINTER SPACE 3 NAMPTR EQU 20 VOLPTR EQU 21 PUN EQU 22 FNO EQU NAMPTR+FNO: LUN EQU NAMPTR+LUN: MOD EQU LUN INXT EQU NAMPTR+INXT: SEXT EQU NAMPTR+SEXT: RECLN EQU NAMPTR+RLN: NAM EQU RECLN+1 VOL EQU NAM+7 ENDY B EQU VOL+7 IBUFF EQU ENDY+1 INPUT BUFFER ENDB EQU IBUFF+256 END OF Y-SPAD FOR COPY SAVE LOAD DEBUG4 LOAD FM:SVC END TITL IOS4 DEMO PROGRAM SHARABLE SFMDEMO: SFMDEMO: REL NAM G:A NAM IODEMO NAM R:INIT NAM BUF:N NAM UAT:S NAM DIRPL NAM OPCODE  NAM UNIT,DIRPUN,DIRLUN NAM LUNPP NAM INXTPP,SEXTPP,RLNPP NAM NAME,VOLUME NAM LUNF,LUNT NAM HAD,IBUF,BP NAM MSG,BUFSM NAM FILESM NAM RDIOB NAM RDFC EXTR MES0,MES1,MES2,MES3,MES4 EXTR CRE:A,DEL:A,ASS:A,COP:A,VIE:A,IDI:A EXTR MOV EXTR MES5 EXTR MES6 EXTR MES6A EXTR MES9 EXTR ERR1,ERR2,ERR3,ERR4,ERR5,ERR6,ERR7,ERR8,ERR9,ERR10 EXTR ERR10A,ERR9A EXTR ERR11,ERR12 EXTR ERR14 EXTR IOERR EXTR SLU EXTR DEBUG4 SPACE 6 G:A EQU $ UAT:AA UAT:S UAT:EE 'TY',D:TY00 UAT:EE 'CR',D:CR00 UAT:EE 'LP',D:LP00 UAT:EE 'PR',D:PR00 UAT:EE 'PP',D:PP00 UAT:EE 'CI',D:TY00 UAT:EE 'LO',D:TY00 UAT:EE 'SL',D:TY00 UAT:EE 1,D:DF00 DISKS UAT:EE 2,D:DF01 UAT:EE 3,D:DM00 UAT:EE 4,D:DM01 UAT:EE 5,D:DH00 UAT:EE 'DR',0 DIRECTORY LUN DUMPLU EQU $ DUMPUT EQU $+1 DUMP UNIT UAT:EE 'DU',0 FILELU EQU $  START OF FILE LU'S FOR COPY UAT:EE 'F1',0 FILE LUNS FOR COPY UAT:EE 'F2',0 FILE LUNS FOR COPY  UAT:EE 'F3',0 UAT:EE 'F4',0 UAT:EE 'F5',0 UAT:EE 'F6',0 UAT:EE 'F7',0 UAT:EE 'F8',0 NFILE EQU $-FILELU/2 NUMBER OF LOGICAL UNITS FOR FILES UAT:ZZ SPACE 9 SDB:A FILESM,NFILE SEMAPHORE FOR FILE LU'S BUF:R 5 SPACE 3 INIT:A 0,0,0,0,ECB,TDB,:1000,:400 TDB:A TDB,IODEMO,0,0,:100,0,1  ECB:A ECB,UAT:S SPACE 60 CMDLN EQU 6 CMDTBL EQU $ WORD CMDLN+1/2 WORD LENGTH OF A COMMAND BYTE 'ASSIGN' WORD ASSIGN BYTE 'COPY ' WORD COPY BYTE 'CREATE' WORD CREATE BYTE 'DELETE' WORD DELETE BYTE  'DUMP ' WORD DUMP BYTE 'EXTEND' WORD EXTEND BYTE 'IDIR ' WORD IDIR BYTE 'MOUNT ' WORD MOUNT BYTE 'VIEW ' WORD VIEW BYTE 'DEBUG ' WORD DEBUG4 WORD 0 SPACE 9 MODTBL EQU $ COPY MODIFIER TABLE WORD 1 1 WORD PER ENTRY BYTE 'FA' WORD FA: BYTE 'FB' WORD FB: BYTE 'FS' WORD FS: BYTE 'UF'  WORD UF: WORD 0 SPACE 9 HEXTAB EQU $ HEX ASCII TABVLE BYTE '0123456789' BYTE 'ABCDEF' DIRPL WORD ROOT PL TO CONNECT ROOT TO 'DR' WORD 0 VOL NOT SPECIFIED DIRPUN RES 1,0 DIB ADDR WORD 0 FNO DIRLUN WORD 'DR' LUN TO CONNECT TO ROOT BYTE '. ' NAME OF ROOT SPACE 6 T1 RES 1,0 TEMP T2 RES 1,0 TEMP T3 RES 1,0 TEMP TC RES 1,0  ISM DELIMETER NC RES 1,0 ISM COUNT INPUT DV RES 1,0 DECIMAL VALUE DF RES 1,0 C  DECIMAL FLAG HF RES 1,0 HEX FLAG HV RES 1,0 HEX VALUE COPEXT RES 1,0  COPY OR EXTEND FLAG, 0 FOR COPY 1 FOR EX SBUF RES 7,0 SYMBOL BUFFERR BP RES 1,0 BUFFER POINTER IBUF  RES 64,0 CI INPUT BUFFER SPACE 3 NAMPP RES 1,0 NAME POINTER VOLPP RES 1,0  VOLUME NAME POINTER UNIT RES 1,0 RES 1,0 FOR FNO LUNPP EQU $ INXTPP RES 1,0 INIT EXTENT SEXTPP RES  1,0 SECONDARY EXTENT RLNPP RES 1,0 RECORD LENGTH OPCODE RES 1,0 LUNF RES 1,0 FROM LOGICAL UNIT LUNT RES 1,0 TO LOGICAL UNIT NAME RES 7,0 FILE NAME NAME1 RES 7,0  TO FILE NAME VOLUME RES 7,0 VOLUME NAME SPACE 3 SDB:A BUFSM,0 COMMAND INPUT BUFFER SEMAPHORE SPACE 9 * BEGIN PL'S CREPL WORD CRE:A WORD :1000 DELPL WORD DEL:A WORD :1000 ASSPL WORD ASS:A WORD :1000 COPYPL WORD COP:A WORD :1000 VIEWPL WORD VIE:A WORD :1000 IDIRPL WORD IDI:A WORD :1000 SPACE 6 IODEMO EQU $ COPY =D:TY00,X COPY DI:FLG(X),A RBIT DIF:FC,A COPY A,DI:FLG(X) SET FOR NO FORM CONTROL COPY DI:ELI(X),X IMS 0(X) IOD1 JST MSG ANNOUNCE 'IODEMO' WORD MES0 JST READ GET COMMAND WORD 80 WORD IBUF COPY:M =0,A,BP RESET BUFFER POINTER COPY A,COPEXT TESET COPY EXTEND FLAG SPACE 3 JSK ISM GET COMMAND JSK COMMA CHECK FOR COMMA JNE A,IOD1 SYNTAX ERROR JST LOOKUP SEARCH FOR COMMAND WORD CMDTBL JEQ A,IOD3 GOT IT JST  MSG INVALID COMMAND WORD ERR2 JMP IOD1 TRY AGAIN SPACE 3 IOD3 EQU $ JSK 0(X) GO PROCESS COMMAND R:CINT WHIFON CONSOL INTERUPT R:WAIT BUFSM WAIT UNTIL COMMAND IS THROUGH WITH BUFFER JMP IODEMO START AGAIN LPOOL SPACE 9 CREATE EQU $  JSK GNVU GET NAME VOL & UNIT JNE A,CRE14 BAD UNIT JNE A,CRE14 ERROR JSK CNVU CHECK NAME VOL & UNIT JSK ISM GET INITIAL EXTENT COPY DF,A JNE A,CRE12 INVALID DECIMAL NUMBER COPY:M DV,A,INXTPP SPACE 3 JSK ISM GET SECONDARY EXTENT COPY DF,A JNE A,CRE12 INVALID DECIMAL NUMBER COPY:M DV,A,SEXTPP SPACE 3  JSK ISM GET RECORD LENGTH COPY DF,A JNE A,CRE12 INVALID DECIMAL NUMBER  COPY:M DV,A,RLNPP R:BGIN CREPL START ACTIVITY CRE10 EQU $ RSK SPACE 3 CRE12 JST MSG BAD NUMBER WORD ERR6 CRE14 EQU $ R:SIG BUFSM RELESASE BUFFER JMP CRE10 LPOOL SPACE 60 DELETE EQU $ JSK GNVU GET NAME,VOL,& UNIT JNE A,DEL12 BAD UNIT JSK CNVU CHECK NAME, VOL, & UNIT JNE A,DEL12 ERROR R:BGIN DELPL START D ACTIVITY DEL10 RSK SPACE 3 DEL12 R:SIG BUFSM RELEASE BUFFER JMP DEL10 SPACE 60 ASSIGN EQU $ JSK GNVU GET NAME,VOL,UNIT JNE A,ASS12 BAD UNIT COPY:M BP,A,T1  JSK ISM GET LUN COPY NC,A CLSN A,=2 JMP ASS3 GOOD JST MSG  WORD ERR1 SYNTAX ERROR JMP ASS12 SPACE 3 ASS3 EQU $ COPY:M SBUF,A,LUNPP LUN  R:BGIN ASSPL START ACTIVITY ASS10 RSK SPACE 3 ASS12 R:SIG BUFSM RELEASE BUFFER JMP  ASS10 SPACE 60 VIEW EQU $ JSK GPUN GET UNIT JNE A,VIE12 BAD UNIT R:BGIN VIEWPL START ACTIVITY VIE10 EQU $ RSK SPACE 3 VIE12 R:SIG BUFSM RELEASE BUFFER  JMP VIE10 LPOOL SPACE 60 EXTEND EQU $ EXTEND FILE IMS COPEXT SET FLAG TO EXTEND JMP COPY GO USE COPY LOGIC SPACE 9 IOB:A COPIOB,0,FU:,OP:,0,0,COPFP COPFP RES 2,0 SPACE 6 COP12J JMP COP12 COP16J JMP COP16 COP22J JMP COP22 LPOOL SPACE 3 COPY EQU  $ JSK ISM GET MODE JST LOOKUP LOOK IT UP WORD MODTBL JNE A,COP12J  BAD COPY X,OPCODE JSK GFL GET FROM FILE JNE A,COP16J BAD FILE NAME COPY:M LUNPP,A,LUNF FROM LU FOR DEVICE COPY T1,A CHECK FOR FILE NAME COPY A,NAME SET IN CASE OF DEVICE JEQ A,COP3 JUST DEVICE SPACE 3 COPY =NAME,Q MOVE FILE NAME HERE  COPY =7,A COPY =SBUF,X JSK MOV SPACE 3 JSK GFLU GET AN LU FOR THE FILE  JNE A,COP14 ERROR COPY X,LUNF LU GOTTEN COPY X,LUNPP SET UP TO CONNECT IT  COPY =NAME,A COP3 COPY A,NAMPP F:CONN NAMPP JEQ A,COP22J FILE DOESN'T EXIST SPACE 6  COPY:M LUNF,A,COPIOB+IO:LUN I:IO COPIOB OPEN FROM FILE JMP COP18 ERROR COPY  COPIOB+IO:ACT,A RECORD LENGTH IF FILE JNE A,COP3A RLN NOT UNDEFINED COPY =512,A ASSUME THIS FOR UNDEFINED COP3A EQU $ COPY NAMPP,Q JNE Q,COP4 FILE, SO ALL SET COPY UNIT,X  DIB COPY =512,A MAX RECORD LENGTH FOR COPY CSK A,DI:CPL(X) TRUNCATE TO LINE LENGTH JMP $+2 O.K. COPY DI:CPL(X),A TRUNCATE COP4 COPY A,RLNPP RECORD LENGTH SPACE 3  JSK GFL GET TO FILE JNE A,COP16 BAD FILE NAME COPY:M LUNPP,A,LUNT LU FOR DEVICE  COPY:M =0,A,NAMPP INIT COPY T1,A JEQ A,COP5 DEVICE ONLY SPACE 3 COPY =NAME1,Q MOVE FILE NAME HERE COPY =7,A COPY =SBUF,X JSK MOV JSK GFLU GET LU FOR IT JNE A,COP14 ERROR COPY X,LUNT TO LU COPY:M =NAME1,A,NAMPP SET UP TOCREATE IE T COPY COPEXT,Q JNE Q,COP4A EXTEND, SO FILE ALREADY EXISTS COPY:M =10,A,INXTPP INIT EXTENT  COPY:M =10,A,SEXTPP SECONDARY F:CREA NAMPP JLT A,COP18 I/O ERROR JEQ A,COP20  ALREADY EXISTS SPACE 3 COP4A EQU $ COPY:M LUNT,A,LUNPP SET UP FOR CONNECT COP5 EQU $ F:CONN NAMPP JLT A,COP18 I/O ERROR JEQ A,COP22 FILE DOESN'T EXIST R:BGIN COPYPL START ACTIVITY COP10 EQU $ RSK SPACE 3 COP12 EQU $ JST MSG BAD MODE WORD ERR5 COP14 EQU $ R:SIG BUFSM RELEASE BUFFER JMP COP10 SPACE 3 COP16 JST MSG BAD FILE NAME WORD ERR8 JMP COP14 SPACE 3 COP18 JST MSG I/O ERROR WORD ERR11 JMP COP14  SPACE 3 COP20 COPY =7,A COPY NAMPP,X ADDR OF FILE ANME COPY =ERR9A,Q JSK MOV  MOVE FILE NAME TO MESSAGE JST MSG FILE ALREADY E ISTS WORD ERR9 JMP COP14 SPACE 3 COP22 COPY =7,A COPY NAMPP,X ADDR OF FILE ANME COPY =ERR10A,Q JSK MOV MOVE FILE NAME TO MESSAGE JST MSG FILE DOSNT EXIST WORD ERR10 JMP COP14 SPACE 60 IDIR EQU $ JSK GPUN GET PUN JNE A,IDI12 BAD UNIT COPY UNIT,A JEQ A,IDI12  UNIT NOT SPECIFIED R:BGIN IDIRPL START ACTIVITY IDI10 EQU $ RSK SPACE 3 IDI12 R:SIG  BUFSM RELEASE BUFFER JMP IDI10 LPOOL SPACE 60 DUM12J JMP DUM12 DUM14J JMP DUM14  SPACE 3 DUMP EQU $ DUMP SECTORS JSK GPUN GET UNIT JNE A,DUM12J BAD UNIT JSK ISM GET SECTOR COPY HF,A JNE A,DUM14J DAB VALUE COPY:M HV,A,DUFP+1 SECTOR COPY TC,A SUB =',',A JNE A,DUM1 NO TO SECTOR JSK ISM GET LAST SECTOR COPY HF,A JNE A,DUM14J BA D VALUE DUM1 EQU $ COPY:M HV,A,T2 LAST SECTOR TO DO COPY UNIT,X COPY X,DUMPUT UNIT IN UAT COPY =BUF:LN,A DO A BUFFER AT A TIME  COPY A,DUIOB+IO:BCT EXCH:M DULO,MESIOB+IO:LUN SET UP OUTPUT LU FOR DUMP DUM1A EQU $ COPY UNIT,X  COPY T2,Q SEE IF LESS THAN ADD =1,Q ONE BUFFER TO DO LEFT SUB DUFP+1,Q SECTORS LEFT TOT DO SUB DI:SBF(X),Q JGE Q,DUM1B ATLEAST ONE BUFFER TO DO ADD DI:SBF(X),Q  COPY =0,A MUL DI:BPS(X),AQ BYTES LEFT TO DO COPY Q,DUIOB+IO:BCT SPACE 3 DUM1B EQU $  COPY:M =0,A,BP COPY DUFP+1,A SECTOR JSK HAD CONVERT TO ASCII COPY =IBUF,X  COPY =2,A COPY =MES6A,Q JSK MOV MOVE T MESSAGE JST MSG SECTOR NUMBER WORD MES6 I:IO DUIOB READ SECTOR JMP DUM16 I/O ERROR COPY:M =0,A,T1 BYF TE COUNTER FOR SECTOR DUM2 EQU $ COPY:M =0,A,BP START OF BUFFER COPY T1,A ADDR OF LINE IN SECTOR JSK HAD CONVERT WORD TO ASCII & PUT IN BUFFER JSK STB SPACE TO BUFFER  SPACE 3 DUM3 COPY =DUBUF,Y COPY T1,X COPY 0(Y,X),A WORD FROM SECTOR SPACE 3 DUM5 JSK  HAD CONVERT WORD TO ASCII & PUT IN BUFFER JSK STB SPACE TO BUFFER IMS T1  NEXT WORD COPY T1,A AND =7,A 8 WORDS,PER LINE JNE A,DUM3 NOT DONE WITH THIS LINE SPACE 3 COPY T1,A SUB =8,A BACK TO START OF LINE COPY A,T1 JSK STB SEPARATION IN FRONT OF ASCII JSK STB JSK STB JSK STB DUM6 COPY T1,X BUFFER POINTER COPY =DUBUF,Y COPY 0(Y,X),A WORD FROM BUFFER JSK ATB PUT WORD IN BUFFER IF ASCII IMS T1 NEXT WEORD COPY T1,A AND =7,A JNE A,DUM6 LINE NOT DONE  SPACE 3 JST MSG PRINT LINE WORD BP COPY T1,A ADD A,A BYTES DONE THIS SECTOR SUB DUIOB+IO:ACT,A JLT A,DUM2 SPACE 3 COPY T2,A SUB DUFP+1,A SEE IF DONE WITH SECTORS JGE A,DUM1A MORE SECTORS TO DO EXCH:M DULO,MESIOB+IO:LUN RESTORE LU FOR MSG DUM10 EQU $ JST MSG DUMP COMPLETE WORD MES5 R:SIG BUFSM RSK SPACE 3 DUM12 EQU $ JMP DUM10 SPACE 3 DUM14 EQU $ JMP DUM10 SPACE 3 DUM16 EQU $ EXCH:M DULO,MESIOB+IO:LUN RESTORE LU FOR MSG JSK IOERR JMP DUM10 LPOOL SPACE 9 IOB:A DUIOB,'DU',RE:,FA:,0,DUBUF,DUFP DULO WORD LO DUMP OUTPUT LU DUFP RES 2,0 DUBUF RES 256,0 SPACE 9 HAD EQU $ HEX TO ASCII TO DUMP BUFFER PUSH :40 COPY:M =-4,Q,T3 4 CHARS PER WORD COPY A,Q PUT WORD IN Q HAD2 EQU $ ROTATE Q,L,4 PUT NEXT DIGIT IN PLACE COPY Q,A AND =:F,A ISOLATE DIGIT COPY =HEXTAB,Y SBIT BY:,S XNX A COPY 0(Y),A CHAR RBIT BY:,S  JSK BTB BYTE TO BUFFER IMS T3 JMP HAD2 WORD NOT DONE POP RSK  SPACE 9 STB EQU $ SPACE TO BUFFER COPY =' ',A SEPARATE WORDS BTB EQU $ BYTE TO BUFFER ENTRY COPY BP,X COPY =IBUF,Y BUFFER ADDR SBIT BY:,S COPY A,0(Y,X) RBIT BY:,S  IMS BP RSK SPACE 9 ATB EQU $ CHECK WORD FOR ATCII & PUT IN BUFFER COPY A,Q AND =:FF,Q SHIFT A,RO,8 SPLIT BYTES IN A & Q CLSN A,=' ' SPACE IS O.K. JMP ATB3  SPACE CSK A,='*' IF NOT BETWEEN '*' - 'Z' THEN COPY ='*',A SUBSTITUTUTE '*' TO AVOID CSK A,='Z' PRINTING CONTROL CHARACTERS JMP $+2 OK COPY ='*',A ATB3 CLSNG  Q,=' ' SPACE IS O.K. JMP ATB5 SPACE CSK Q,='*' COPY ='*',Q CSK Q,='Z' JMP $+2 OK COPY ='*',Q SPACE 3 ATB5 EQU $ JSK BTB BYTE TO BUFFER COPY Q,A JSK BTB BYTE TO BUFFER RSK LPOOL SPACE 60 MOUNT EQU $ MOUNT DISK JSK ISM GET VOL COPY =7,A COPY =SBUF,X COPY =VOLUME,Q MOVE IT TO HERE JSK MOV COPY =VOLUME,X VOL PTR COPY 0(X),A SUB =' ',A CHECK FOR NULL JNE A,MOU5 SPECIFIED COPY =0,X NOT SPECIFIED MOU5 COPY X,VOLPP SPACE 3  JSK GPUN GET UNIT JNE A,MOU10 BAD UNIT COPY UNIT,A JEQ A,MOU12  NOT SPECIFIED F:MONT VOLPP CHECK MOUNTING JST MSG MONUT COMPLETE WORD MES9 MOU10 R:SIG BUFSM RSK SPACE 3 MOU12 JST MSG UNIT NOT SPECIFIED WORD ERR7 JMP MOU10  SPACE 60 GFLU EQU $ GET LU FOR FILE R:WAIT FILESM WAIT FOR AN LU TO BE AVAILABLE  COPY =FILELU,Y COPY =0,X FLU3 COPY 1(Y,X),A SEE IF ASSIGNED JEQ A,FLU5 UNASSIGNED, GOT ONE EXCH X,A CHECK IF FILE OPEN COPY FC:FLG(X),Q TBIT FCF:OP,Q JF OV,FLU4 NOT OPEN SO LU AVAILABLE COPY A,X RESTORE INDEX ADD =2,X NEXT LU CSK  X,=NFILE*2 SEE IF SEARCH OVER JMP FLU3 NO NOP JMP FLU12 SERIOUS PROBLEM , THIS SHOULD'T HAPPEN FLU4 COPY A,X RESTORE INDEX FLU5 COPY 0(Y,X),X LU COPY =0,A GOOD RETURN FLU10 RSK SPACE 3 FLU12 EQU $ JST MSG FILE LU ERROR WORD ERR14 COPY =1,A  JMP FLU10 SPACE 9 GFL EQU $ GET FILE JSK ISM GET UNIT COPY NC,A CLSN A,=4 CHECK FOR VALID LENGTH JMP $+2 GOOD JMP GFL12 BAD  JSK SPU FIND DIB ADDR JNE A,GFL16 NOT FOUND COPY X,UNIT DIB ADDR COPY Q,LUNPP LU OF DEVICE COPY =0,A COPY A,T1 INIT COPY A,T2 COPY TC,A  SUB ='.',A CHECK FOR DISK FILE JNE A,GFL9 NOT DISK FILE COPY:M BP,A,T1 START OF FILE NAME JSK ISM COPY NC,A JEQ A,GFL18 NULL FILE NAME COPY A,T2 LENGTH GFL9 COPY =0,A GFL10 RSK SPACE 3 GFL12 JST MSG INVALID UNIT NAME WORD ERR4 GFL14 COPY =1,A JMP GFL10 SPACE 3 GFL16 JST MSG UNIT NOT FOUND WORD ERR7 JMP GFL14 SPACE 3 GFL18 JST MSG INVALID FILE NAME WORD ERR8 JMP GFL14 LPOOL SPACE 9 CNVU EQU  $ CHECK NAME VOL & UNIT FOR CREATE & DELETE COPY NAME,A SUB =' ',A JEQ A,CNV12 H  NAME NOT SPECIFIED, ERROR COPY VOLUME,A EITHER UNIT OR VOLUME MUST BE SPECIFIED SUB =' ',A  OR UNIT,A JEQ A,CNV14 NEITHER SPECIFIED COPY =0,A CNV10 RSK SPACE 3 CNV12 JST MSG  BAD FILE BAME WORD ERR8 COPY =1,A JMP CNV10 SPACE 3 CNV14 JST MSG NETHER VOL OR UNIT THERERE WORD ERR12 COPY =1,A JMP CNV10 LPOOL SPACE 9 LOOKUP ENT  TABLE LOOKUP COPY *LOOKUP,Y TABLE ADDR COPY 0(Y),A LENGTH OF COMMAND IN WORDS ADD A,A IN BYTES SUB NC,A SEE IF VALID LENGTH JLT A,LKP9 TOOO LONG COPY =0,Q LKP3 EQU $ COPY =SBUF,X ADDR OF REQUESTED COMMAND SBIT BY:,S XNX Q COPY 2(Y),A CHAR FROM TABLE RBIT BY:,S EXCH X,Y COPY A,T1 SBIT BY:,S XNX Q COPY  0(Y),A RBIT BY:,S COPY X,Y ADDR IN TABLE SUB T1,A JNE A,LKP7 NOT IT  ADD =1,Q NEXT CHAR CSK Q,NC SEE IF DONE JMP LKP3 NOT DONE SPACE 3 NOP COPY *LOOKUP,X COPY 0(X),X LENGTH OF TABLE ENTRY COPY 1(Y,X),X ENTRY FOUND COPY =0,A JMP LKP10 SPACE 3 LKP7 COPY *LOOKUP,X ADDR OF TABLE ADD 0(X),Y BUMP Y TO NEXT ENTRY ADD =1,Y COPY 1(Y),A JNE A,LKP3 NOT END OF TABLE LKP9  EQU $ COPY =1,A SPACE 3 LKP10 EQU $ IMS LOOKUP JMP *LOOKUP SPACE 9 GNVU EQU $ GET NAME,VOL,& UNIT JSK ISM GET NAME COPY =SBUF,X MOVE NAME COPY =7,A WORDS TO MOVE COPY =NAME,Q PLACE TO MOVE IT TO JSK MOV SPACE 3  JSK ISM GET VOL COPY =VOLUME,Q PLACE TO MOVE IT TO COPY =7,A WORDS TO MOVE  COPY =SBUF,X MOVE VOLUME NAME JSK MOV SPACE 3 SPACE 3 JSK GPUN GET UNIT GNV10 RSK SPACE 9 GPUN EQU $ GET PUN JSK ISM GET UNIT COPY NC,A COPY A,X IN CASE NOR SPECIFIED JEQ A,GPU7 NOT SPECIFIED CLSN A,=4  JMP GPU5 GOOD JMP GPU12 BAD GPU5 JSK SPU LOOK UP UNIT JNE A,GPU12 UNIT NOT FOUND GPU7 EQU $ COPY X,UNIT DIB ADDR COPY =0,A GPU10 RSK SPACE 3 GPU12 JST MSG BAD UNIT WORD ERR4 COPY =1,A JMP GPU10 SPACE 9 SPU EQU $  LOOK UP UNIT THRU UAT COPY =UAT:S,Y UAT ADDR COPY 0(Y),X NUMBER OF ENTRIES ADD  X,X 2 WORDS PER SUB =1,X SPU3 COPY X,T1 SAVE INDEX COPY 4(Y,X),X NEXT DIB  JEQ X,SPU5 NOT IT COPY DI:NAM(X),A DIB NAME COPY DI:NAM+1(X),Q SUB SBUF,A I  JNE A,SPU5 NOT IT SUB SBUF+1,Q JEQ Q,SPU9 GOT IT SPU5 COPY T1,X INDEX TO UAT SUB =2,X NEX TENTRY JGT X,SPU3 NOT DONE COPY =1,X JMP SPU10  NOT FOUND SPACE 3 SPU9 COPY =0,A GOT IT EXCH T1,X COPY 3(Y,X),Q LUN  COPY T1,X DIB ADDR SPU10 RSK SPACE 9 COMMA EQU $ CHECK FOR COMMA COPY TC,A SUB =',',A JEQ A,COM5 O.K. JST MSG WORD ERR1 SYNTAX ERROR COPY =1,A COM5 RSK SPACE 9 ************************************************************ *  * * MESSAGE SUBROUTINE * * CALLING SEQUENCE  * * * * JST MSG  * * WORD MESSAGE ADDRESS * * * ************************************************************ MSG EQU $ PRINT MESSAGE ENT COPY *MSG,X  ADDR OF MESSAGE COPY:M 0(X),A,MESIOB+IO:BCT LENGTH ADD =1,X ADDR OF BYTE COPY X,MESIOB+IO:BUF MSG5 I:IO MESIOB JMP MSG5 RETRY ON ERROR IMS MSG BUNP RETURN OVER PARAMETER JMP *MSG LPOOL IOB:A MESIOB,SL,WR:,FA:,0,0,0 ************************************************************ *  * * READ COMMAND INPUT SUBROUTINE * *  * * CALLING SEQUENCE * *  * * JST READ * * WORD NUMBER OF CHARACTERS * * WORD BUFFER ADDR * * * *  OUTPUTS * * NC NUMBER OF CHARACTERS INPUT * *  TC LAST CHARACTER INPUT * * * * INPUT BUFFER IS INITIALIZED TO BLANKS * * * ************************************************************ READ ENT COPY:M =0,A,NC INITIALIZATION COPY *READ,X BYTE COUNT IMS READ COPY *READ,Y BUFFER ADDR COPY X,RDIOB+IO:BCT COPY Y,RDIOB+IO:BUF  COPY:M =' ',A,TC COPY =' ',A ADD =1,X SHIFT X,RO,1 WORDS TO BLANK READ5 COPY A,0(Y,X)  JEQD X,READ5 READ6 I:IO PROMPT NOP READ7 I:IO RDIOB NOP COPY =CI,A SEE IF CI & SL ARE THE SAME JSK SLU COPY X,T1 COPY =SL,A JSK SLU COPY 1(X),A DIB OF SL COPY T1,X SUB 1(X),A JEQ A,READ10 THE SAME DO('T ECHO IT COPY:M RDIOB+IO:ACT,A,BP J  LENGTH OF INPUT JST MSG ECHO COMMAND ON SL WORD BP READ10 EQU $ COPY:M RDIOB+IO:ACT,X,NC BYTES INPUT COPY RDIOB+IO:BUF,X SBIT BY:,S COPY 0(Y,X),A RBIT BY:,S COPY A,TC SUB  =1,X IMS READ JMP *READ LPOOL IOB:A RDIOB,CI,RE:,FA:,0,0,RDFP RDFC EQU RDIOB+IO:FC RDFP RES 2,0 IOB:A PROMPT,CI,WR:,WP:,1,PCHAR,0 PCHAR BYTE '>' PROMPT CHAR SPACE 60 ISM EQU $  INPUT SYMBOL COPY =0,A COPY A,DV INIT COPY A,DF COPY A,HV COPY A,HF COPY A,NC COPY =' ',A COPY =0,Q COPY =SBUF,X BLANK BUFFER ISM1 XNX Q COPY A,0(X) ADD =1,Q CLSN Q,=7 JMP $+2 DONE JMP ISM1 NOT DONE SPACE 3 ISM2 COPY =IBUF,Y INPUT BUFFER COPY BP,X BUFFER POINTER COPY X,Q  CSK Q,RDIOB+IO:ACT SEE IF INPUT EXAUSTED JMP $+3 NO NOP JMP ISM10 NOTHING LEFT IN BUFFER SPACE 3 IMS BP BUNP POINTER NOP SBIT BY:,S COPY 0(Y,X),A  GET CHARACTER RBIT BY:,S COPY A,TC CSK A,='0' CHECK FOR DECIMAL JMP ISM10 DELEIMITER CSK A,='9'+1 JMP ISM3 O.K. FOR HEX OR DECIMAL IMS DF NOT  SPACE 3 CSK A,='A' CHECK FOR HEX IMS HF NOT CSK A,='F' JMP $+2  HEX IMS HF NOT HEX SUB =7,A SET TO HEX VALUE SPACE 3 ISM3 EQU  $ COPY DV,Q SHIFT Q,LO,3 *8 ADD DV,Q *9 ADD DV,Q *10  SUB ='0',A ADD A,Q COPY Q,DV CUURENT DECIMAL VALUE COPY HV,Q SHIFT Q,LO,4 ADD A,Q ADD NEXT DIGIT COPY Q,HV COPY NC,X CLSN X,=4 LIMIT FOR DECIMAL IMS DF NOT DECIMAL CLSN X,=4 IMS HF NOT HEX CLSN X,=14  CHECK FOR LIMIT JMP ISM8 HIT LIMIT COPY TC,A RESTORE CHAR COPY =SBUF,Y SBIT BY:,S COPY A,0(Y,X) PUT CHARACTER INTO SYMBOL BUFFER RBIT BY:,S IMS NC BUMP PCOUNTER NOP ISM8 JMP ISM2 SPACE 3 ISM10 EQU $ COPY A,TC SAVE DELIMITER RSK  LPOOL END TITL IOS4 DEMO PROGRAM SHARABLE SFMDEMO: SFMDEMO: REL NAM G:B NAM CRE:A,DEL:A,ASS:A,COP:A,VIE:A,IDI:A NAM MOV NAM SLU NAM MES0,MES1,MES2,MES3,MES4 NAM IOERR NAM MES5 NAM MES6 NAM MES6A NAM MES9 NAM ERR1,ERR2,ERR3,ERR4,ERR5,ERR6,ERR7,ERR8,ERR9,ERR10 NAM ERR10A,ERR9A NAM ERR11,ERR12 NAM ERR14 EXTR RDIOB EXTR RDFC EXTR UAT:S EXTR MSG,BUFSM EXTR FILESM EXTR NAME,VOLUME EXTR INXTPP,SEXTPP,RLNPP EXTRK  LUNPP EXTR UNIT,DIRPUN,DIRLUN EXTR LUNF,LUNT EXTR OPCODE EXTR DIRPL EXTR HAD,IBUF,BP SPACE 9 G:B EQU $ MOV EQU $ MOVE WORDS JEQD A,MOV10 NOTHING TO DO  PUSH :40 COPY Q,Y TO ADDR MOV5 COPY 0(X),Q COPY Q,0(Y) ADD =1,X ADD =1,Y JNED A,MOV5 NOT DONE POP MOV10 RSK SPACE 9 ISP EQU $ INIT SCRATCH PAD  COPY =0,Q COPY =0,X ISP5 COPY Q,0(Y,X) ADD =1,X SUB =1,A JNE A,ISP5 NOT DONE RSK SPACE 9 TNVU EQU $ XFER NAME,VOL & UNIT TO Y SPAD COPY =ENDY,A LENGTH OF SPAD JSK ISP ZERO IT COPY =NAME,X MOVE NAME COPY =7,A WORDS TO MOVE COPY =NAM,Q ADD Y,Q JSK MOV MOVE FROM BUFFER TO SCRATCHPAD COPY =7,A  WORDS TO MOVE COPY =VOLUME,X MOVE VOLUME NAME COPY =VOL,Q ADD Y,Q JSK MOV  MOVE FROM BUFFER TO SCRATCHPAD COPY:M UNIT,A,PUN(Y) DIB ADDR COPY Y,A ADD =NAM,A  ADDR OF NAME COPY NAM(Y),Q SEE IF EXISTS SUB =' ',Q JNE Q,TNV2 EXISTS COPY =0,A NULL TNV2 EQU $ COPY A,NAMPTR(Y) COPY Y,A ADD =VOL,A COPY VOL(Y),Q  SEE IF VOL SPECIFIED SUB =' ',Q JNE Q,TNV3 SPECIFIED COPY =0,A NOT SPECIFIED TNV3 EQU $ COPY A,VOLPTR(Y) RSK SPACE 9 SLU EQU $ COPY =UAT:S,X UAT ADDR COPY 0(X),Q LENGTH ADD Q,Q 2 WORDS PER ENTRY SUB =2,Q ADD =4,X POINT TO FIRST ENTRY SLU3 ADD Q,X ADDR OF NEXT ENTRY CSK A,0(X) SERCH FOR LU  JMP SLU5 NOT IT JMP SLU5 NOT IT JMP SLU9 GOT IT SLU5 SUB Q,X SUB =2,Q NEXT ENTRY JGE Q,SLU3 MORE TO SEARCH SLU9 RSK SPACE 9 FMSG ENT  FILE MESSAGE R:WAIT BUFSM WAIT FOR BUFFER CONTROL COPY NAMPTR(Y),X MOVE FILE NAME TO MESSAGE JNE X,FMS2 DISK FILE COPY UNIT,X DIB OF UNIT ADD =DI:NAM,X ADDR OF DVICE NAME COPY Y,Q ADD =NAM,Q MOVE IT TO HERE COPY =7,A JSK BFN CLEAR OUT OLD FILE NAME COPY =2,A 2 WORDS LONG JSK MOV COPY Y,X ADD =NAM,X FMS2 EQU $ COPY *FMSG,Q COPY Q,FMS5 MESSAGE ADDR ADD =4,Q ADDR TO MOVE FILE NAME TO COPY =7,A LENGTH OF NAME JSK MOV JST MSG FMS5 RES 1,0 R:SIG BUFSM  LET GO OF BUFFER IMS FMSG JMP *FMSG LPOOL BFN EQU $ BLANK FILE NAME PUSH :40 SUB =1,A COPY Q,X ADDR OF NAME COPY =' ',Q BFN3 COPY Q,0(X) ADD =1,X NEXT WORD L  JNED A,BFN3 NOT DONE POP RSK SPACE 9 SPACE 60 TDB:A CRE:A,CRE:S,ENDY,0,:100,0,10 CRE:S EQU $ CREATE ACTIVITY JSK TNVU TRANSFER NAME,VOL, & UNIT TO Y-SPAD COPY:M INXTPP,A,INXT(Y) SET UP REST OF PL COPY:M SEXTPP,A,SEXT(Y) IN SPAD COPY:M RLNPP,A,RECLN(Y) R:SIG BUFSM FREE BUFFER F:CREA NAMPTR(Y) CREATE FILE JEQ A,CREA12 FILE ALREADY EXISTS  JST FMSG TELL USER FILE CREATED WORD MES1 CREA10 EQU $ R:END SPACE 3 CREA12 JST FMSG  FILE ALREADY EXISTS WORD ERR9 JMP CREA10 SPACE 60 TDB:A DEL:A,DEL:S,ENDY,0,:100,0,10 DEL:S  EQU $ DELETE ACTIVITY JSK TNVU TRANSFER NAME,VOL, & UNIT TO Y-SPAD R:SIG BUFSM  FREE BUFFER F:DELE NAMPTR(Y) DELETE FILE JEQ A,DELE12 FILE NOT FOUND JST FMSG  FILE DELETED WORD MES2 DELE10 EQU $ R:END SPACE 3 DELE12 JST FMSG FILE NOT FOUND WORD ERR10 JMP DELE10 SPACE 60 TDB:A ASS:A,ASS:S,ENDY,0,:100,0,10 ASS:S EQU $ ASSIGN ACTIVITY JSK TNVU TRANSFER NAME,VOL, & UNIT TO Y-SPAD COPY:M LUNPP,A,LUN(Y) COPY A,INLUN(Y)  SUB ='CI',A IF COMMAND INPUT BEING CHANGED JNE A,ASSI3 NO COPY:M =FU:%4+CL:,A,RDFC  I:IO RDIOB CLOSE OLD FILE NOP SPACE 3 ASSI3 EQU $ F:CONN NAMPTR(Y) CONNECT FILE JEQ A,ASSI12 FILE NOT FOUND COPY:M LUN(Y),A,MES3B LUN TO MESSAGE SUB =CI,A JNE A,ASSI8 COPY:M =FU:%4+OP:,A,RDFC I:IO RDIOB OPEN NEW FILE JMP ASSI14 ERROR COPY:M =RE:%4+FA:,A,RDFC SPACE 3 ASSI8 EQU $ R:SIG BUFSM FREE BUFFER JST FMSG  FILE CONNECTED WORD MES3 ASSI10 EQU $ R:END SPACE 3 ASSI12 R:SIG BUFSM JST MSG FILE NOT FOUND WORD ERR10 JMP ASSI10 SPACE 3 ASSI14 COPY =RDIOB,A SUB Y,A TO COMPENSATE FOR IOERR ADDING Y JSK IOERR OPEN ERROR ASSI16 F:CONN TTYPL PUT CI BACK TO TTY R:SIG BUFSM  JMP ASSI10 SPACE 3 EXTR D:TY00 CONN:A TTYPL,0,0,TY00,CI LPOOL SPACE 60  TDB:A VIE:A,VIE:S,ENDY,0,:100,0,10 VIE:S EQU $ VIEW ACTIVITY COPY =ENDY,A JSK ISP  INIT SPAD COPY:M UNIT,A,PUN(Y) DIB ADDR COPY A,DIRPUN F:CONN DIRPL CONNECT TO DIRECTORY JLE A,VIEW12 CAN'T MAKE NO CONNECTION COPY:M DIRLUN,A,INLUN(Y) SET UP IOBS COPY:M =16,A,INBCT(Y) COPY A,OUTBCT(Y) COPY:M =FU:%4+OP:,A,INFC(Y) OPEN COPY A,OUTFC(Y) COPY Y,A IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII