File information: | |
File name: | Mesad.mu_Sep78.pdf [preview Mesad.mu Sep78] |
Size: | 929 kB |
Extension: | |
Mfg: | xerox |
Model: | Mesad.mu Sep78 🔎 |
Original: | Mesad.mu Sep78 🔎 |
Descr: | xerox mesa 4.0_1978 listing Mesa_4_Microcode Mesad.mu_Sep78.pdf |
Group: | Electronics > Other |
Uploaded: | 10-03-2020 |
User: | Anonymous |
Multipart: | No multipart |
Information about the files in archive: | ||
Decompress result: | OK | |
Extracted files: | 1 | |
File name Mesad.mu_Sep78.pdf Mesad.mu 2-Sep-78 17:21:54 Page 1 ,------------------------------------------------------------.---- , i Mesad.Mu - Xfer, State switching, process support, Nova interface ; Last modified by Levin - August 1, 1978 3:26 PM ;----------------------------------------------------------------. ;----------------------------------------------------------------- ; F ram e All 0 cat ion :----------------------------------------------------------------- ._-----------------.---------------------------------------------- , A110c subroutine: allocates a frame Entry conditions: frame size index (fsi) in T Exit conditions: frame pOinter in L, T, and frame if allocation fails, alternate return address is taken and temp2 is shifted left by 1 (for ALLOC) 11,2,AllocSub,ALLOClarge; for ALLOC byte code 11,2,ALLOCr,XferGr; subroutine returns 11,2,ALLOCrf,XferGrf; failure returns 13,4,AllocO,Allocl,Alloc2,Alloc3; dispatch on pointer flag if more than 2 callers, un-comment the following pre-definition: i 117,1,Allocx; shake IR~ dispatch AllocSub: L~avml+T+1, TASK, :A11ocx; fetch av entry Allocx: entry~L; save av entry address L~MAR~entry; T~3; mask for pointer flags L~MD AND T, T~MD; (L~MD AND 3, T~MD) temp~L, L~MAR~T; start reading pointer SINK~temp, BUS; branch on bits 14:15 frame~L, :A110cO; Bits 14:15 00, a frame of the right index is queued for allocation A1locO: L~MD, TASK; new entry for frame vector temp~L; new value of vector entry MAR~entry; update frame vector L~T~frame, IDISP; establish exit conditions MD~temp, :ALLOCr; update and return Bits 14:15 = 01, allocation list empty: restore argument, take failure return Allocl: L~temp2, IDISP, TASK, :Alloclx; restore parameter Alloclx: temp2~L LSH 1, :ALLOCrf; allocation failed , ; Bits 14:15 a 10, a pointer to an alternate list to use Alloc2: temp~L RSH 1, :Allocp; |
Date | User | Rating | Comment |