PL/M-86 COMPILER PLM_LIB 09/18/90 15:18:36 PAGE 1 DOS 3.30 (038-N) PL/M-86 X304 COMPILATION OF MODULE PLM_LIB OBJECT MODULE PLACED IN PLM_LIB.obj COMPILER INVOKED BY: 'C:\SCA˙\PLM86\PLM86.EXE' PLM_LIB.PLM $DEBUG $OT(0) $CODE $XREF /*---------------------------------- Program : PLM_LIB.PLM Title : Subroutines Author : Mr S.C.Agate FCD x4667 Date : 09-Aug-90 ----------------------------------*/ 1 plm_lib:DO; /******************* Literals ******************/ 2 1 DECLARE true LITERALLY '01H'; /******************* Globals *******************/ /* None */ /************** External Procedures ************/ 3 1 asm_get_chr: PROCEDURE BYTE EXTERNAL; 4 2 END asm_get_chr; 5 1 asm_put_chr: PROCEDURE (chr) EXTERNAL; 6 2 DECLARE chr BYTE; 7 2 END asm_put_chr; 8 1 asm_get_date: PROCEDURE (ptr) EXTERNAL; 9 2 DECLARE ptr POINTER; 10 2 END asm_get_date; 11 1 asm_get_time: PROCEDURE (ptr) EXTERNAL; 12 2 DECLARE ptr POINTER; 13 2 END asm_get_time; /************** Internal Procedures ************/ 14 1 get_clock: PROCEDURE (ptr) PUBLIC; 15 2 DECLARE ptr POINTER; 16 2 DECLARE actual BASED ptr STRUCTURE (year WORD, month BYTE, day BYTE, dow BYTE, hour BYTE, minute BYTE, second BYTE, csecond BYTE); PL/M-86 COMPILER PLM_LIB 09/18/90 15:18:36 PAGE 2 17 2 CALL asm_get_date(@actual); 18 2 CALL asm_get_time(@actual); 19 2 END get_clock; 20 1 new_line: PROCEDURE PUBLIC; 21 2 CALL asm_put_chr(0DH); 22 2 CALL asm_put_chr(0AH); 23 2 END new_line; 24 1 get_string: PROCEDURE (string_add,max_len) BYTE PUBLIC; 25 2 DECLARE string_add POINTER; 26 2 DECLARE max_len BYTE; 27 2 DECLARE actual_string BASED string_add(*) BYTE; 28 2 DECLARE length WORD, chr WORD; 29 2 length=0; 30 2 chr=0; 31 2 DO WHILE chr<>13; 32 3 chr=asm_get_chr; 33 3 IF chr<>13 THEN 34 3 DO; 35 4 IF chr=8 THEN 36 4 DO; 37 5 IF length<>0 THEN 38 5 DO; 39 6 length=length-1; 40 6 CALL asm_put_chr(8); 41 6 CALL asm_put_chr(32); 42 6 CALL asm_put_chr(8); 43 6 END; 44 5 END; 45 4 ELSE DO; 46 5 IF length<>(max_len-1) THEN 47 5 DO; 48 6 CALL asm_put_chr(chr); 49 6 actual_string(length)=chr; 50 6 length=length+1; 51 6 END; 52 5 END; 53 4 END; 54 3 END; 55 2 length=length+1; 56 2 actual_string(length)=0; 57 2 RETURN length; 58 2 END get_string; 59 1 put_string: PROCEDURE (string_add) PUBLIC; 60 2 DECLARE string_add POINTER; 61 2 DECLARE actual_string BASED string_add(*) BYTE; 62 2 DECLARE count WORD, chr BYTE; 63 2 count=0; 64 2 chr=actual_string(count); 65 2 IF chr<>0 THEN 66 2 DO WHILE chr<>0; 67 3 CALL asm_put_chr(chr); PL/M-86 COMPILER PLM_LIB 09/18/90 15:18:36 PAGE 3 68 3 count=count+1; 69 3 chr=actual_string(count); 70 3 END; 71 2 END put_string; 72 1 put_hex_num: PROCEDURE (value,digits) PUBLIC; 73 2 DECLARE value WORD, digits BYTE, i INTEGER, temp BYTE; 74 2 IF digits<>0 THEN 75 2 DO i=(digits-1) TO 0 BY -1; 76 3 temp=(SHR(value,BYTE(i)*4) AND 01111B); 77 3 IF temp>9 THEN temp=temp+7; 79 3 CALL asm_put_chr(temp+30H); 80 3 END; 81 2 END put_hex_num; 82 1 put_dec_num: PROCEDURE (value) BYTE PUBLIC; 83 2 DECLARE value WORD, digits BYTE, i BYTE, temp BYTE, exp WORD; 84 2 digits=0; 85 2 exp=10000; 86 2 DO i=1 TO 5; 87 3 temp=value/exp; 88 3 IF temp<>0 OR digits<>0 OR i=5 THEN 89 3 DO; 90 4 CALL asm_put_chr(temp+30H); 91 4 value=value-temp*exp; 92 4 digits=digits+1; 93 4 END; 94 3 exp=exp/10; 95 3 END; 96 2 RETURN digits; 97 2 END put_dec_num; 98 1 get_dec_num: PROCEDURE WORD PUBLIC; 99 2 DECLARE string(6) BYTE; 100 2 DECLARE value WORD, i BYTE, digits BYTE; 101 2 digits=get_string(@string,6); 102 2 value=0; 103 2 IF digits>1 THEN 104 2 DO i=0 to digits-2; 105 3 value=value*10+WORD(string(i)-48); 106 3 END; 107 2 RETURN value; 108 2 END get_dec_num; 109 1 upper: PROCEDURE (string_add) PUBLIC; 110 2 DECLARE string_add POINTER; 111 2 DECLARE actual_string BASED string_add(*) BYTE; 112 2 DECLARE count WORD, PL/M-86 COMPILER PLM_LIB 09/18/90 15:18:36 PAGE 4 chr BYTE; 113 2 count=0; 114 2 chr=actual_string(count); 115 2 IF chr<>0 THEN 116 2 DO WHILE chr<>0; 117 3 IF (chr>96 and chr<123) THEN actual_string(count)=chr-32; 119 3 count=count+1; 120 3 chr=actual_string(count); 121 3 END; 122 2 END upper; /*************** Module level code *************/ /* None */ 123 1 END plm_lib; PL/M-86 COMPILER PLM_LIB 09/18/90 15:18:36 PAGE 5 ASSEMBLY LISTING OF OBJECT CODE ; STATEMENT # 14 GET_CLOCK PROC NEAR 0000 55 PUSH BP 0001 8BEC MOV BP,SP ; STATEMENT # 17 0003 FF7604 PUSH [BP].PTR; 1 0006 E80000 CALL ASM_GET_DATE ; STATEMENT # 18 0009 FF7604 PUSH [BP].PTR; 1 000C E80000 CALL ASM_GET_TIME ; STATEMENT # 19 000F 5D POP BP 0010 C20200 RET 2H GET_CLOCK ENDP ; STATEMENT # 20 NEW_LINE PROC NEAR 0014 55 PUSH BP 0015 8BEC MOV BP,SP ; STATEMENT # 21 0017 B00D MOV AL,0DH 0019 50 PUSH AX ; 1 001A E80000 CALL ASM_PUT_CHR ; STATEMENT # 22 001D B00A MOV AL,0AH 001F 50 PUSH AX ; 1 0020 E80000 CALL ASM_PUT_CHR ; STATEMENT # 23 0023 5D POP BP 0024 C3 RET NEW_LINE ENDP ; STATEMENT # 24 GET_STRING PROC NEAR 0026 55 PUSH BP 0027 8BEC MOV BP,SP ; STATEMENT # 29 0029 C70600000000 MOV LENGTH,0H ; STATEMENT # 30 002F C70602000000 MOV CHR,0H ; STATEMENT # 31 @1: 0035 813E02000D00 CMP CHR,0DH 003B 7503 JNZ $+5H 003D E97700 JMP @2 ; STATEMENT # 32 0040 E80000 CALL ASM_GET_CHR 0043 B400 MOV AH,0H 0045 89060200 MOV CHR,AX ; STATEMENT # 33 0049 813E02000D00 CMP CHR,0DH 004F 7503 JNZ $+5H 0051 E96000 JMP @3 ; STATEMENT # 35 0054 813E02000800 CMP CHR,8H 005A 7403 JZ $+5H 005C E92800 JMP @4 ; STATEMENT # 37 PL/M-86 COMPILER PLM_LIB 09/18/90 15:18:36 PAGE 6 ASSEMBLY LISTING OF OBJECT CODE 005F 833E000000 CMP LENGTH,0H 0064 7503 JNZ $+5H 0066 E91B00 JMP @5 ; STATEMENT # 39 0069 8B060000 MOV AX,LENGTH 006D 48 DEC AX 006E 89060000 MOV LENGTH,AX ; STATEMENT # 40 0072 B008 MOV AL,8H 0074 50 PUSH AX ; 1 0075 E80000 CALL ASM_PUT_CHR ; STATEMENT # 41 0078 B020 MOV AL,20H 007A 50 PUSH AX ; 1 007B E80000 CALL ASM_PUT_CHR ; STATEMENT # 42 007E B008 MOV AL,8H 0080 50 PUSH AX ; 1 0081 E80000 CALL ASM_PUT_CHR ; STATEMENT # 44 @5: 0084 E92D00 JMP @6 ; STATEMENT # 45 @4: ; STATEMENT # 46 0087 8A4604 MOV AL,[BP].MAX_LEN 008A FEC8 DEC AL 008C B400 MOV AH,0H 008E 3B060000 CMP AX,LENGTH 0092 7503 JNZ $+5H 0094 E91D00 JMP @7 ; STATEMENT # 48 0097 FF360200 PUSH CHR ; 1 009B E80000 CALL ASM_PUT_CHR ; STATEMENT # 49 009E 8B060200 MOV AX,CHR 00A2 8B5E06 MOV BX,[BP].STRING_ADD 00A5 8B360000 MOV SI,LENGTH 00A9 8800 MOV [BX].ACTUAL_STRING[SI],AL ; STATEMENT # 50 00AB 8B060000 MOV AX,LENGTH 00AF 40 INC AX 00B0 89060000 MOV LENGTH,AX ; STATEMENT # 52 @7: ; STATEMENT # 53 @6: ; STATEMENT # 54 @3: 00B4 E97EFF JMP @1 @2: ; STATEMENT # 55 00B7 8B060000 MOV AX,LENGTH 00BB 40 INC AX 00BC 89060000 MOV LENGTH,AX ; STATEMENT # 56 PL/M-86 COMPILER PLM_LIB 09/18/90 15:18:36 PAGE 7 ASSEMBLY LISTING OF OBJECT CODE 00C0 8B5E06 MOV BX,[BP].STRING_ADD 00C3 8B360000 MOV SI,LENGTH 00C7 C60000 MOV [BX].ACTUAL_STRING[SI],0H ; STATEMENT # 57 00CA 8A060000 MOV AL,LENGTH 00CE 5D POP BP 00CF C20400 RET 4H ; STATEMENT # 58 GET_STRING ENDP ; STATEMENT # 59 PUT_STRING PROC NEAR 00D2 55 PUSH BP 00D3 8BEC MOV BP,SP ; STATEMENT # 63 00D5 C70604000000 MOV COUNT,0H ; STATEMENT # 64 00DB 8B5E04 MOV BX,[BP].STRING_ADD 00DE 8B360400 MOV SI,COUNT 00E2 8A00 MOV AL,[BX].ACTUAL_STRING[SI] 00E4 88060E00 MOV CHR,AL ; STATEMENT # 65 00E8 823E0E0000 CMP CHR,0H 00ED 7503 JNZ $+5H 00EF E92A00 JMP @8 ; STATEMENT # 66 @9: 00F2 823E0E0000 CMP CHR,0H 00F7 7503 JNZ $+5H 00F9 E92000 JMP @10 ; STATEMENT # 67 00FC FF360E00 PUSH CHR ; 1 0100 E80000 CALL ASM_PUT_CHR ; STATEMENT # 68 0103 8B060400 MOV AX,COUNT 0107 40 INC AX 0108 89060400 MOV COUNT,AX ; STATEMENT # 69 010C 8B5E04 MOV BX,[BP].STRING_ADD 010F 8B360400 MOV SI,COUNT 0113 8A00 MOV AL,[BX].ACTUAL_STRING[SI] 0115 88060E00 MOV CHR,AL ; STATEMENT # 70 0119 E9D6FF JMP @9 @10: ; STATEMENT # 71 @8: 011C 5D POP BP 011D C20200 RET 2H PUT_STRING ENDP ; STATEMENT # 72 PUT_HEX_NUM PROC NEAR 0120 55 PUSH BP 0121 8BEC MOV BP,SP ; STATEMENT # 74 0123 827E0400 CMP [BP].DIGITS,0H 0127 7503 JNZ $+5H PL/M-86 COMPILER PLM_LIB 09/18/90 15:18:36 PAGE 8 ASSEMBLY LISTING OF OBJECT CODE 0129 E95800 JMP @11 ; STATEMENT # 75 012C 8A4604 MOV AL,[BP].DIGITS 012F FEC8 DEC AL 0131 B400 MOV AH,0H 0133 89060600 MOV I,AX @12: 0137 833E060000 CMP I,0H 013C 7903 JNS $+5H 013E E94300 JMP @13 ; STATEMENT # 76 0141 8A0E0600 MOV CL,I 0145 B500 MOV CH,0H 0147 D1E1 SHL CX,1 0149 D1E1 SHL CX,1 014B 8B4606 MOV AX,[BP].VALUE 014E D3E8 SHR AX,CL 0150 81E00F00 AND AX,0FH 0154 88060F00 MOV TEMP,AL ; STATEMENT # 77 0158 803E0F0009 CMP TEMP,9H 015D 7703 JA $+5H 015F E90B00 JMP @14 ; STATEMENT # 78 0162 8A060F00 MOV AL,TEMP 0166 80C007 ADD AL,7H 0169 88060F00 MOV TEMP,AL ; STATEMENT # 79 @14: 016D 8A060F00 MOV AL,TEMP 0171 80C030 ADD AL,30H 0174 50 PUSH AX ; 1 0175 E80000 CALL ASM_PUT_CHR ; STATEMENT # 80 0178 8B060600 MOV AX,I 017C 48 DEC AX 017D 89060600 MOV I,AX 0181 E9B3FF JMP @12 @13: ; STATEMENT # 81 @11: 0184 5D POP BP 0185 C20400 RET 4H PUT_HEX_NUM ENDP ; STATEMENT # 82 PUT_DEC_NUM PROC NEAR 0188 55 PUSH BP 0189 8BEC MOV BP,SP ; STATEMENT # 84 018B C606100000 MOV DIGITS,0H ; STATEMENT # 85 0190 C70608001027 MOV EXP,2710H ; STATEMENT # 86 0196 C606110001 MOV I,1H @15: 019B 803E110005 CMP I,5H PL/M-86 COMPILER PLM_LIB 09/18/90 15:18:36 PAGE 9 ASSEMBLY LISTING OF OBJECT CODE 01A0 7603 JBE $+5H 01A2 E97B00 JMP @16 ; STATEMENT # 87 01A5 8B4604 MOV AX,[BP].VALUE 01A8 31D2 XOR DX,DX 01AA F7360800 DIV EXP 01AE 88061200 MOV TEMP,AL ; STATEMENT # 88 01B2 823E120000 CMP TEMP,0H 01B7 B0FF MOV AL,0FFH 01B9 7501 JNZ $+3H 01BB 40 INC AX 01BC 823E100000 CMP DIGITS,0H 01C1 B1FF MOV CL,0FFH 01C3 7501 JNZ $+3H 01C5 41 INC CX 01C6 0AC1 OR AL,CL 01C8 803E110005 CMP I,5H 01CD B1FF MOV CL,0FFH 01CF 7401 JZ $+3H 01D1 41 INC CX 01D2 0AC1 OR AL,CL 01D4 D1E8 SHR AX,1 01D6 7203 JB $+5H 01D8 E92700 JMP @17 ; STATEMENT # 90 01DB 8A061200 MOV AL,TEMP 01DF 80C030 ADD AL,30H 01E2 50 PUSH AX ; 1 01E3 E80000 CALL ASM_PUT_CHR ; STATEMENT # 91 01E6 8A061200 MOV AL,TEMP 01EA B400 MOV AH,0H 01EC F7260800 MUL EXP 01F0 8B4E04 MOV CX,[BP].VALUE 01F3 2BC8 SUB CX,AX 01F5 894E04 MOV [BP].VALUE,CX ; STATEMENT # 92 01F8 8A061000 MOV AL,DIGITS 01FC FEC0 INC AL 01FE 88061000 MOV DIGITS,AL ; STATEMENT # 94 @17: 0202 8B060800 MOV AX,EXP 0206 B90A00 MOV CX,0AH 0209 31D2 XOR DX,DX 020B F7F1 DIV CX 020D 89060800 MOV EXP,AX ; STATEMENT # 95 0211 8A061100 MOV AL,I 0215 FEC0 INC AL 0217 88061100 MOV I,AL 021B 7403 JZ $+5H 021D E97BFF JMP @15 @16: ; STATEMENT # 96 PL/M-86 COMPILER PLM_LIB 09/18/90 15:18:36 PAGE 10 ASSEMBLY LISTING OF OBJECT CODE 0220 8A061000 MOV AL,DIGITS 0224 5D POP BP 0225 C20200 RET 2H ; STATEMENT # 97 PUT_DEC_NUM ENDP ; STATEMENT # 98 GET_DEC_NUM PROC NEAR 0228 55 PUSH BP 0229 8BEC MOV BP,SP ; STATEMENT # 101 022B B81300 MOV AX,OFFSET(STRING) 022E 50 PUSH AX ; 1 022F B006 MOV AL,6H 0231 50 PUSH AX ; 2 0232 E8F1FD CALL GET_STRING 0235 88061A00 MOV DIGITS,AL ; STATEMENT # 102 0239 C7060A000000 MOV VALUE,0H ; STATEMENT # 103 023F 803E1A0001 CMP DIGITS,1H 0244 7703 JA $+5H 0246 E94000 JMP @18 ; STATEMENT # 104 0249 C606190000 MOV I,0H @19: 024E 8A061A00 MOV AL,DIGITS 0252 80E802 SUB AL,2H 0255 3A061900 CMP AL,I 0259 7303 JAE $+5H 025B E92B00 JMP @20 ; STATEMENT # 105 025E 8A1E1900 MOV BL,I 0262 B700 MOV BH,0H 0264 8A8F1300 MOV CL,STRING[BX] 0268 80E930 SUB CL,30H 026B B500 MOV CH,0H 026D B80A00 MOV AX,0AH 0270 F7260A00 MUL VALUE 0274 03C8 ADD CX,AX 0276 890E0A00 MOV VALUE,CX ; STATEMENT # 106 027A 8A061900 MOV AL,I 027E FEC0 INC AL 0280 88061900 MOV I,AL 0284 7403 JZ $+5H 0286 E9C5FF JMP @19 @20: ; STATEMENT # 107 @18: 0289 8B060A00 MOV AX,VALUE 028D 5D POP BP 028E C3 RET ; STATEMENT # 108 GET_DEC_NUM ENDP ; STATEMENT # 109 UPPER PROC NEAR PL/M-86 COMPILER PLM_LIB 09/18/90 15:18:36 PAGE 11 ASSEMBLY LISTING OF OBJECT CODE 0290 55 PUSH BP 0291 8BEC MOV BP,SP ; STATEMENT # 113 0293 C7060C000000 MOV COUNT,0H ; STATEMENT # 114 0299 8B5E04 MOV BX,[BP].STRING_ADD 029C 8B360C00 MOV SI,COUNT 02A0 8A00 MOV AL,[BX].ACTUAL_STRING[SI] 02A2 88061B00 MOV CHR,AL ; STATEMENT # 115 02A6 823E1B0000 CMP CHR,0H 02AB 7503 JNZ $+5H 02AD E94D00 JMP @21 ; STATEMENT # 116 @22: 02B0 823E1B0000 CMP CHR,0H 02B5 7503 JNZ $+5H 02B7 E94300 JMP @23 ; STATEMENT # 117 02BA 803E1B007B CMP CHR,7BH 02BF 18C0 SBB AL,AL 02C1 803E1B0060 CMP CHR,60H 02C6 B1FF MOV CL,0FFH 02C8 7701 JA $+3H 02CA 41 INC CX 02CB 22C1 AND AL,CL 02CD D1E8 SHR AX,1 02CF 7203 JB $+5H 02D1 E91000 JMP @24 ; STATEMENT # 118 02D4 8A061B00 MOV AL,CHR 02D8 80E820 SUB AL,20H 02DB 8B5E04 MOV BX,[BP].STRING_ADD 02DE 8B360C00 MOV SI,COUNT 02E2 8800 MOV [BX].ACTUAL_STRING[SI],AL ; STATEMENT # 119 @24: 02E4 8B060C00 MOV AX,COUNT 02E8 40 INC AX 02E9 89060C00 MOV COUNT,AX ; STATEMENT # 120 02ED 8B5E04 MOV BX,[BP].STRING_ADD 02F0 8B360C00 MOV SI,COUNT 02F4 8A00 MOV AL,[BX].ACTUAL_STRING[SI] 02F6 88061B00 MOV CHR,AL ; STATEMENT # 121 02FA E9B3FF JMP @22 @23: ; STATEMENT # 122 @21: 02FD 5D POP BP 02FE C20200 RET 2H UPPER ENDP PL/M-86 COMPILER PLM_LIB 09/18/90 15:18:36 PAGE 12 CROSS-REFERENCE LISTING DEFN ADDR SIZE NAME, ATTRIBUTES, AND REFERENCES ---- ------ ----- -------------------------------- 16 0000H 9 ACTUAL . . . . . . STRUCTURE BASED(PTR) IN PROC(GET_CLOCK) 17 18 0000H 2 YEAR . . . . . WORD 0002H 1 MONTH. . . . . BYTE 0003H 1 DAY. . . . . . BYTE 0004H 1 DOW. . . . . . BYTE 0005H 1 HOUR . . . . . BYTE 0006H 1 MINUTE . . . . BYTE 0007H 1 SECOND . . . . BYTE 0008H 1 CSECOND. . . . BYTE 61 0000H ACTUAL_STRING. . . BYTE BASED(STRING_ADD) ARRAY(*) IN PROC(PUT_STRING) 64 69 111 0000H ACTUAL_STRING. . . BYTE BASED(STRING_ADD) ARRAY(*) IN PROC(UPPER) 114 118* 120 27 0000H ACTUAL_STRING. . . BYTE BASED(STRING_ADD) ARRAY(*) IN PROC(GET_STRING) 49* 56* 3 0000H ASM_GET_CHR. . . . PROCEDURE BYTE EXTERNAL(0) STACK=0000H 32 8 0000H ASM_GET_DATE . . . PROCEDURE EXTERNAL(2) STACK=0000H 17 11 0000H ASM_GET_TIME . . . PROCEDURE EXTERNAL(3) STACK=0000H 18 5 0000H ASM_PUT_CHR. . . . PROCEDURE EXTERNAL(1) STACK=0000H 21 22 40 41 42 48 67 79 90 5 0000H 1 CHR. . . . . . . . BYTE IN PROC(ASM_PUT_CHR) PARAMETER 6 112 001BH 1 CHR. . . . . . . . BYTE IN PROC(UPPER) 114* 115 116 117 118 120* 28 0002H 2 CHR. . . . . . . . WORD IN PROC(GET_STRING) 30* 31 32* 33 35 48 49 62 000EH 1 CHR. . . . . . . . BYTE IN PROC(PUT_STRING) 64* 65 66 67 69* 62 0004H 2 COUNT. . . . . . . WORD IN PROC(PUT_STRING) 63* 64 68 68* 69 112 000CH 2 COUNT. . . . . . . WORD IN PROC(UPPER) 113* 114 118 119 119* 120 100 001AH 1 DIGITS . . . . . . BYTE IN PROC(GET_DEC_NUM) 101* 103 104 83 0010H 1 DIGITS . . . . . . BYTE IN PROC(PUT_DEC_NUM) 84* 88 92 92* 96 72 0004H 1 DIGITS . . . . . . BYTE IN PROC(PUT_HEX_NUM) PARAMETER AUTOMATIC 73 74 75 83 0008H 2 EXP. . . . . . . . WORD IN PROC(PUT_DEC_NUM) 85* 87 91 94 94* 14 0000H 19 GET_CLOCK. . . . . PROCEDURE PUBLIC STACK=0008H 98 0228H 103 GET_DEC_NUM. . . . PROCEDURE WORD PUBLIC STACK=000EH 24 0026H 172 GET_STRING . . . . PROCEDURE BYTE PUBLIC STACK=000AH 101 100 0019H 1 I. . . . . . . . . BYTE IN PROC(GET_DEC_NUM) 104* 104 105 106 83 0011H 1 I. . . . . . . . . BYTE IN PROC(PUT_DEC_NUM) 86* 86 88 95 73 0006H 2 I. . . . . . . . . INTEGER IN PROC(PUT_HEX_NUM) 75* 75 76 80 28 0000H 2 LENGTH . . . . . . WORD IN PROC(GET_STRING) 29* 37 39 39* 46 49 50 50* 55 55* 56 57 24 0004H 1 MAX_LEN. . . . . . BYTE IN PROC(GET_STRING) PARAMETER AUTOMATIC 26 46 20 0014H 17 NEW_LINE . . . . . PROCEDURE PUBLIC STACK=0006H 1 0000H PLM_LIB. . . . . . MODULE STACK=0000H 14 0004H 2 PTR. . . . . . . . POINTER IN PROC(GET_CLOCK) PARAMETER AUTOMATIC 15 16 17 18 11 0000H 2 PTR. . . . . . . . POINTER IN PROC(ASM_GET_TIME) PARAMETER 12 8 0000H 2 PTR. . . . . . . . POINTER IN PROC(ASM_GET_DATE) PARAMETER 9 82 0188H 160 PUT_DEC_NUM. . . . PROCEDURE BYTE PUBLIC STACK=0008H 72 0120H 104 PUT_HEX_NUM. . . . PROCEDURE PUBLIC STACK=000AH 59 00D2H 78 PUT_STRING . . . . PROCEDURE PUBLIC STACK=0008H SHR. . . . . . . . BUILTIN 76 99 0013H 6 STRING . . . . . . BYTE ARRAY(6) IN PROC(GET_DEC_NUM) 101 105 109 0004H 2 STRING_ADD . . . . POINTER IN PROC(UPPER) PARAMETER AUTOMATIC 110 111 114 118 120 59 0004H 2 STRING_ADD . . . . POINTER IN PROC(PUT_STRING) PARAMETER AUTOMATIC 60 61 64 69 24 0006H 2 STRING_ADD . . . . POINTER IN PROC(GET_STRING) PARAMETER AUTOMATIC 25 27 49 56 83 0012H 1 TEMP . . . . . . . BYTE IN PROC(PUT_DEC_NUM) 87* 88 90 91 73 000FH 1 TEMP . . . . . . . BYTE IN PROC(PUT_HEX_NUM) 76* 77 78 78* 79 2 TRUE . . . . . . . LITERALLY '01H' 109 0290H 113 UPPER. . . . . . . PROCEDURE PUBLIC STACK=0004H 100 000AH 2 VALUE. . . . . . . WORD IN PROC(GET_DEC_NUM) 102* 105 105* 107 82 0004H 2 VALUE. . . . . . . WORD IN PROC(PUT_DEC_NUM) PARAMETER AUTOMATIC 83 87 91 91* PL/M-86 COMPILER PLM_LIB 09/18/90 15:18:36 PAGE 13 CROSS-REFERENCE LISTING 72 0006H 2 VALUE. . . . . . . WORD IN PROC(PUT_HEX_NUM) PARAMETER AUTOMATIC 73 76 MODULE INFORMATION: CODE AREA SIZE = 0301H 769D CONSTANT AREA SIZE = 0000H 0D VARIABLE AREA SIZE = 001CH 28D MAXIMUM STACK SIZE = 000EH 14D 182 LINES READ 0 PROGRAM WARNINGS 0 PROGRAM ERRORS DICTIONARY SUMMARY: 416KB MEMORY AVAILABLE 6KB MEMORY USED (1%) 0KB DISK SPACE USED END OF PL/M-86 COMPILATION