PL/M-86 COMPILER SUBROUTINE MODULE - PART 1 10/5/81 PAGE 1 ISIS-II PL/M-86 V2.0 COMPILATION OF MODULE SUBR1 OBJECT MODULE PLACED IN SUBR1.OBJ COMPILER INVOKED BY: :F0: SUBR1.PLM DEBUG OPTIMIZE(2) DATE(10/5/81) PAGEWIDTH(100) XREF $title ('SUBROUTINE MODULE - PART 1') 1 subr1: do; $include (:f1:macro.lit) = $nolist /* modified 3/26/81 R. Silberstein */ /* compute if number is in range (-128,127) */ /* exit 1 if in range, 2 otherwise */ 3 1 typecalc: procedure(val) byte public; 4 2 declare val address, lowb byte at (.val), highb byte at (.val+1); 5 2 lowb=lowb and 80h; 6 2 if highb=0 then 7 2 if lowb=0 then return 1; 9 2 if highb=0ffh then 10 2 if lowb <> 0 then return 1; 12 2 return 2; 13 2 end typecalc; /* test if number is a "word" (>255 and <-256) */ 14 1 wrdtest: procedure(n) byte public; 15 2 declare n address; 16 2 return ((n < 0ff00h) and (n > 0ffh)); 17 2 end wrdtest; 18 1 copy: procedure(n,s,d) public; 19 2 declare n byte, (s,d) address, sch based s byte, dch based d byte; 20 2 DO WHILE (N := N - 1) <> 0FFH; 21 3 DCH = SCH; 22 3 D = D + 1; 23 3 S = S + 1; 24 3 END; 25 2 end copy; 26 1 end subr1; PL/M-86 COMPILER SUBROUTINE MODULE - PART 1 10/5/81 PAGE 2 CROSS-REFERENCE LISTING ----------------------- DEFN ADDR SIZE NAME, ATTRIBUTES, AND REFERENCES ----- ------ ----- -------------------------------- 2 ADDR . . . . . . . LITERALLY 18 0048H 37 COPY . . . . . . . PROCEDURE PUBLIC STACK=0008H 2 CR . . . . . . . . LITERALLY 18 0004H 2 D. . . . . . . . . WORD PARAMETER AUTOMATIC 19 21 22 19 0000H 1 DCH. . . . . . . . BYTE BASED(D) 21 2 DCL. . . . . . . . LITERALLY 2 ELSEDO . . . . . . LITERALLY 2 ENDCASE. . . . . . LITERALLY 2 ENDDO. . . . . . . LITERALLY 2 ENDFOREVER . . . . LITERALLY 2 ENDIF. . . . . . . LITERALLY 2 ENDMODULE. . . . . LITERALLY 2 ENDOFFILE. . . . . LITERALLY 2 ENDPROC. . . . . . LITERALLY 2 ENDWHILE . . . . . LITERALLY 2 FALSE. . . . . . . LITERALLY 2 FOREVER. . . . . . LITERALLY 2 FORMFEED . . . . . LITERALLY 4 0005H 1 HIGHB. . . . . . . BYTE AT AUTOMATIC 6 9 2 INIT . . . . . . . LITERALLY 2 LF . . . . . . . . LITERALLY 2 LIT. . . . . . . . LITERALLY 2 4 0004H 1 LOWB . . . . . . . BYTE AT AUTOMATIC 5 7 10 14 0004H 2 N. . . . . . . . . WORD PARAMETER AUTOMATIC 15 16 18 0008H 1 N. . . . . . . . . BYTE PARAMETER AUTOMATIC 19 20 2 PROC . . . . . . . LITERALLY 2 REENT. . . . . . . LITERALLY 18 0006H 2 S. . . . . . . . . WORD PARAMETER AUTOMATIC 19 21 23 19 0000H 1 SCH. . . . . . . . BYTE BASED(S) 21 2 SPACE. . . . . . . LITERALLY 2 STRUC. . . . . . . LITERALLY 1 0000H SUBR1. . . . . . . PROCEDURE STACK=0000H 2 TAB. . . . . . . . LITERALLY 2 THENDO . . . . . . LITERALLY 2 TRUE . . . . . . . LITERALLY 3 0000H 41 TYPECALC . . . . . PROCEDURE BYTE PUBLIC STACK=0004H 3 0004H 2 VAL. . . . . . . . WORD PARAMETER AUTOMATIC 4 14 0029H 31 WRDTEST. . . . . . PROCEDURE BYTE PUBLIC STACK=0006H MODULE INFORMATION: CODE AREA SIZE = 006DH 109D CONSTANT AREA SIZE = 0000H 0D VARIABLE AREA SIZE = 0000H 0D MAXIMUM STACK SIZE = 0008H 8D 80 LINES READ 0 PROGRAM ERROR(S) PL/M-86 COMPILER SUBROUTINE MODULE - PART 1 10/5/81 PAGE 3 END OF PL/M-86 COMPILATION