perm filename NN[CAR,BGB] blob sn#016003 filedate 1972-12-20 generic text, type T, neo UTF8
00100	;WORD +0.
00200	   DEFINE TYPE  (Q,E)<CAR Q, 0(E)>↔DEFINE SERIAL(Q,E)<CDR Q, 0(E)>
00300	   DEFINE TYPE. (Q,E)<DIP Q, 0(E)>↔DEFINE SERIA.(Q,E)<DAP Q, 0(E)>
00400	
00500	;WORD +1.
00600	   DEFINE NFACE (Q,E)<CAR Q, 1(E)>↔DEFINE PFACE (Q,E)<CDR Q, 1(E)>
00700	   DEFINE NFACE.(Q,E)<DIP Q, 1(E)>↔DEFINE PFACE.(Q,E)<DAP Q, 1(E)>
00800	
00900	;WORD +2.
01000	   DEFINE NED   (Q,E)<CAR Q, 2(E)>↔DEFINE PED   (Q,E)<CDR Q, 2(E)>
01100	   DEFINE NED.  (Q,E)<DIP Q, 2(E)>↔DEFINE PED.  (Q,E)<DAP Q, 2(E)>
01200	
01300	;WORD +3.
01400	   DEFINE NVT   (Q,E)<CAR Q, 3(E)>↔DEFINE PVT   (Q,E)<CDR Q, 3(E)>
01500	   DEFINE NVT.  (Q,E)<DIP Q, 3(E)>↔DEFINE PVT.  (Q,E)<DAP Q, 3(E)>
01600	
01700	;WORD +4.
01800	   DEFINE NCW   (Q,E)<CAR Q, 4(E)>↔DEFINE PCW   (Q,E)<CDR Q, 4(E)>
01900	   DEFINE NCW.. (Q,E)<DIP Q, 4(E)>↔DEFINE PCW.. (Q,E)<DAP Q, 4(E)>
02000	
02100	;WORD +5.
02200	   DEFINE NCCW  (Q,E)<CAR Q, 5(E)>↔DEFINE PCCW  (Q,E)<CDR Q, 5(E)>
02300	   DEFINE NCCW..(Q,E)<DIP Q, 5(E)>↔DEFINE PCCW..(Q,E)<DAP Q, 5(E)>
02400	
02500	; NAMES OF NODE DATA WORDS.
02600	
02700		↓AA ←← ↓XWC ←← -3
02800		↓BB ←← ↓YWC ←← -2
02900		↓CC ←← ↓ZWC ←← -1
03000	
03100		↓QQ ←← 3
03200		↓KK ←← 4
03300	
03400		↓XPP ←← 4↔	↓YPP ←← 5↔	↓ZPP ←← 6
03500		↓IX←←0↔ 	↓IY←←1↔ 	↓IZ←←2
03600		↓JX←←3↔ 	↓JY←←4↔ 	↓JZ←←5
03700		↓KX←←6↔ 	↓KY←←7↔ 	↓KZ←←8
     

