home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / LANGUAGS / PASCAL-P / PP319DOC.LBR / APPENDC.MZN / APPENDC.MAN
Text File  |  2000-06-30  |  10KB  |  296 lines

  1. .macro chttl = Compilation#with#codelisting
  2. .ahd .chttl
  3. .sav .rm 100 .asis
  4.   This is the sole operator input for this example
  5.   --------------------------------------------------------------
  6. B>job pascpcd typetext.pas nul typetext.pcd typetext.pcd con 128
  7. JOB V1.2
  8.  
  9. B>; PcdCompile source listing pcd tic codelist options
  10. B>; For unsegmented programs with no intrinsic/external calls.
  11. B>; Use "NUL" for any unwanted files
  12. B>; Tic may later be used to create assembly source with ASSMAP.
  13. B>; Tic and pcd may be identical to save disk space
  14. B>;   since assmpcd does not use pcd until tic has been read.
  15. B>; Set options 128 for listing on assmpcd listing
  16. B>;   (8 bit compiles for 16 bit machine(HP3000) with increasing stack)
  17. B>;   (16 bit forces RBM format output on pcd)
  18. B>RUNPCD pascalp (TYPETEXT.PAS,NUL,TYPETEXT.PCD);[128]
  19.  
  20.  
  21. PascalP system Ver. 2.3.0 Copyright (C) 1982
  22. CP/M installation rev. 2.3
  23. PASCALP (pasctext, pasclist, prr, ef, output); V 3.1.0
  24.  
  25. NO. ERRORS=0 WARNINGS=0 Program size(pcode bytes)=288
  26.  
  27. Exit Pascal system, Max heap use @9F0C
  28. B>RUNPCD assmpcd (TYPETEXT.PCD,TYPETEXT.PCD,CON);[128]
  29.  
  30.  
  31. PascalP system Ver. 2.3.0 Copyright (C) 1982
  32. CP/M installation rev. 2.3
  33. ASSMPCD (assmtext, rbmfile, listfile, output) Ver. 1.1.8
  34. ;    1000     0:d   PROGRAM typetext(kbd, input, output);
  35. ;    2000     0:d   (* Modification of "EXPAND" to paginate to crts    *)
  36. ;    3000     0:d   (* and wrap over-long lines into multiple lines.   *)
  37. ;    4000     0:d   (* Converts textfiles, replacing indention codes   *)
  38. ;    5000     0:d   (* by spaces.       dle, ' '+i represents i spaces *)
  39. ;    6000     0:d   (* Revised 14 July 83 to handle the sequences      *)
  40. ;    7000     0:d   (*   dle eoln     and     dle code eoln            *)
  41. ;    8000     0:d   (* both are mapped into simply eoln.  This avoids  *)
  42. ;    9000     0:d   (* anomolies generated by a UCSD format editor.    *)
  43. ;   10000     0:d   (* Assumes no non-printing characters in input     *)
  44. ;   11000     0:d
  45. ;   12000     0:d     LABEL 1;
  46. 0006              PGM  TYPETEXT
  47. ;   13000     0:d
  48. ;   14000     0:d     CONST
  49. ;   15000     0:d       dle      = 16;
  50. ;   16000     0:d       pagesize = 24;   (* lines *)
  51. ;   17000     0:d       linesize = 80;   (* columns *)
  52. ;   18000     0:d
  53. ;   19000     0:d     VAR
  54. ;   20000     0:d       c        : char;
  55. ;   21000     1:d       linenum,
  56. ;   22000     1:d       column   : integer;
  57. ;   23000     5:d       kbd      : text; (* for continue/terminate control only *)
  58. ;   24000   191:d
  59. ;   25000   191:d   (*$n-,d- No runtime checks or linenos for speed *)
  60. ;   26000   191:d
  61. ;   27000   191:d     (* 1--------------1 *)
  62. ;   28000   191:d
  63. ;   29000   191:d     PROCEDURE pause;
  64. ;   30000     0:d
  65. ;   31000     0:d       BEGIN (* pause *)
  66. 0006              FWD  PAUSE
  67. ;   32000     0: 2      IF eof(kbd) THEN terminate
  68. 0006              PRO  PAUSE
  69. 0006              NTR  PAUSE
  70.                  PAUSE:
  71. 0006 F70000       ENT  1,@5
  72. 0009 66FF41       LAO  191
  73. 000C F00C         EOF
  74. 000E F8FFF0       FJP  @6
  75. ;   33000    11: 4      ELSE readln(kbd);
  76. 0011 F025         CSP  TRM
  77. 0013              PAR  0
  78. 0013 FAFFEB       UJP  @7
  79.                  @6:
  80. 0016 66FF41       LAO  191
  81. 0019 F01B         CSP  RLN
  82. 001B              PAR  1
  83.                  @7:
  84. ;   34000    21: 2      linenum := 1;
  85. 001B 01           LDCI 1
  86. 001C 73FFFB       STOI 5
  87. ;   35000    25: 2      END; (* pause *)
  88. 001F 00F6         RET  0
  89.                 @5=0
  90.  
  91. ;   36000    27: 2
  92. ;   37000    27: 2    (* 1--------------1 *)
  93. ;   38000    27: 2
  94. ;   39000    27: 2    PROCEDURE linewrap;
  95. ;   40000    27: 2
  96. ;   41000    27: 2      BEGIN (* linewrap *)
  97. 0021              FWD  LINEWRAP
  98. ;   42000     0: 2      IF column > linesize THEN BEGIN (* linewrap *)
  99. 0021              PRO  LINEWRAP
  100. 0021              NTR  LINEWRAP
  101.                  LINEWRAP:
  102. 0021 F70000       ENT  1,@9
  103. 0024 7BFFFD       LDOI 3
  104. 0027 50           LDCI 80
  105. 0028 CB           GRTI
  106. 0029 F8FFD5       FJP  @10
  107. ;   43000    11: 4        column := 1; linenum := succ(linenum);
  108. 002C 01           LDCI 1
  109. 002D 73FFFD       STOI 3
  110. 0030 7BFFFB       LDOI 5
  111. 0033 E0           INCI 1
  112. 0034 73FFFB       STOI 5
  113. ;   44000    22: 4        IF linenum > pagesize THEN pause;
  114. 0037 7BFFFB       LDOI 5
  115. 003A 18           LDCI 24
  116. 003B CB           GRTI
  117. 003C F8FFC2       FJP  @11
  118. 003F F301         CGP  1,PAUSE
  119.                  @11:
  120. ;   45000    32: 4        writeln; END;
  121. 0041 7A000C       LDOA -12
  122. 0044 F01D         CSP  WLN
  123. 0046              PAR  1
  124.                  @10:
  125. ;   46000    37: 2      END; (* linewrap *)
  126. 0046 00F6         RET  0
  127.                 @9=0
  128.  
  129. ;   47000    39: 2
  130. ;   48000    39: 2    (* 1--------------1 *)
  131. ;   49000    39: 2
  132. ;   50000    39: 2    BEGIN (* typetext *)
  133. ;   51000     0: 1    reset(kbd); linenum := 1; column := 1;
  134. 0048 F027         MAI  TYPETEXT
  135.                  TYPETEXT:
  136. 004A F70000       ENT  1,@13
  137. 004D 01           LDCI 1
  138. 004E 01           LDCI 1
  139. 004F 5D86         LDCI 134
  140. 0051 0C           LDCI 12
  141. 0052 5C084B424420
  142. 0058 20202020     LCA  'KBD     '
  143. 005C 08AA         MVS  8
  144. 005E 66FF41       LAO  191
  145. 0061 F026         CSP  FIN
  146. 0063              PAR  9
  147. 0063 66FF41       LAO  191
  148. 0066 00           LDCA NIL
  149. 0067 F019         CSP  RES
  150. 0069              PAR  2
  151. 0069 01           LDCI 1
  152. 006A 73FFFB       STOI 5
  153. 006D 01           LDCI 1
  154. 006E 73FFFD       STOI 3
  155. ;   52000    41: 1    WHILE NOT eof DO BEGIN
  156.                  @14:
  157. 0071 7A000A       LDOA -10
  158. 0074 F00C         EOF
  159. 0076 EC           NOT
  160. 0077 F8FF87       FJP  @15
  161. ;   53000    50: 3      WHILE NOT eoln DO BEGIN
  162.                  @16:
  163. 007A 7A000A       LDOA -10
  164. 007D F00B         CSP  ELN
  165. 007F              PAR  0
  166. 007F EC           NOT
  167. 0080 F8FF7E       FJP  @17
  168. ;   54000    59: 5        read(c);
  169. 0083 66FFFF       LAO  1
  170. 0086 7A000A       LDOA -10
  171. 0089 F016         CSP  RDC
  172. 008B              PAR  2
  173. ;   55000    67: 5        WHILE c = chr(dle) DO BEGIN
  174.                  @18:
  175. 008B 79FFFF       LDOC 1
  176. 008E 10           LDCI 16
  177. 008F B1           EQUC
  178. 0090 F8FF6E       FJP  @19
  179. ;   56000    75: 7          IF NOT eoln THEN read(c);
  180. 0093 7A000A       LDOA -10
  181. 0096 F00B         CSP  ELN
  182. 0098              PAR  0
  183. 0098 EC           NOT
  184. 0099 F8FF65       FJP  @20
  185. 009C 66FFFF       LAO  1
  186. 009F 7A000A       LDOA -10
  187. 00A2 F016         CSP  RDC
  188. 00A4              PAR  2
  189.                  @20:
  190. ;   57000    92: 7          IF eoln THEN GOTO 1 (* dle eoln & dle code eoln -> eoln *)
  191. 00A4 7A000A       LDOA -10
  192. 00A7 F00B         CSP  ELN
  193. 00A9              PAR  0
  194. 00A9 F8FF55       FJP  @21
  195. 00AC FAFF52       UGO  @3
  196. ;   58000   103: 9          ELSE BEGIN
  197. 00AF FAFF4F       UJP  @22
  198.                  @21:
  199. ;   59000   106: 9            IF c > ' ' THEN BEGIN
  200. 00B2 79FFFF       LDOC 1
  201. 00B5 20           LDCC ' '
  202. 00B6 C9           GRTC
  203. 00B7 F8FF47       FJP  @23
  204. ;   60000   114:11              write(' ' : ord(c)-ord(' '));
  205. 00BA 20           LDCC ' '
  206. 00BB 79FFFF       LDOC 1
  207. 00BE 20           LDCC ' '
  208. 00BF A0           SBI
  209. 00C0 7A000C       LDOA -12
  210. 00C3 F01F         CSP  WRC
  211. 00C5              PAR  3
  212. ;   61000   125:11              column := column + ord(c) - ord(' '); END;
  213. 00C5 7BFFFD       LDOI 3
  214. 00C8 79FFFF       LDOC 1
  215. 00CB 9E           ADI
  216. 00CC 20           LDCC ' '
  217. 00CD A0           SBI
  218. 00CE 73FFFD       STOI 3
  219.                  @23:
  220. ;   62000   137: 9            read(c); END;
  221. 00D1 66FFFF       LAO  1
  222. 00D4 7A000A       LDOA -10
  223. 00D7 F016         CSP  RDC
  224. 00D9              PAR  2
  225.                  @22:
  226. ;   63000   145: 7          END;
  227. 00D9 FEB1         UJS  @18
  228.                  @19:
  229. ;   64000   147: 5        write(c); column := succ(column);
  230. 00DB 79FFFF       LDOC 1
  231. 00DE 01           LDCI 1
  232. 00DF 7A000C       LDOA -12
  233. 00E2 F01F         CSP  WRC
  234. 00E4              PAR  3
  235. 00E4 7BFFFD       LDOI 3
  236. 00E7 E0           INCI 1
  237. 00E8 73FFFD       STOI 3
  238. ;   65000   163: 5        IF (column > linesize) AND NOT eoln THEN linewrap; END;
  239. 00EB 7BFFFD       LDOI 3
  240. 00EE 50           LDCI 80
  241. 00EF CB           GRTI
  242. 00F0 7A000A       LDOA -10
  243. 00F3 F00B         CSP  ELN
  244. 00F5              PAR  0
  245. 00F5 EC           NOT
  246. 00F6 EF           AND
  247. 00F7 F8FF07       FJP  @24
  248. 00FA F302         CGP  0,LINEWRAP
  249.                  @24:
  250. 00FC FE7D         UJS  @16
  251.                  @17:
  252. ;   66000   182: 3  1:  readln; column := 1; linenum := succ(linenum);
  253.                  @3:
  254. 00FE 7A000A       LDOA -10
  255. 0101 F01B         CSP  RLN
  256. 0103              PAR  1
  257. 0103 01           LDCI 1
  258. 0104 73FFFD       STOI 3
  259. 0107 7BFFFB       LDOI 5
  260. 010A E0           INCI 1
  261. 010B 73FFFB       STOI 5
  262. ;   67000   198: 3      IF linenum > pagesize THEN pause;
  263. 010E 7BFFFB       LDOI 5
  264. 0111 18           LDCI 24
  265. 0112 CB           GRTI
  266. 0113 F8FEEB       FJP  @25
  267. 0116 F301         CGP  0,PAUSE
  268.                  @25:
  269. ;   68000   208: 3      writeln; END;
  270. 0118 7A000C       LDOA -12
  271. 011B F01D         CSP  WLN
  272. 011D              PAR  1
  273. 011D FE53         UJS  @14
  274.                  @15:
  275. ;   69000   215: 1    END. (* typetext *)
  276. 011F 66FF41       LAO  191
  277. 0122 F00A         CSP  CLO
  278. 0124              PAR  1
  279. 0124 F024         STP
  280.                 @13=192
  281.  
  282. 0126              END
  283. 0126 FEFAFEDDFF1D
  284. 012C 02
  285.  
  286.   0 TYPETEXT       0048 global
  287.   1 PAUSE          0006 global
  288.   2 LINEWRAP       0021 global
  289. EXECUTABLE Code size (bytes) is 301 = 012D (hex)
  290.  
  291. Exit Pascal system, Max heap use @6E7E
  292. B>era temp0001.$$$
  293. B>
  294. !
  295. .res
  296. `