|
|
DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3014 (0xbc6)
Types: TextFile
Names: »MEMDIF.S«
└─⟦702f7c703⟧ Bits:30005114 8" CR80 Floppy CR80FD_0073 ( CR/D/2402 SWELL VOL: CRD2402 810715 )
└─⟦a734f5976⟧
└─⟦this⟧ »MEMDIF.S«
;«ff»
;------------------------------------------------------------------------
;
; FILE: MEMDIF.S
; --------------
;
;------------------------------------------------------------------------
; THE FUNCTIONS ARE INVOKED BY SENDING A SYSTEM MESSAGE TO THE MMM.
; THE SMALLEST UNIT OF ALLOCATABLE MEMORY IS CALLED A SEGMENT. THE SIZE
; OF A SEGMENT IS:
MSGSZLN:= 8 ;9 LOG 2 OF SEGMENT SIZE
MSGSZ:= 1<MSGSZLN ;9 SEGMENT SIZE (128 WORDS)
;
; THE FORMAT OF A MESSAGE IS:
AX=0
MMOPER:= AX, AX=AX+1 ; OPERATION
; MESSAGE PARAMETER MMOPER SPECIFIES THE OPERATION:
BX=AX
AX=0
RELEASE:= AX, AX=AX+1 ; RELEASE MEMORY
RESERVE:= AX, AX=AX+1 ; ALLOCATE MEMORY
CONVERT:= AX, AX=AX+1 ; CONVERT ADDRESS
RELEASEALL:=AX, AX=AX+1 ; RELEASE ALL MEMORY
TRANSFER:= AX, AX=AX+1 ; TRANSFER MEMORY OWNERSHIP
ALLCAP:= AX, AX=AX+1 ;C RETURN SEGMENT STATUS
ALLSTA:= AX, AX=AX+1 ;C RETURN SEGMENT STATUS
AX=BX
MMMEM:= AX ; MEMORY= (RELEASE)
MMTYPE:= AX, AX=AX+1 ; TYPE: (ALLOCATE)
PGTYPE:= 0 ; PROGRAM MEMORY TYPE
DTTYPE:= 1 ; DATA MEMORY TYPE
DPTYPE:= 2 ;C DATA MEMORY TYPE
;C (SPECIFIED SECTION)
MMNEW:= AX ; NEW OWNER (TRANSFER)
MMSIZE:= AX, AX=AX+1 ; SIZE IN WORDS (ALLOCATE)
MMCPU:= AX, AX=AX+1 ; CPU REQUIRED(LOGICAL ID)
; (ALLOCATE)
MMRANGE:= AX ;9 RANGE IN WHICH TO ALLOCATE.
;9 THIS MEANS THAT THE AREA MUST
;9 BE ALLOCATED IN THE RANGE
;9 LOWER BYTE *4K..UPPER BYTE*4K
;C
;C TYPE WORD LAYOUT:
;C
MTYPES:=0,MTYPEX:=8 ;C TYPEFIELD
MPAGES:=8,MPAGEX:=2 ;C PAGEFIELD (OPTYPE ONLY)
; THE MMM RETURNS AN ANSWER WITH THE FOLLOWING FORMAT:
AX=0
MARESULT:= AX, AX=AX+1 ; RESULT
MAMEM:= AX, AX=AX+1 ; MEMORY PARAMETER
MATINDXP:=0 ; TABLE INDEX
MATINDXL:=18-MSGSZLN ;
MASGMTP:= MATINDXL ; #SEGMENTS-1
MASGMTL:= 16-MASGMTP ;
MAADR:= AX, AX=AX+1 ; ADDRESS OF FIRST LOCATION
MAPGCPU:= AX, AX=AX+1 ; PAGE (LOWER BYTE) AND CPU (UPP
; ER BYTE)
MASIZE:= AX, AX=AX+1 ; SIZE
;C
;C IN THE CASE COMMAND= ALLCAP OR ALLSTA THE ANSWER WILL CONTAIN THE
;C NUMBER OF WRITEABLE/AVAILABLE MEMORY SEGMENTS RESPECTIVELY IN THE
;C ANSWER PARAMETERS 1,2,3 AND 4 CORRESPONDING TO PAGE 0,1,2 AND 3.
;C «a5»