File information: | |
File name: | DiskKD.mesa_Oct77.pdf [preview DiskKD.mesa Oct77] |
Size: | 136 kB |
Extension: | |
Mfg: | xerox |
Model: | DiskKD.mesa Oct77 🔎 |
Original: | DiskKD.mesa Oct77 🔎 |
Descr: | xerox mesa 3.0_1977 listing DiskKD.mesa_Oct77.pdf |
Group: | Electronics > Other |
Uploaded: | 15-02-2020 |
User: | Anonymous |
Multipart: | No multipart |
Information about the files in archive: | ||
Decompress result: | OK | |
Extracted files: | 1 | |
File name DiskKD.mesa_Oct77.pdf diskkd.mESA 24-0CT-77 18:19:56 Page 1 -- DiskKO.Mesa Edited by Sandman on August 23, 1977 9:42 PM DIRECTORY AltoOefs: FROM "altodefs", AltoFileDefs: FROM "altofiledefs", BootDefs: FROM "bootdefs", OirectoryOefs: FROM "directorydefs", DiskDefs: FROM "diskdefs", DiskKDDefs: FROM "diskkddefs", InlineOefs: FROM "inlinedefs", ImageDefs: FROM "imagedefs", SegmentDefs: FROM "segmentdefs": DEFINITIONS FROM AltoDefs, AltoFileOefs, SegmentOefs: OiskKD: PROGRAM IMPORTS BootOefs, Oirp~toryOefs, OiskOefs, ImageOefs, SegmentOefs EXPORTS OiskKOOefs : BEGIN InitializeOiskKD: PUBLIC PROCEDURE = BEGIN pages: PageCount: IF NDirectoryOefs.OirectoryLookup[@diskKO.file.fp, nameKO, FALSE] THEN SIGNAL FileNameError[nameKD]: MoveFileSegment[diskKD, OefaultBase, 1]: OpenOiskKO[]: OiskOefs.SetDisk[@kd.disk]: pages ~ (kd.size+PageSize-l)/PageSize: [] ~ CloseOiskKO[]: MoveFileSegment[diskKD, DefaultBase, pages]: RETURN END: OpenDiskKO: PROCEDURE = BEGIN IF NdiskKD.swappedin THEN BEGIN SwapIn[diskKD]: kd ~ FileSegmentAddress[diskKO]: kd.changed ~ 0: END ELSE swapKO.proc ~ CantSwap: RETURN END: UpdateOiskKD: PUBLIC PROCEDURE BEGIN IF diskKD.swappedin AND kd.changed#O THEN BEGIN diskKD.write ~ TRUE; SwapUp[diskKD]: diskKD.write ~ FALSE: kd.changed ~ 0: END: RETURN END: CloseOiskKO: PUBLIC PROCEDURE RETURNS [BOOLEAN] BEGIN IF NdiskKD.swappedin THEN RETURN[FALSf]: swapKO.proc ~ CantSwap; UpdateDiskKO[]: Un10ck[diskKD]: SwapOut[diskKO]: RETURN[TRUE] END: CleanupDiskKD: PUBLIC ImageDefs.C1eanupProcedure BEGIN SElECT why FROM Finish. Abort. OutLd =) [ ] ~ CloseDiskKD[]: Save =) We depend on MakeImage to call C10seDiskKO when il has finished allocating the image file pages. Logically. il should also call ResetOisk at this lime. but it can't do that unli1 lhe Reslore. Reslore =) diskkd.mESA 24-0CT-77 18:19:66 Page 2 We depend on MakeImage to call InitializeDiskKD as soon as the image file starts up so that the Real to Virtual disk address map can be set up. ENDCASE: RETURN END: AllOnes: WORD = 1777778: NewSN: PUBLIC PROCEDURE RETURNS [sn:SN] = BEGIN OpenDiskKD[]: IF (kd. lastSN.part2 ~ kd.lastSN.part2+1) = 0 THEN kd. lastSN.partl ~ kd.lastSN.partl+l: sn ~ kd.lastSN: kd.changed ~ AllOnes: swapKD.proc ~ CloseDiskKD: RETURN END: BitAddress: TYPE = RECORD [word:[0 .. 7777B). bit:[0 .. 17B]]: DiskFull: PUBLIC SIGNAL = CODE: AssignDiskPage: PUBLIC PROCEDURE [da:vDA] RETURNS [vDA] = BEGIN OPEN InlineDefs: oneb it: WORD: ba. wa: CARDINAL: w: POINTER TO WORD: base: BitAddress LOO |
Date | User | Rating | Comment |