PL/M-80 COMPILER 6/6/79 PAGE 1 ISIS-II PL/M-80 V3.1 COMPILATION OF MODULE BAUD OBJECT MODULE PLACED IN :F1:BAUD.OBJ COMPILER INVOKED BY: PLM80 :F1:BAUD.SRC DEBUG DATE(6/6/79) 1 BAUD: DO; $INCLUDE (:F1:COMMON.LIT) 2 1 = DECLARE LIT LITERALLY 'LITERALLY'; 3 1 = DECLARE DECL LIT 'DECLARE'; 4 1 = DECL TRUE LIT '0FFH', = FALSE LIT '00H', = BOOLEAN LIT 'BYTE', = FOREVER LIT 'WHILE 1'; = = = /* SPECIAL ASCII CHARACTERS */ = 5 1 = DECL = NULL LIT '00H', = CNTRL$C LIT '03H', = CNTRL$E LIT '05H', = BELL LIT '07H', = BS LIT '08H', = TAB LIT '09H', = LF LIT '0AH', = VT LIT '0BH', = FF LIT '0CH', = CR LIT '0DH', = CNTRL$P LIT '010H', = CNTRL$Q LIT '011H', = CNTRL$R LIT '012H', = CNTRL$S LIT '013H', = CNTRL$W LIT '017H', = CNTRL$X LIT '018H', = CNTRL$Z LIT '01AH', = ESC LIT '01BH', = SPACE LIT '020H', = EXCLM$PT LIT '021H', = QUOTE LIT '022H', = HASH LIT '023H', = PRCNT LIT '025H', = AMPRSAND LIT '026H', = DASH LIT '02DH', = LS$THAN LIT '03CH', = GR$THAN LIT '03EH', = QMARK LIT '03FH', = LFT$BRK LIT '05BH', = RT$BRK LIT '05DH', = UP$ARW LIT '05EH', = LCA LIT '061H', = LCZ LIT '07AH', = ALT$MOD LIT '07DH', = RUBOUT LIT '07FH'; = PL/M-80 COMPILER 6/6/79 PAGE 2 $INCLUDE (:F1:ISS.COM) 6 1 = OPEN: PROCEDURE (AFTPTR,FILE,ACCESS,MODE,STATUS) EXTERNAL; 7 2 = DECL (AFTPTR,FILE,ACCESS,MODE,STATUS) ADDRESS; 8 2 = END OPEN; = 9 1 = CLOSE: PROCEDURE (AFT,STATUS) EXTERNAL; 10 2 = DECL (AFT,STATUS) ADDRESS; 11 2 = END CLOSE; = 12 1 = DELETE: PROCEDURE (FILE,STATUS) EXTERNAL; 13 2 = DECL (FILE,STATUS) ADDRESS; 14 2 = END DELETE; = 15 1 = READ: PROCEDURE (AFT,BUFFER,COUNT,ACTUAL,STATUS) EXTERNAL; 16 2 = DECL (AFT,BUFFER,COUNT,ACTUAL,STATUS) ADDRESS; 17 2 = END READ; = 18 1 = WRITE: PROCEDURE (AFT,BUFFER,COUNT,STATUS) EXTERNAL; 19 2 = DECL (AFT,BUFFER,COUNT,STATUS) ADDRESS; 20 2 = END WRITE; = 21 1 = SEEK: PROCEDURE (AFT,BASE,BLOCKNUM,BYTENUM,STATUS) EXTERNAL; 22 2 = DECL (AFT,BASE,BLOCKNUM,BYTENUM,STATUS) ADDRESS; 23 2 = END SEEK; = 24 1 = LOAD: PROCEDURE (FILE,BIAS,RETSW,ENTRY,STATUS) EXTERNAL; 25 2 = DECL (FILE,BIAS,RETSW,ENTRY,STATUS) ADDRESS; 26 2 = END LOAD; = 27 1 = RENAME: PROCEDURE (OLDFILE,NEWFILE,STATUS) EXTERNAL; 28 2 = DECL (OLDFILE,NEWFILE,STATUS) ADDRESS; 29 2 = END RENAME; = 30 1 = CONSOL: PROCEDURE (INFILE,OUTFILE,STATUS) EXTERNAL; 31 2 = DECL (INFILE,OUTFILE,STATUS) ADDRESS; 32 2 = END CONSOL; = 33 1 = EXIT: PROCEDURE EXTERNAL; 34 2 = END EXIT; = 35 1 = ATTRIB: PROCEDURE (FILE,SWID,VALUE,STATUS) EXTERNAL; 36 2 = DECL (FILE,SWID,VALUE,STATUS) ADDRESS; 37 2 = END ATTRIB; = 38 1 = RESCAN: PROCEDURE (AFT,STATUS) EXTERNAL; 39 2 = DECL (AFT,STATUS) ADDRESS; 40 2 = END RESCAN; = 41 1 = ERROR: PROCEDURE (ERRNUM) EXTERNAL; 42 2 = DECL (ERRNUM) ADDRESS; 43 2 = END ERROR; = 44 1 = WHOCON: PROCEDURE (AFT,BUFFER) EXTERNAL; 45 2 = DECL (AFT,BUFFER) ADDRESS; 46 2 = END WHOCON; = = PL/M-80 COMPILER 6/6/79 PAGE 3 47 1 = DECL READ$AC LIT '01H', = WRITE$AC LIT '02H', = UPDATE$AC LIT '03H'; = 48 1 = DECL CI$AFT LIT '01H', = CO$AFT LIT '0H', = LN$EDT$CO LIT '0F0H'; = 49 1 DECL SIO1DAT LIT '0F4H'; 50 1 DECL SIO1STAT LIT '0F5H'; 51 1 DECL SIO2DAT LIT '0F6H'; 52 1 DECL SIO2STAT LIT '0F7H'; 53 1 DECL SIO$RST LIT '040H'; 54 1 DECL UM LIT '0CH'; 55 1 DECL USRT$MD0 LIT '0CFH'; /*USART MODE DEVIDE BY 64*/ 56 1 DECL USRT$MD1 LIT '0CEH'; /*USART MODE DIVIDE BY 16*/ 57 1 DECL USRT$CTRL LIT '027H'; 58 1 DECL S1 LIT '040H'; /*1 STOP BIT */ 59 1 DECL S2 LIT '0C0H'; /*2 STOP BIT */ 60 1 DECL D16 LIT '02H'; /*DIV BY 16 BAUD FACTOR*/ 61 1 DECL D64 LIT '03H'; /*DIV BY 64 BAUD FACTOR*/ 62 1 DECL CNTR$CTRL LIT '0F3H'; 63 1 DECL CNTR0 LIT '0F0H'; 64 1 DECL CNTR1 LIT '0F1H'; 65 1 DECL CNTR2 LIT '0F2H'; 66 1 DECL C0 LIT '0'; 67 1 DECL C1 LIT '040H'; 68 1 DECL C2 LIT '080H'; 69 1 DECL CNT$MD LIT '036H'; 70 1 DECL BAUD$RATE(*) BYTE /*B110(8) BYTE, B300(8) BYTE, B1200(8) BYTE, B2400(8) BYTE, B4800(8) BYTE, B9600(8) BYTE*/ DATA (3,'110',0,0,0,0,3,'300',0,0,0,0,4,'1200',0,0,0, 4,'2400',0,0,0,4,'4800',0,0,0,4,'9600',0,0,0); 71 1 DECL BAUD$FACTORS(8) ADDRESS DATA (698,256,64,32,16,08,0); 72 1 DECL USRT$FACTORS(8) BYTE DATA (0CEH,04EH,04EH,04EH,04EH,04EH,0); 73 1 DECL ERMSG(*) BYTE DATA (CR,LF,'NOT A VALID FACTOR. ALLOWABLE FACTORS ARE:', CR,LF,'110,300,1200,2400,4800,9600',CR,LF); 74 1 DECL AFT$IN ADDRESS; 75 1 DECL ACTL ADDRESS; 76 1 DECL CONSL$INP(*) BYTE DATA (':CI:',0); 77 1 DECL COUNT BYTE; 78 1 DECL I BYTE; 79 1 DECL J BYTE; PL/M-80 COMPILER 6/6/79 PAGE 4 80 1 DECL K BYTE; 81 1 DECL SGN$ON(*) BYTE DATA ('SERIES II BAUD CHANGE UTILITY V1.0',0DH,0AH); 82 1 DECL SRPORT BYTE INITIAL (02); 83 1 DECL STATUS ADDRESS; 84 1 DECL KEYBUFFER(122) BYTE; 85 1 CALL WRITE (CO$AFT,.SGN$ON,LENGTH(SGN$ON),.STATUS); 86 1 CALL OPEN (.AFT$IN,.CONSL$INP,READ$AC,LN$EDT$CO,.STATUS); 87 1 IF STATUS > 0 THEN CALL ERROR(STATUS); 89 1 CALL READ (AFT$IN,.KEYBUFFER,122,.ACTL,.STATUS); 90 1 IF STATUS > 0 THEN CALL ERROR(STATUS); 92 1 I,J,K = 0; 93 1 DO WHILE KEYBUFFER(I) = SPACE; 94 2 I = I+1; 95 2 END; 96 1 IF KEYBUFFER(I) = CR THEN 97 1 CALL EXIT; 98 1 DO WHILE K < LENGTH (BAUD$RATE); 99 2 COUNT = BAUD$RATE(K); 100 2 DO WHILE KEYBUFFER(I+J) = BAUD$RATE(K+J+1); 101 3 J = J+1; 102 3 IF COUNT-J = 0 THEN GOTO MATCH; 104 3 END; 105 2 K = K+8; 106 2 END; 107 1 CALL WRITE(CO$AFT,.ERMSG,LENGTH(ERMSG),.STATUS); 108 1 IF STATUS > 0 THEN CALL ERROR(STATUS); 110 1 CALL EXIT; 111 1 MATCH: I = I+J; 112 1 K = SHR(K,3); 113 1 DO WHILE KEYBUFFER(I) = SPACE; 114 2 I = I+1; 115 2 END; 116 1 IF KEYBUFFER(I) <> CR THEN 117 1 DO; 118 2 IF KEYBUFFER(I) = '1' THEN 119 2 SRPORT = 1; 120 2 END; 121 1 IF SRPORT = 2 THEN 122 1 DO; 123 2 OUTPUT(CNTR$CTRL) = (CNT$MD OR C1); 124 2 OUTPUT(CNTR1) = (BAUD$FACTORS(K) AND 0FFH); 125 2 OUTPUT(CNTR1) = (SHR(BAUD$FACTORS(K),8) AND 0FFH); 126 2 OUTPUT(SIO2STAT) = SIO$RST; 127 2 OUTPUT(SIO2STAT) = USRT$FACTORS(K); 128 2 OUTPUT(SIO2STAT) = USRT$CTRL; 129 2 CALL EXIT; 130 2 END; 131 1 IF SRPORT = 1 THEN PL/M-80 COMPILER 6/6/79 PAGE 5 132 1 DO; 133 2 OUTPUT(CNTR$CTRL) = (CNT$MD OR C0); 134 2 OUTPUT(CNTR0) = (BAUD$FACTORS(K) AND 0FFH); 135 2 OUTPUT(CNTR0) = (SHR(BAUD$FACTORS(K),8) AND 0FFH); 136 2 OUTPUT(SIO1STAT) = SIO$RST; 137 2 OUTPUT(SIO1STAT) = USRT$FACTORS(K); 138 2 OUTPUT(SIO1STAT) = USRT$CTRL; 139 2 CALL EXIT; 140 2 END; 141 1 CALL EXIT; 142 1 END; EOF MODULE INFORMATION: CODE AREA SIZE = 02AAH 682D VARIABLE AREA SIZE = 0085H 133D MAXIMUM STACK SIZE = 0008H 8D 234 LINES READ 0 PROGRAM ERROR(S) END OF PL/M-80 COMPILATION