DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Hard and Floppy Disks

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Hard and Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦1470bebfb⟧ TextFile

    Length: 3014 (0xbc6)
    Types: TextFile
    Names: »MEMDIF.S«

Derivation

└─⟦702f7c703⟧ Bits:30005114 8" CR80 Floppy CR80FD_0073 ( CR/D/2402 SWELL VOL: CRD2402 810715 )
    └─⟦a734f5976⟧ 
        └─ ⟦this⟧ »MEMDIF.S« 

TextFile

;«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»