00100	; FETCH LINK FROM NODE.
00200	
00300	   DEFINE PART  (Q,E)<NIP Q,-3(E)>↔DEFINE COPART(Q,E)<NAP Q,-3(E)>
00400	   DEFINE EXTENT(Q,E)<CAR Q,-2(E)>↔DEFINE LOCOR (Q,E)<CDR Q,-2(E)>
00500	   DEFINE PNAME (Q,E)<CAR Q,-1(E)>↔DEFINE DISK  (Q,E)<CDR Q,-1(E)>
00600	   DEFINE FCNT  (Q,E)<CAR Q, 4(E)>↔DEFINE VCNT  (Q,E)<CDR Q, 4(E)>
00700	   DEFINE ECNT  (Q,E)<CAR Q, 5(E)>↔DEFINE PCNT  (Q,E)<CDR Q, 5(E)>
00800	   DEFINE NBODY (Q,E)<CAR Q, 6(E)>↔DEFINE PBODY (Q,E)<CDR Q, 6(E)>
00900	   DEFINE NUF   (Q,E)<CAR Q,-1(E)>↔DEFINE PUF   (Q,E)<CDR Q,-1(E)>
01000	   DEFINE NCNT  (Q,E)<NIP Q, 2(E)>↔DEFINE TJOINT(Q,E)<CDR Q, 1(E)>
01100	   DEFINE X1DC  (Q,E)<NIP Q,-3(E)>↔DEFINE Y1DC  (Q,E)<NAP Q,-3(E)>
01200	   DEFINE X2DC  (Q,E)<NIP Q,-2(E)>↔DEFINE Y2DC  (Q,E)<NAP Q,-2(E)>
01300	   DEFINE XDC   (Q,E)<HLLE Q,1(E)>↔DEFINE YDC   (Q,E)<HLLE Q,2(E)>
01400	   DEFINE ALT(Q,E)<CAR Q,6(E)>↔DEFINE ALT.(Q,E)<DIP Q,6(E)>
01500	
01600	
01700	; STORE LINK INTO NODE.
01800	
01900	   DEFINE PART. (Q,E)<DIP Q,-3(E)>↔DEFINE COPAR.(Q,E)<DAP Q,-3(E)>
02000	   DEFINE EXTEN.(Q,E)<DIP Q,-2(E)>↔DEFINE LOCOR.(Q,E)<DAP Q,-2(E)>
02100	   DEFINE PNAME.(Q,E)<DIP Q,-1(E)>↔DEFINE DISK. (Q,E)<DAP Q,-1(E)>
02200	   DEFINE FCNT. (Q,E)<DIP Q, 4(E)>↔DEFINE VCNT. (Q,E)<DAP Q, 4(E)>
02300	   DEFINE ECNT. (Q,E)<DIP Q, 5(E)>↔DEFINE PCNT. (Q,E)<DAP Q, 5(E)>
02400	   DEFINE NBODY.(Q,E)<DIP Q, 6(E)>↔DEFINE PBODY.(Q,E)<DAP Q, 6(E)>
02500	   DEFINE NUF.  (Q,E)<DIP Q,-1(E)>↔DEFINE PUF.  (Q,E)<DAP Q,-1(E)>
02600	   DEFINE NCNT. (Q,E)<DIP Q, 2(E)>↔DEFINE TJOIN.(Q,E)<DAP Q, 1(E)>
02700	   DEFINE X1DC. (Q,E)<DIP Q, 4(E)>↔DEFINE Y1DC. (Q,E)<DAP Q, 4(E)>
02800	   DEFINE X2DC. (Q,E)<DIP Q, 5(E)>↔DEFINE Y2DC. (Q,E)<DAP Q, 5(E)>
02900	   DEFINE XDC.  (Q,E)<STIP Q,1(E)>↔DEFINE YDC.  (Q,E)<STIP Q,2(E)>
     

00100	; PROPERTY-TYPE MACROS.
00200	
00300		DEFINE MARK(Q,BITS){
00400		SLACI(BITS) ↔ IORM (Q)}
00500	
00600		DEFINE MARKZ(Q,BITS){
00700		SLACI(BITS) ↔ ANDCAM (Q)}
00800	
00900		DEFINE TEST(Q,BITS){
01000		LAC(Q) ↔ TLNN(BITS)}
01100	
01200		DEFINE TESTZ(Q,BITS){
01300		LAC(Q) ↔ TLNE(BITS)}
01400	
01500	; PROPERTY-TYPE BITS.
01600	
01700		↓BBIT ←← 1B17
01800		↓FBIT ←← 1B16
01900		↓EBIT ←← 1B15
02000		↓VBIT ←← 1B14
02100	
02200		↓PZZ ←← 1B9
02300		↓NZZ ←← 1B10
02400	
02500		↓FOLDED ←← 1B11
02600		↓VISIBLE ←← 1B12
02700		↓POTENT ←← 1B13
02800		↓DARKEN ←← 1B3
02900	
03000		↓NORTH ←← 1B5
03100		↓SOUTH ←← 1B6
03200		↓EAST  ←← 1B7
03300		↓WEST  ←← 1B8
03400		↓NSEW  ←← 17B8
03500	
03600		DEFINE HIDE(Q){
03700		SLACI(3B13)↔ANDCAM(Q)}
03800	
03900		↓TEMPORARY ←← 1B2