| 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 |