-- JaMVMDefs.mesa -- Written by Martin Newell, January 1979 -- Last changed by Doug Wyatt, March 29, 1980 1:53 PM JaMVMDefs: DEFINITIONS = BEGIN JaMVM: PROGRAM; -- InitializeVM must be called before any other procedure InitializeVM: PROCEDURE[filename: STRING, nPages,nbuffers: CARDINAL] ; -- Clear and initialize VM to page from file filename, not to -- exceed nPages, using nbuffers buffers RestartVM: PROCEDURE[filename: STRING, nPages,nbuffers: CARDINAL] RETURNS[restarted: BOOLEAN]; -- Initialize VM to page from file filename, not to exceed nPages, -- using nbuffers buffers. -- Returns state of file, TRUE meaning file already existed and -- FALSE meaning that a new file was created. -- If file existed then allocation pointers are restored. FlushVM: PROCEDURE; -- Write up page buffers and deallocate them CheckVM: PROCEDURE; -- Write up page buffers and deallocate them AllocateWordsVM: PROCEDURE[length: CARDINAL] RETURNS[location: LONG POINTER]; -- Allocate length words in Virtual memory -- Generates VMFull: AllocateCharsVM: PROCEDURE[length: CARDINAL] RETURNS[location: LONG POINTER, offset: CARDINAL]; -- Allocate length chars in Virtual memory -- Generates VMFull: GetWordVM: PROCEDURE[VMAddr: LONG POINTER, index: CARDINAL] RETURNS[value: WORD]; -- Get a word from VM address VMAddr+index -- Generates VMBadPointer: GetCharVM: PROCEDURE[VMAddr: LONG POINTER, offset: CARDINAL, index: CARDINAL] RETURNS[char: CHARACTER]; -- Get a character from VM address VMAddr -- Generates VMBadPointer: PutWordVM: PROCEDURE[value: WORD, VMAddr: LONG POINTER, index: CARDINAL]; -- Put value to VM address VMAddr+index -- Generates VMBadPointer: PutCharVM: PROCEDURE[char: CHARACTER, VMAddr: LONG POINTER, offset: CARDINAL, index: CARDINAL]; -- Put a character to VM address VMAddr -- Generates VMBadPointer: GetWordsVM: PROCEDURE[VMAddr: LONG POINTER, realAddr: POINTER, nwords: CARDINAL]; -- Copy nwords words from VM address VMAddr to actual memory address realAddr -- Generates VMBadPointer: GetCharsVM: PROCEDURE[VMAddr: LONG POINTER, VMOffset: CARDINAL, realAddr: POINTER, realOffset: CARDINAL, nchars: CARDINAL]; -- Copy nchars chars from VM address VMAddr to actual memory address realAddr -- Generates VMBadPointer: PutWordsVM: PROCEDURE[VMAddr: LONG POINTER, realAddr: POINTER, nwords: CARDINAL]; -- Copy nwords words from actual memory to VM -- Generates VMBadPointer: PutCharsVM: PROCEDURE[VMAddr: LONG POINTER, VMOffset: CARDINAL, realAddr: POINTER, realOffset: CARDINAL, nchars: CARDINAL]; -- Copy nchars chars from actual memory to VM -- Generates VMBadPointer: -- SIGNALS VMBadPointer: ERROR; VMFull: ERROR; VMFileProblem: ERROR; END. DKW March 27, 1980 6:25 PM added JaMVM: PROGRAM; (648)\117b10B22b5B71b12B163b9B352b7B59b7B59b15B129b15B147b9B145b9B166b9B133b9B156b10B179b10B221b10B147b10B201b12B9b6B9b13B