mirror of
https://github.com/PDP-10/its.git
synced 2026-01-13 15:27:28 +00:00
110 lines
3.1 KiB
Plaintext
110 lines
3.1 KiB
Plaintext
;BODY/TYPE PROPERTY ROUTINES
|
||
|
||
;FPROP - FIND BODY DEF PROPERTY
|
||
;T = STRING PROPERTY NAME
|
||
;A = TYPE
|
||
;SKIP RETURNS
|
||
;T = PROPERTY BLOCK POINTER
|
||
; (TTT NOW CONTAINS STRING POINTER)
|
||
;FPROPX - FIND PROPERTY NAME IN LIST SUPPLIED
|
||
;TTT = BODY OR TYPE DEF PROPERTY LIST POINTER
|
||
;FNDDIP - FIND DIP TYPE
|
||
;A = BODY POINTER
|
||
;SKIP RETURNS
|
||
;T = DIPTYPE BLOCK POINTER
|
||
;BFPROP - FIND PROPERTY FOR BODY
|
||
;A = BODY POINTER
|
||
;T = STRING PROPERTY NAME
|
||
;SKIP RETURNS
|
||
;T = PROPERTY BLOCK POINTER
|
||
;SKIPS 1 IF FOUND IN BODY DEF (NO INDIRECT LIST IN BODY)
|
||
;SKIPS 2 IF FOUND IN BODY (INDIRECT OR DIRECT)
|
||
;PROPERTY NAME STRING IS RETURNED TO FS IF FOUND
|
||
;BFCPRP - FIND BODY OR BODY DEF PROPERTY BY CLOSEST MATCH NAME
|
||
;TTT = POINTER TO PROPERTY LIST
|
||
;T = RETURNS PROPERTY BLOCK OR INDIRECT POINTER
|
||
;MPROP - MAKE A PROPERTY BLOCK AND ADD TO TYPE DEF
|
||
;T = STRING PROPERTY NAME IN T
|
||
;A = TYPE
|
||
;RETURNS
|
||
;T = NEW BLOCK (WITH NO VALUE STRING YET)
|
||
;MAKTXT - MAKE TEXT/PROPERTY BLOCK, POINTER RETURNED IN TT
|
||
;FBTPTR - FIND INSTANCE OF PROPERTY/TEXT INDIRECT POINTER
|
||
;B = LAST BODY FOUND
|
||
;A = BODY DEF PROPERTY/TEXT BLOCK POINTER
|
||
;SKIP RETURNS
|
||
;B = NEW BODY
|
||
;(C = PREVIOUS)
|
||
; POINTER TO INDIRECT BLOCK IN D
|
||
;COPLTP - MAKE INDIRECT LIST TO BODY DEF TEXT/PROPERTIES
|
||
;A = BODY POINTER
|
||
;(IF E POINTS TO BODY DEF PROPERTY, IT IS CHANGED TO POINT TO INDIRECT BLOCK)
|
||
;RETURNS
|
||
;E = POSSIBLY UPDATED POINTER TO INDIRECT BLOCK
|
||
;T = PTR TO END OF LIST
|
||
;ASCCOP - MAKE INTERNAL FORMAT STRING FROM ASCIZ STRING
|
||
;TT = ASCIZ STRING POINTER
|
||
;RETURNS
|
||
;T = INTERNAL FORMAT STRING POINTER
|
||
;MERGEP - MERGE PROP LIST INTO BODY'S PROP LIST
|
||
;A = PTR TO BODY
|
||
;B = PROP LIST TO MERGE
|
||
;TXTREL - RELEASE PROPERTY LIST FROM TYPE OR BODY
|
||
; C = PROPERTY LIST
|
||
;CPYPRP - COPY CONTENTS OF ONE TEXT BLOCK ONTO ANOTHER
|
||
;A = SOURCE TEXT BLOCK
|
||
;B = DESTINATION "
|
||
;CMPBDY,CMPTYP - COMPILE PROPERTIES ON BODY OR TYPE
|
||
;A = BODY OR TYPE
|
||
;LH A = FLG -1 MEANS TYPE
|
||
;CMPIT - COMPILE PROPERTY FOR BODY OR TYPE
|
||
;A = BODY (0 LH) OR TYPE (-1 LH)
|
||
;B = PROPERTY
|
||
;FLSBDY, FLSTYP - DELETING PROPERTY, CHECK AND FLUSH MAYBE
|
||
;A = BODY OR TYPE
|
||
;B = PROP BEING FLUSHED
|
||
;VERPRP - CHECK BODY, TYPE FOR CONSISTENCY W.R.T. COMPILED SPECIAL PROPS
|
||
;A = BODY (0 IN LH), TYPE (-1 IN LH)
|
||
|
||
|
||
;;;;;;
|
||
CONBOX(E=POINT)
|
||
CONCAL(A=POINT)
|
||
CSLTLP(PIN#,,B-R-S)
|
||
|
||
CONNUM(E=POINT)
|
||
CSLTLP
|
||
|
||
CALCOF(E=POINT)
|
||
|
||
OFFCON
|
||
|
||
|
||
;;;;;
|
||
|
||
VERIFY X-COMMAND TO SEE IF PROP COMPILATIONS ARE CONSISTENT
|
||
|
||
CHECK FETCH-STORES
|
||
1) STARTING LOOP WITH "LOCATIVE" - ALL NXT TYPE
|
||
FETCHES ARE LEGAL IF THEY RESULT IN A PTR
|
||
THAT IS NULL, OR TO TYPE FETCHED.
|
||
2) BODY DELETE CAN CHANGE PINS INTO POINTS!
|
||
|
||
SOME THINGS ARE ASSOCIATED WITH DIPTYPE
|
||
WHICH MAY BE HUNG OFF OF BODIES, OR INHERITED FROM TYPES
|
||
- # OF SECTIONS
|
||
- # OF PINS DEFINED
|
||
DIP DEF LIST GIVING
|
||
- PIN NAME
|
||
- SECTION(S)
|
||
- SECTION PIN #
|
||
- PACKAGE TYPE
|
||
- # OF PINS IN PACKAGE
|
||
|
||
SETTING "DIPTYPE" PROP SHOULD CLEAR ALL DEFINITIONS
|
||
MAYBE LOOK TO SEE IF DIPTYPE IS IN CORE
|
||
GETDEF READS DIPS.DIP AND DEFINES INFO FOR TYPE, AND ALL BODIES WITH
|
||
THE SAME DIPTYPE
|
||
SETTING "PACKAGE" SHOULD OVERIDE PACKAGE DEF FROM DIPS.DIP
|
||
THATS WHAT TXBIT IS THERE FOR
|