home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / apl / sharp / apdefna.pcc < prev    next >
Text File  |  1988-03-21  |  20KB  |  631 lines

  1. ; 1854339PC360:UTIL:APDEFNA.IPSN.PCC.8.18530. */
  2. ;/* ======================================= */
  3. ;/*                                         */
  4. ;/*  SHARP APL PC INTERRUPT DEFINITIONS.    */
  5. ;/*                                         */
  6. ;/* ======================================= */
  7. ;/*                                         */
  8. INTSFS   EQU 96
  9. ;#DEFINE INTSFS 96 /* FILE SYSTEM INTERRUPT               */
  10. INTSVP   EQU 97
  11. ;#DEFINE INTSVP 97 /* SHARED VARIABLE PROCESSOR INTERRUPT */
  12. INTPOST  EQU 98
  13. ;#DEFINE INTPOST 98 /* TASK POST INTERRUPT                */
  14. INTDISP  EQU 99
  15. ;#DEFINE INTDISP 99 /* ENTRY TO TASK DISPATCHER FROM LOW PRIORITY
  16. ;                      TASK ONLY */
  17. INTSHUT  EQU 100
  18. ;#DEFINE INTSHUT 100 /* TASK SHUTDOWN */
  19. ;/* ======================================= */
  20. ;/*                                         */
  21. ;/*  SHARP APL SVP/PC PERCMD DEFINITION     */
  22. ;/*                                         */
  23. ;/* ======================================= */
  24. ;/*                                         */
  25. PERCMD  STRUC
  26. ;STRUCT PERCMD
  27. ;{
  28. PCCMD     DB ?
  29. ; UNSIGNED CHAR  PCCMD ; /* SVP COMMAND*/
  30. PCFLAGS   DB ?
  31. ; UNSIGNED CHAR  PCFLAGS;/* COMMAND FLAGS: RESERVED: MUST BE 0 */
  32. PCP1      DD ?
  33. PCP2      DD ?
  34. PCP3      DD ?
  35. ; UNSIGNED LONG  PCP1,PCP2,PCP3; /* MAJOR PARAMETERS AND RESULTS */
  36. ;/*
  37. ;   SVP PERCMD CONTENTS:
  38. ;
  39. ;CMD       PCP1     PCP2    PCP3
  40. ;         IN   OUT  IN  OUT   IN  OUT
  41. ;
  42. ;
  43. ;SHARE    ASCV  -    -   DOC   -   -
  44. ;RETRACT  SCVPO -    -   DOC   -  CHRON
  45. ;USEINIT  SCVPO -    -   LEN   -   -
  46. ;
  47. ;USEDATA  SCVPO -   AVAL  -   LEN  -
  48. ;COPYDATA SCVPO -   AVAL  -   LEN  -
  49. ;SETINIT  SCVPO -    -   LEN   -   -
  50. ;
  51. ;SETDATA  SCVPO -   AVAL  -   LEN  -
  52. ;SEIZE    SCVPO -    -   LEN   -   -
  53. ;
  54. ;RELEASE  SCVPO -    -    -    -   -
  55. ;SVC      SCVPO -   ACV  CCV   -   -
  56. ;
  57. ;SVS      SCVPO -    -   CCV   -   -
  58. ;SCAN     ASCV  -    -    -    -   -
  59. ;SIGNON   APCV  -    -   PPI   -   -
  60. ;SIGNOFF  APCV  -    -    -    -   -
  61. ;RETRALL  APCV  -    -    -    -   -
  62. ;SETCLONE APCV  -   CID   -    -   -
  63. ;
  64. ;CONTENTS OF FIELDS:
  65. ;
  66. ;SCVPO:   PEROFFER INDEX, FROM SCVPO AS THE RESULT OF SHARE OR SCAN.
  67. ;APCV:    MAINSTORE ADDRESS OF PROCESSOR CONTROL VECTOR.
  68. ;ASCV:    MAINSTORE ADDRESS OF SHARE CONTROL VECTOR.
  69. ;ASV:     ACCESS STATE VECTOR.
  70. ;ACV:     ACCESS CONTROL VECTOR.
  71. ;PPI:     PERPROC INDEX ASSIGNED TO THIS PROCESSOR.
  72. ;AVAL:    MAINSTORE ADDRESS OF VALUE.
  73. ;CCV:     COMBINED ACCESS STATE VECTOR, ACCESS CONTROL VECTOR.
  74. ;CID:     NEW CLONEID.
  75. ;LEN:     LENGTH OF VALUE IN BYTES. IF LEN IS A RESULT, -1 INDICATES
  76. ;         NO VALUE AVAILABLE.
  77. ;CHRON:   CHRONOLOGY OF NEW OFFER.
  78. ;DOC:     PREVIOUS DEGREE OF COUPLING.
  79. ;*/
  80. PERCMD  ENDS
  81. ;} ;
  82. ;/*                                                                   */
  83. ;/*                                                                */
  84. ;/*       SHARED VARIABLE OPERATION CODES.                         */
  85. ;/*                                                                */
  86. ;/*                                                                */
  87. ;                     /* RETRACT ALL VARIABLES. USED ONLY BY APL   */
  88. SVPSVRA  EQU 2
  89. ;#DEFINE SVPSVRA 2
  90. ;                      /* SIGN ON.                           */
  91. SVPON    EQU 3
  92. ;#DEFINE SVPON   3
  93. ;                      /* SIGN OFF.                          */
  94. SVPOFF   EQU 4
  95. ;#DEFINE SVPOFF  4
  96. ;/*                                                          */
  97. ;                    /* SCAN FOR OFFERS.                     */
  98. SVPSVQ   EQU 5
  99. ;#DEFINE SVPSVQ  5
  100. ;                    /* SHARE.                               */
  101. SVPSVO   EQU 6
  102. ;#DEFINE SVPSVO  6
  103. ;                    /* RETRACT.                             */
  104. SVPSVR   EQU 7
  105. ;#DEFINE SVPSVR  7
  106. ;/*                                                          */
  107. ;                    /* SET ACCESS CONTROL.                  */
  108. SVPSVC   EQU 8
  109. ;#DEFINE SVPSVC  8
  110. ;                    /* RETURN ACCESS STATE (AND CONTROL VECTOR) */
  111. SVPSVS   EQU 9
  112. ;#DEFINE SVPSVS  9
  113. ;/*                                                          */
  114. ;                    /* USE INITIAL SELECTION.               */
  115. SVPUIS   EQU 10
  116. ;#DEFINE SVPUIS 10
  117. ;                    /* SET INITIAL SELECTION.               */
  118. SVPSIS   EQU 11
  119. ;#DEFINE SVPSIS 11
  120. ;                    /* COPY INITIAL SELECTION. (SEIZE).     */
  121. SVPCIS   EQU 12
  122. ;#DEFINE SVPCIS 12
  123. ;/*                                                          */
  124. ;                    /* USE DATA TRANSFER.                   */
  125. SVPUDT   EQU 13
  126. ;#DEFINE SVPUDT 13
  127. ;                    /* SET DATA TRANSFER.                   */
  128. SVPSDT   EQU 14
  129. ;#DEFINE SVPSDT 14
  130. ;                    /* COPY DATA TRANSFER.                  */
  131. SVPCDT   EQU 15
  132. ;#DEFINE SVPCDT 15
  133. ;                    /* NO DATA TRANSFER (RELEASE).          */
  134. SVPNDT   EQU 16
  135. ;#DEFINE SVPNDT 16
  136. ;/*                                                          */
  137. ;
  138. ;                    /* SET NEW CLONEID. USED ONLY BY APL.   */
  139. SVPCID   EQU 17
  140. ;#DEFINE SVPCID 17
  141. ;
  142. SVPMAX   EQU 17
  143. ;#DEFINE SVPMAX 17   /* MAXIMUM LEGAL SVP COMMAND */
  144. ;/*                                                                   */
  145. ;/*                                                                   */
  146. ;/*                                                                   */
  147. ;/*                                                                   */
  148. ;/*       SHARED VARIABLE PROCESSOR RETURN CODES...                   */
  149. ;/*                                                                   */
  150. ;/*       - RETURNED TO THE CALLING PROGRAM BY THE SSVP.              */
  151. ;/*                                                                   */
  152. ;                 /* VARIABLE IS AN OFFER (NO OTHER SHARER).   */
  153. SVZNOS   EQU 1
  154. ;#DEFINE SVZNOS 1
  155. ;/*                                                                   */
  156. ;/*       NOTE ...        SVZNOS OCCURS IN COMBINATION WITH OTHER     */
  157. ;/*                       RETURN CODES, IE, IF RELEVANT IT WILL BE    */
  158. ;/*                       ORED WITH THE ACTUAL COMPLETION CODE.       */
  159. ;/*                                                                   */
  160. ;                  /* REJECTION BECAUSE OF ACCESS CONTROL.  */
  161. SVZLOCK  EQU 0
  162. ;#DEFINE SVZLOCK 0
  163. ;                  /*TEMPORARY SETDATA REJECTION BECAUSE OF */
  164. ;/*                       INSUFFICIENT S.V. STORAGE. CONTROL RETAINED.*/
  165. SVZSVSF  EQU 2
  166. ;#DEFINE SVZSVSF 2
  167. ;                  /*USE, SET, OR COPY DATA TRANSFER INCORRECT*/
  168. SVZILI   EQU 4
  169. ;#DEFINE SVZILI 4
  170. ;                  /*SCAN, NO OFFERS FOUND.                   */
  171. SVZNOF   EQU 6
  172. ;#DEFINE SVZNOF 6
  173. ;                  /*NORMAL END - REQUEST COMPLETED SUCCESSFULLY.*/
  174. SVZNE    EQU 8
  175. ;#DEFINE SVZNE 8
  176. ;                  /*PROCESSOR ID IN USE.                        */
  177. SVZNIU   EQU 10
  178. ;#DEFINE SVZNIU 10
  179. ;                  /*PROCESSOR NOT SIGNED ON TO SVP.             */
  180. SVZNSO   EQU 12
  181. ;#DEFINE SVZNSO 12
  182. ;                  /*PROCESSOR ALREADY SIGNED ON WITH SAME ID.   */
  183. SVZASO   EQU 14
  184. ;#DEFINE SVZASO 14
  185. ;                  /*INVALID REQUEST SEQUENCE.                   */
  186. SVZIVS   EQU 16
  187. ;#DEFINE SVZIVS 16
  188. ;                  /*(USEINIT) NO VALUE AVAILABLE IN S.V.S.      */
  189. SVZNV    EQU 18
  190. ;#DEFINE SVZNV 18
  191. ;                  /*STORAGE PROTECTION EXCEPTION.               */
  192. SVZSPE   EQU 20
  193. ;#DEFINE SVZSPE 20
  194. ;                  /*SVP NOT AVAILABLE (NOT RUNNING).              */
  195. SVZNA    EQU 22
  196. ;#DEFINE SVZNA 22
  197. ;                  /*PERSHARE TABLE FULL.                          */
  198. SVZPSF   EQU 24
  199. ;#DEFINE SVZPSF 24
  200. ;                  /*PROCESSOR TABLE FULL.                         */
  201. SVZPPF   EQU 26
  202. ;#DEFINE SVZPPF 26
  203. ;                  /*VALUE TOO LARGE (WILL NEVER FIT).             */
  204. SVZVTL   EQU 28
  205. ;#DEFINE SVZVTL 28
  206. ;                  /*ARGUMENT ERROR DETECTED IN VALIDITY CHECK.    */
  207. SVZARG   EQU 30
  208. ;#DEFINE SVZARG 30
  209. ;                       /*MUST BE MAX/SVZCODES.                    */
  210. SVZMAX   EQU SVZARG
  211. ;#DEFINE SVZMAX SVZARG
  212. ;
  213. ;/* SVP DEGREES OF COUPLING */
  214. COUPLE0  EQU 0
  215. ;#DEFINE COUPLE0 0
  216. COUPLE1  EQU 1
  217. ;#DEFINE COUPLE1 1
  218. COUPLE2  EQU 2
  219. ;#DEFINE COUPLE2 2
  220. ;
  221. ;
  222. ;
  223. ;
  224. ;
  225. ;/* ============================================= */
  226. ;/*                                               */
  227. ;/*  SHARP APL SVP/PC PROCESSOR CONTROL VECTOR    */
  228. ;/*                                               */
  229. ;/* ============================================= */
  230. ;/*                                               */
  231. PERPCV  STRUC
  232. ;STRUCT PERPCV
  233. ;{
  234. ;/* PERSCV AND PERPCV ASSUME THAT ID,NID COME FIRST IN SAME FORMAT */
  235. PCVID     DD ?
  236. ; LONG  PCVID ;             /* PROCESSOR ID           */
  237. PCVNID    DD ?
  238. ; LONG  PCVNID;             /* CLONEID                */
  239. PCVPOST  DW ?
  240. ; UNSIGNED INT PCVPOST;     /* REASONS FOR POST       */
  241. ;/*                                                   */
  242. ;/* EXTENSION OF PCV     FOR TASK DISPATCHER FIELDS.  */
  243. ;/*                                                   */
  244. PCVTCS    DD ?
  245. ; UNSIGNED LONG  PCVTCS   ; /* CS:IP VALUE FOR TASK DISPATCH*/
  246. PCVTSS    DD ?
  247. ; UNSIGNED LONG  PCVTSS   ; /* SS:SP VALUE FOR TASK DISPATCH*/
  248. PCVTDS    DD ?
  249. ; UNSIGNED LONG  PCVTDS   ; /* DS:DX VALUE FOR TASK DISPATCH*/
  250. PCVTBP   DW ?
  251. ; UNSIGNED INT   PCVTBP   ; /*    BP VALUE FOR TASK DISPATCH*/
  252. PERPCV  ENDS
  253. ;} ;
  254. ;
  255. ;/*  PCVPOST VALUES. */
  256. ;                         /* END OF STORAGE WAIT */
  257. PERPWFS  EQU 1
  258. ;#DEFINE PERPWFS   1
  259. ;                         /* SHARE COMPLETED     */
  260. PERPSHAR EQU 2
  261. ;#DEFINE PERPSHAR  2
  262. ;                         /* RETRACTION          */
  263. PERPRETR EQU 4
  264. ;#DEFINE PERPRETR  4
  265. ;                         /* USE DATA            */
  266. PERPUSE  EQU 8
  267. ;#DEFINE PERPUSE   8
  268. ;                         /* SET DATA            */
  269. PERPSET  EQU 16
  270. ;#DEFINE PERPSET  16
  271. ;                         /* RELEASE             */
  272. PERPRELS EQU 32
  273. ;#DEFINE PERPRELS 32
  274. ;                         /* SET ACV             */
  275. PERPSACV EQU 64
  276. ;#DEFINE PERPSACV 64
  277. ;                         /* OFFER RECEIVED      */
  278. PERPOFFR EQU 128
  279. ;#DEFINE PERPOFFR 128
  280. ;/*
  281. ;   THE NEXT 4 BITS ARE RESERVED FOR USE BY AUXILIARY PROCESSORS.
  282. ;   THE SVP WILL NOT SET THESE BITS, NOT MAKE ANY USE OF THEM.
  283. ;   THEY ARE INTENDED FOR SIMPLE COMMUNICATION AMONG APS.
  284. ;*/
  285. ;                         /* AP POST BIT 0.      */
  286. PERPAP0  EQU 256
  287. ;#DEFINE PERPAP0  256
  288. ;                         /* AP POST BIT 1.      */
  289. PERPAP1  EQU 512
  290. ;#DEFINE PERPAP1  512
  291. ;                         /* AP POST BIT 2.      */
  292. PERPAP2  EQU 1024
  293. ;#DEFINE PERPAP2  1024
  294. ;                         /* AP POST BIT 3.      */
  295. PERPAP3  EQU 2048
  296. ;#DEFINE PERPAP3  2048
  297. ;                         /* AP SHUTDOWN BIT.    */
  298. PERPSHUT EQU 4096
  299. ;#DEFINE PERPSHUT 4096
  300. ;/* NEXT 3 BITS ARE RESERVED FOR FUTURE EXPANSION*/
  301. ;
  302. ;
  303. ;
  304. ;
  305. ;
  306. ;/* ======================================= */
  307. ;/*                                         */
  308. ;/*  SHARP APL SVP/PC PERSCV DEFINITION     */
  309. ;/*                                         */
  310. ;/* ======================================= */
  311. ;/*                                         */
  312. MAXPSN   EQU 11
  313. ;#DEFINE MAXPSN 11
  314. PERSCV  STRUC
  315. ;STRUCT PERSCV
  316. ;{
  317. SCVCOUNT  DD ?
  318. ; LONG  SCVCOUNT; /* BYTE COUNT OF VALUE, IF ANY        */
  319. SCVSOS   DW ?
  320. ; UNSIGNED INT SCVSOS; /* MUST BE 0 OR 1 */
  321. ;   /* IF 1, A SCAN OR SHARE ISSUED BY
  322. ;      THIS PROCESSOR WILL EXAMINE ONLY OFFERS
  323. ;      RESULTING FROM SHARE, AND WILL IGNORE OFFERS
  324. ;      RESULTING FROM RETRACT.
  325. ;      ALSO, THIS PROCESOR WILL NOT
  326. ;      RECOUPLE TO AN OFFER RESULTING FROM THIS
  327. ;      PROCESSOR RETRACTING. THE OTHER PROCESSOR
  328. ;      IS NOT AFFECTED, AND MAY RETRACT AND RESHARE,
  329. ;      UNLESS IT TOO SETS SCVSOS. */
  330. ;
  331. ;/* PPIDSRCH ASSUMES THAT ID,PID ARE IDENTICAL IN SCV,PCV */
  332. SCVID     DD ?
  333. ; LONG  SCVID  ;  /* PROCESSOR ID */
  334. SCVNID    DD ?
  335. ; LONG  SCVNID ;  /* CLONEID*/
  336. SCVALUE   DD ?
  337. ; UNSIGNED LONG  SCVALUE;  /* MAINSTORE ADDRESS OF VALUE, IF ANY */
  338. SCVCHRON  DD ?
  339. ; UNSIGNED LONG  SCVCHRON; /* CHRONOLOGY */
  340. SCVPO     DD ?
  341. ; UNSIGNED LONG  SCVPO   ; /* PEROFFER ASSOCIATED WITH THIS PERSCV.*/
  342. SCVOTHER  DD ?
  343. ; LONG  SCVOTHER; /* PROCESSOR ID OF PARTNER*/
  344. SCVNOTHR  DD ?
  345. ; LONG  SCVNOTHR; /* CLONE ID OF PARTNER */
  346. SCVNAMEL  DB ?
  347. ; UNSIGNED CHAR SCVNAMEL; /*LENGTH OF NAME, OR LONGEST ACCEPTABLE NAME*/
  348. ;                  /* MAXIMUM IDENTIFIER LENGTH */
  349. SCVNAME  DB MAXPSN  DUP(?)
  350. ; UNSIGNED CHAR  SCVNAME[MAXPSN]; /* NAME OF SHARED VARIABLE. IF FIRST
  351. ;                    CHARACTER IS BINARY 0, ANY NAME WILL MATCH.*/
  352. PERSCV  ENDS
  353. ;} ;
  354. ;/*APL CHARACTER EQUATES */
  355. QALPHA   EQU 42
  356. ;#DEFINE QALPHA   42
  357. QOMEGA   EQU 46
  358. ;#DEFINE QOMEGA   46
  359. QA       EQU 86
  360. ;#DEFINE QA       86
  361. QB       EQU 87
  362. ;#DEFINE QB       87
  363. QC       EQU 88
  364. ;#DEFINE QC       88
  365. QD       EQU 89
  366. ;#DEFINE QD       89
  367. QE       EQU 90
  368. ;#DEFINE QE       90
  369. QF       EQU 91
  370. ;#DEFINE QF       91
  371. QG       EQU 92
  372. ;#DEFINE QG       92
  373. QH       EQU 93
  374. ;#DEFINE QH       93
  375. QI       EQU 94
  376. ;#DEFINE QI       94
  377. QJ       EQU 95
  378. ;#DEFINE QJ       95
  379. QK       EQU 96
  380. ;#DEFINE QK       96
  381. QL       EQU 97
  382. ;#DEFINE QL       97
  383. QM       EQU 98
  384. ;#DEFINE QM       98
  385. QN       EQU 99
  386. ;#DEFINE QN       99
  387. QO       EQU 100
  388. ;#DEFINE QO       100
  389. QP       EQU 101
  390. ;#DEFINE QP       101
  391. QQ       EQU 102
  392. ;#DEFINE QQ       102
  393. QR       EQU 103
  394. ;#DEFINE QR       103
  395. QS       EQU 104
  396. ;#DEFINE QS       104
  397. QT       EQU 105
  398. ;#DEFINE QT       105
  399. QU       EQU 106
  400. ;#DEFINE QU       106
  401. QV       EQU 107
  402. ;#DEFINE QV       107
  403. QW       EQU 108
  404. ;#DEFINE QW       108
  405. QX       EQU 109
  406. ;#DEFINE QX       109
  407. QY       EQU 110
  408. ;#DEFINE QY       110
  409. QZ       EQU 111
  410. ;#DEFINE QZ       111
  411. QDELTA   EQU 112
  412. ;#DEFINE QDELTA   112
  413. ;
  414. QAU      EQU 113
  415. ;#DEFINE QAU      113
  416. QBU      EQU 114
  417. ;#DEFINE QBU      114
  418. QCU      EQU 115
  419. ;#DEFINE QCU      115
  420. QDU      EQU 116
  421. ;#DEFINE QDU      116
  422. QEU      EQU 117
  423. ;#DEFINE QEU      117
  424. QFU      EQU 118
  425. ;#DEFINE QFU      118
  426. QGU      EQU 119
  427. ;#DEFINE QGU      119
  428. QHU      EQU 120
  429. ;#DEFINE QHU      120
  430. QIU      EQU 121
  431. ;#DEFINE QIU      121
  432. QJU      EQU 122
  433. ;#DEFINE QJU      122
  434. QKU      EQU 123
  435. ;#DEFINE QKU      123
  436. QLU      EQU 124
  437. ;#DEFINE QLU      124
  438. QMU      EQU 125
  439. ;#DEFINE QMU      125
  440. QNU      EQU 126
  441. ;#DEFINE QNU      126
  442. QOU      EQU 127
  443. ;#DEFINE QOU      127
  444. QPU      EQU 128
  445. ;#DEFINE QPU      128
  446. QQU      EQU 129
  447. ;#DEFINE QQU      129
  448. QRU      EQU 130
  449. ;#DEFINE QRU      130
  450. QSU      EQU 131
  451. ;#DEFINE QSU      131
  452. QTU      EQU 132
  453. ;#DEFINE QTU      132
  454. QUU      EQU 133
  455. ;#DEFINE QUU      133
  456. QVU      EQU 134
  457. ;#DEFINE QVU      134
  458. QWU      EQU 135
  459. ;#DEFINE QWU      135
  460. QXU      EQU 136
  461. ;#DEFINE QXU      136
  462. QYU      EQU 137
  463. ;#DEFINE QYU      137
  464. QZU      EQU 138
  465. ;#DEFINE QZU      138
  466. QDELTAU  EQU 139
  467. ;#DEFINE QDELTAU  139
  468. ;
  469. Q0       EQU 140
  470. ;#DEFINE Q0       140
  471. Q1       EQU 141
  472. ;#DEFINE Q1       141
  473. Q2       EQU 142
  474. ;#DEFINE Q2       142
  475. Q3       EQU 143
  476. ;#DEFINE Q3       143
  477. Q4       EQU 144
  478. ;#DEFINE Q4       144
  479. Q5       EQU 145
  480. ;#DEFINE Q5       145
  481. Q6       EQU 146
  482. ;#DEFINE Q6       146
  483. Q7       EQU 147
  484. ;#DEFINE Q7       147
  485. Q8       EQU 148
  486. ;#DEFINE Q8       148
  487. Q9       EQU 149
  488. ;#DEFINE Q9       149
  489. QBLANK   EQU 152
  490. ;#DEFINE QBLANK   152
  491. QSEMIC   EQU 18
  492. ;#DEFINE QSEMIC    18
  493. ;/*=================================*/
  494. ;/*                                 */
  495. ;/*     ASDATA                      */
  496. ;/*     APL SHARED VARIABLE ARRAY   */
  497. ;/*                                 */
  498. ;/*=================================*/
  499. ;
  500. ;/*========================================*/
  501. ;/*                                        */
  502. ;/*     APL ARRAY OBJECT DEFINITION.       */
  503. ;/*     ALL FIELDS ARE 370 FORMAT.         */
  504. ;/*     SEE IBM SYSTEM/370 PRINCIPLES OF   */
  505. ;/*     OPERATION (GA22-7000) FOR DETAILS. */
  506. ;/*                                        */
  507. ;/*========================================*/
  508. ;
  509. ;
  510. ;/* NOTE THAT THE BYTE ORDERING OF THE SYSTEM/370 AND THE 8088 ARE   */
  511. ;/* REVERSED FROM ONE ANOTHER. THE 8088 STORES THE LOW-ORDER BYTE IN */
  512. ;/* THE LOWEST-NUMBERED STORAGE LOCATION, AND THE 370 STORES THE     */
  513. ;/* LOW-ORDER BYTE IN THE THE HIGHEST-NUMBERED STORAGE LOCATION.     */
  514. ;/* THIS MEANS THAT A FUNCTION MUST BE USED TO REVERSE THE ORDER OF  */
  515. ;/* BYTES AS THEY ARE STORED OR FETCHED INTO THE ASDATA ARRAY.       */
  516. ;
  517. ASDATA  STRUC
  518. ;STRUCT ASDATA
  519. ; {
  520. ASTYPE    DB ?
  521. ; CHAR ASTYPE;           /* TYPE OF APL OBJECT */
  522. ;
  523. MT2       DB ?
  524. ; CHAR MT2;              /* UNUSED. MUST BE 0  */
  525. ASRANK   DW ?
  526. ; SHORT ASRANK;          /* 4 * RANK OF OBJECT,*/
  527. ;                        /* BYTE COUNT OF SHAPE VECTOR WHICH FOLLOWS*/
  528. ;
  529. ;/* FOR EXAMPLE, A SCALAR HAS ASRANK OF 0, A VECTOR HAS ASRANK OF   */
  530. ;/* 4, AND A RANK-3 ARRAY HAS ASRANK OF 12.                         */
  531. ASSHAPE   DD ?
  532. ; LONG ASSHAPE;          /* SHAPE VECTOR, DATA FOLLOWS */
  533. ASDATA  ENDS
  534. ; }; /* END ASDATA */
  535. ;
  536. ; VALUE OF ASTYPE AND ITS MEANING:
  537. ;
  538. TYPB     EQU 1
  539. ;#DEFINE TYPB 1          /* ARRAY IS BOOLEAN   */
  540. TYPI     EQU 2
  541. ;#DEFINE TYPI 2          /* ARRAY IS INTEGER   */
  542. TYPF     EQU 3
  543. ;#DEFINE TYPF 3          /* ARRAY IS REAL      */
  544. TYPC     EQU 4
  545. ;#DEFINE TYPC 4          /* ARRAY IS CHARACTER */
  546. TYPP     EQU 5
  547. ;#DEFINE TYPP 5          /* ARRAY IS PACKAGE   */
  548. TYPA     EQU 6
  549. ;#DEFINE TYPA 6          /* ARRAY IS ENCLOSED  */
  550. TYPZ     EQU 7
  551. ;#DEFINE TYPZ 7          /* ARRAYS IS COMPLEX  */
  552. ;
  553. ;/* FORMAT OF ASDATA ENTRIES:                                         */
  554. ;
  555. ;/* ALL DATA ELEMENTS ARE STORED IN RAVEL ORDER. EACH DATA TYPE HAS   */
  556. ;/* A DIFFERENT NUMBER OF BITS PER ELEMENT:                           */
  557. ;
  558. ;/* DATA TYPE   NUMBER OF BITS PER ELEMENT
  559. ;
  560. ;   BOOLEAN     1
  561. ;   INTEGER     32
  562. ;   FLOATING    64
  563. ;   CHARACTER   8
  564. ;   PACKAGE     INDETERMINATE
  565. ;   ENCLOSED    INDETERMINATE
  566. ;   COMPLEX     128
  567. ;
  568. ;ALL ARRAYS ARE STORED LEFT-JUSTIFIED IN THE 370 WORD, AND ALL BYTE
  569. ;COUNTS MUST BE A MULTIPLE OF 4. THE LEFT-JUSTIFICATION IS ONLY
  570. ;EVIDENT IN BOOLEAN AND CHARACTER ARRAYS.
  571. ;
  572. ;BOOLEAN ARRAYS ARE STORED AS 1 BIT PER ELEMENT:
  573. ;ASSUME B IS THE BOOLEAN MATRIX: 3 4 RESHAPE 1 0 1 0 1 0 1 1 1 0 1 0.
  574. ;B LOOKS LIKE:
  575. ;         01 00 00 08     TYPE AND RANK
  576. ;         00 00 00 03     SHAPE VECTOR
  577. ;         00 00 00 04
  578. ;         AB A0 00 00     VALUE.
  579. ;
  580. ;INTEGER ARRAYS ARE STORED AS 4 BYTES PER ELEMENT:
  581. ;ASSUME B IS THE INTEGER SCALAR: 272.
  582. ;B LOOKS LIKE:
  583. ;         02 00 00 00    TYPE AND RANK
  584. ;         00 00 01 10    VALUE (NOTE NO SHAPE VECTOR).
  585. ;
  586. ;THE ARRAY IOTA 0 LOOKS LIKE:
  587. ;         02 00 00 04    TYPE AND RANK.
  588. ;         00 00 00 00    SHAPE.
  589. ;                        NOTE NO VALUE.
  590. ;
  591. ;FLOATING ARRAYS ARE STORED AS 8 BYTES PER ELEMENT:
  592. ;ASSUME B IS THE FLOATING POINT VECTOR 3 .5.
  593. ;B IS STORED IN 370 DOUBLE PRECISION FLOATING POINT FORMAT,
  594. ;AND LOOKS LIKE:
  595. ;
  596. ;         03 00 00 04    TYPE AND RANK
  597. ;         00 00 00 02    SHAPE VECTOR
  598. ;         41 30 00 00    VALUE
  599. ;         00 00 00 00
  600. ;         40 80 00 00
  601. ;         00 00 00 00
  602. ;
  603. ;NOTE THAT FLOATING AND COMPLEX VALUES MUST BE STORED IN NORMALIZED
  604. ;FORM, AND THAT ZEROS MUST BE TRUE ZEROS(8 BYTES OF 0), OR APL WILL
  605. ;PRODUCE INCORRECT RESULTS.
  606. ;ALSO, NOTE THAT S/370 FLOATING POINT IS NOT COMPATIBLE WITH
  607. ;IEEE FLOATING POINT. THEY AREN'T EVEN CLOSE.
  608. ;
  609. ;PACKAGE AND ENCLOSED DATA TYPES ARE NOT DESCRIBED IN THIS RELEASE OF
  610. ;SHARP APL/PC.
  611. ;
  612. ;COMPLEX ARRAYS ARE STORED AS 16 BYTES PER ELEMENT, AS PAIRS
  613. ;OF S/370 FLOATING POINT NUMBERS, REPRESENTING THE REAL AND IMAGINARY
  614. ;PARTS, RESPECTIVELY.
  615. ;ASSUME B IS THE COMPLEX SCALAR (-1)*.5.
  616. ;B LOOKS LIKE:
  617. ;
  618. ;         07 00 00 00    TYPE AND RANK
  619. ;         00 00 00 00    VALUE OF 0J1.
  620. ;         00 00 00 00
  621. ;         41 10 00 00
  622. ;         00 00 00 00
  623. ;
  624. ;NOTE THAT FLOATING AND COMPLEX VALUES MUST BE STORED IN NORMALIZED
  625. ;FORM, AND THAT ZEROS MUST BE TRUE ZEROS(8 BYTES OF 0), OR APL WILL
  626. ;PRODUCE INCORRECT RESULTS.
  627. ;ALSO, NOTE THAT S/370 FLOATING POINT IS NOT COMPATIBLE WITH
  628. ;IEEE FLOATING POINT. THEY AREN'T EVEN CLOSE.
  629. ;
  630. ;*/
  631.