_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

PAM+DIR.DOC

FILE INFORMATION

FILENAME(S): PAM+DIR.DOC

FILE TYPE(S): PRG

FILE SIZE: 1.4K

FIRST SEEN: 2025-11-30 16:59:22

APPEARS ON: 1 disk(s)

FILE HASH

27425e1630a1a246bb8105f63932b35503a2a3ae5bbc43bd1eaa595f9f5949fc

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
ASTERIX PAM+DIR.DOC PRG High Voltage Complete C64 Collection 20 5 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 20 20 20 20 20 20 20 44  49 52 20 61 6E 64 20 50  |       DIR and P|
00000010: 41 4D 20 74 61 62 6C 65  20 66 6F 72 6D 61 74 73  |AM table formats|
00000020: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000030: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000040: 20 20 20 20 20 20 31 38  2F 32 2F 31 39 39 31 0D  |      18/2/1991.|
00000050: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000060: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000070: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000080: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000090: 20 20 20 20 20 20 20 20  20 20 50 6F 6C 61 72 0D  |          Polar.|
000000A0: 50 41 4D 20 28 50 61 67  65 20 61 6C 6C 6F 63 61  |PAM (Page alloca|
000000B0: 74 69 6F 6E 20 6D 61 70  29 20 2D 2D 20 44 65 74  |tion map) -- Det|
000000C0: 65 72 6D 69 6E 65 73 20  74 68 65 20 73 74 61 74  |ermines the stat|
000000D0: 75 73 20 6F 66 20 6D 65  6D 6F 72 79 20 70 61 67  |us of memory pag|
000000E0: 65 73 20 77 72 74 20 74  6F 20 74 68 65 0D 20 20  |es wrt to the.  |
000000F0: 20 52 61 6D 64 72 69 76  65 20 28 32 35 36 20 62  | Ramdrive (256 b|
00000100: 79 74 65 73 2C 20 24 32  30 30 30 2D 24 32 30 46  |ytes, $2000-$20F|
00000110: 46 29 20 54 68 65 20 6F  66 66 73 65 74 20 66 72  |F) The offset fr|
00000120: 6F 6D 20 24 32 30 30 30  20 69 73 20 74 68 65 20  |om $2000 is the |
00000130: 70 61 67 65 6E 75 6D 62  65 72 0D 20 20 20 54 68  |pagenumber.   Th|
00000140: 65 20 76 61 6C 75 65 20  69 73 20 74 68 65 20 73  |e value is the s|
00000150: 74 61 74 75 73 20 6F 66  20 74 68 65 20 70 61 67  |tatus of the pag|
00000160: 65 2E 0D 20 20 20 20 20  20 20 30 3A 20 20 55 6E  |e..       0:  Un|
00000170: 61 76 61 69 62 6C 65 0D  20 20 20 20 20 20 20 31  |avaible.       1|
00000180: 3A 20 20 41 76 61 69 6C  62 6C 65 20 26 20 75 6E  |:  Availble & un|
00000190: 75 73 65 64 0D 20 20 20  20 20 20 20 32 3A 20 20  |used.       2:  |
000001A0: 4C 61 73 74 2D 70 61 67  65 2D 6F 66 2D 61 2D 66  |Last-page-of-a-f|
000001B0: 69 6C 65 0D 61 6E 79 74  68 69 6E 67 20 65 6C 73  |ile.anything els|
000001C0: 65 3A 20 4C 69 6E 6B 20  74 6F 20 74 68 65 20 6E  |e: Link to the n|
000001D0: 65 78 74 20 70 61 67 65  20 69 6E 20 61 20 66 69  |ext page in a fi|
000001E0: 6C 65 0D 0D 65 67 3A 20  43 68 65 63 6B 20 69 66  |le..eg: Check if|
000001F0: 20 24 38 30 30 30 2D 24  38 37 46 46 20 69 73 20  | $8000-$87FF is |
00000200: 75 73 65 64 20 62 79 20  74 68 65 20 72 61 6D 64  |used by the ramd|
00000210: 72 69 76 65 20 62 65 66  6F 72 65 20 75 73 69 6E  |rive before usin|
00000220: 67 20 55 44 47 73 20 69  6E 20 74 68 61 74 20 61  |g UDGs in that a|
00000230: 72 65 61 0D 0D 63 68 6B  55 44 47 20 6C 64 78 20  |rea..chkUDG ldx |
00000240: 23 24 38 30 0D 6C 6F 6F  70 31 20 20 6C 64 61 20  |#$80.loop1  lda |
00000250: 50 41 4D 2C 78 0D 20 20  20 20 20 20 20 63 6D 70  |PAM,x.       cmp|
00000260: 20 23 32 0D 20 20 20 20  20 20 20 62 63 73 20 75  | #2.       bcs u|
00000270: 73 65 64 0D 20 20 20 20  20 20 20 69 6E 78 0D 20  |sed.       inx. |
00000280: 20 20 20 20 20 20 63 70  78 20 23 24 38 38 0D 20  |      cpx #$88. |
00000290: 20 20 20 20 20 20 62 6E  65 20 6C 6F 6F 70 31 0D  |      bne loop1.|
000002A0: 20 20 20 20 20 20 20 6A  6D 70 20 6C 6F 61 64 55  |       jmp loadU|
000002B0: 44 47 73 0D 75 73 65 64  20 20 20 6A 6D 70 20 66  |DGs.used   jmp f|
000002C0: 6F 72 67 65 74 69 74 0D  0D 0D 0D 0D 44 49 52 20  |orgetit.....DIR |
000002D0: 46 4F 52 4D 41 54 0D 20  20 20 54 68 65 20 44 49  |FORMAT.   The DI|
000002E0: 52 20 28 44 69 72 65 63  74 6F 72 79 20 74 61 62  |R (Directory tab|
000002F0: 6C 65 29 20 63 6F 6E 74  61 69 6E 73 20 39 36 20  |le) contains 96 |
00000300: 72 65 63 6F 72 64 73 20  6F 66 20 33 32 20 62 79  |records of 32 by|
00000310: 74 65 73 20 6C 65 6E 67  74 68 20 65 61 63 68 2E  |tes length each.|
00000320: 0D 0D 4F 66 66 73 65 74  20 77 69 74 68 69 6E 20  |..Offset within |
00000330: 20 50 75 72 70 6F 73 65  0D 72 65 63 6F 72 64 0D  | Purpose.record.|
00000340: 20 20 20 20 20 20 20 30  20 20 20 20 20 20 20 50  |       0       P|
00000350: 61 72 65 6E 74 20 44 49  52 20 66 6E 75 6D 0D 20  |arent DIR fnum. |
00000360: 20 20 20 20 20 20 31 20  20 20 20 20 20 20 53 74  |      1       St|
00000370: 61 72 74 69 6E 67 20 70  61 67 65 20 6F 66 20 66  |arting page of f|
00000380: 69 6C 65 0D 20 20 20 20  20 32 2C 33 20 20 20 20  |ile.     2,3    |
00000390: 20 20 20 4C 65 6E 67 74  68 20 6F 66 20 66 69 6C  |   Length of fil|
000003A0: 65 20 28 6C 6F 2C 68 69  29 0D 20 20 20 20 20 20  |e (lo,hi).      |
000003B0: 20 34 20 20 20 20 20 20  20 50 72 6F 74 65 63 74  | 4       Protect|
000003C0: 69 6F 6E 20 62 79 74 65  20 28 73 65 65 20 62 65  |ion byte (see be|
000003D0: 6C 6F 77 29 0D 20 20 20  20 35 2D 32 30 20 20 20  |low).    5-20   |
000003E0: 20 20 20 20 4E 61 6D 65  20 28 31 36 20 63 68 61  |    Name (16 cha|
000003F0: 72 73 2C 20 70 61 64 64  65 64 20 77 69 74 68 20  |rs, padded with |
00000400: 73 70 61 63 65 73 2C 20  6C 65 66 74 20 6A 75 73  |spaces, left jus|
00000410: 74 69 66 69 65 64 29 0D  20 20 20 32 32 2C 32 33  |tified).   22,23|
00000420: 20 20 20 20 20 20 20 46  69 6C 65 20 70 6F 69 6E  |       File poin|
00000430: 74 65 72 20 74 6F 20 63  75 72 72 65 6E 74 20 63  |ter to current c|
00000440: 68 61 72 20 77 68 65 6E  20 66 69 6C 65 20 6F 70  |har when file op|
00000450: 65 6E 65 64 0D 20 20 20  20 20 20 32 34 20 20 20  |ened.      24   |
00000460: 20 20 20 20 4F 70 65 6E  2D 66 69 6C 65 2D 6D 6F  |    Open-file-mo|
00000470: 64 65 0D 0D 0D 50 52 4F  54 45 43 54 49 4F 4E 20  |de...PROTECTION |
00000480: 42 59 54 45 20 46 4F 52  4D 41 54 20 2D 20 42 79  |BYTE FORMAT - By|
00000490: 74 65 20 34 20 6F 66 20  44 49 52 20 72 65 63 6F  |te 4 of DIR reco|
000004A0: 72 64 0D 0D 42 69 74 20  20 37 20 20 36 20 20 35  |rd..Bit  7  6  5|
000004B0: 20 20 34 20 20 33 20 20  32 20 20 31 20 20 30 0D  |  4  3  2  1  0.|
000004C0: 20 20 20 20 20 AD 40 40  B1 40 40 BD 20 20 7E 20  |     .@@.@@.  ~ |
000004D0: 20 AD AE 20 7E 20 20 7E  20 20 7E 0D 20 20 20 20  | .. ~  ~  ~.    |
000004E0: 20 55 6E 75 73 65 64 20  20 B0 52 65 61 64 5D 20  | Unused  .Read] |
000004F0: 5D 20 20 AD 40 40 B1 40  B2 20 30 30 20 3D 20 44  |]  .@@.@. 00 = D|
00000500: 65 6C 2F 75 6E 75 73 65  64 0D 20 20 20 20 20 20  |el/unused.      |
00000510: 20 20 20 20 20 20 20 5D  20 20 20 B0 BD 20 5D 20  |       ]   .. ] |
00000520: 20 45 6E 74 72 79 AB 20  30 31 20 3D 20 44 69 72  | Entry. 01 = Dir|
00000530: 65 63 74 6F 72 79 0D 20  20 20 20 20 20 20 20 20  |ectory.         |
00000540: 20 20 20 20 AB 57 72 69  74 65 20 5D 20 20 74 79  |    .Write ]  ty|
00000550: 70 65 20 AB 20 31 30 20  3D 20 55 6E 64 65 66 69  |pe . 10 = Undefi|
00000560: 6E 65 64 0D 20 20 55 73  65 72 20 61 63 63 65 73  |ned.  User acces|
00000570: 73 B3 20 20 20 20 20 20  5D 20 20 20 20 20 20 20  |s.      ]       |
00000580: AD 20 31 31 20 3D 20 46  69 6C 65 0D 20 20 20 20  |. 11 = File.    |
00000590: 20 20 20 20 20 20 20 20  20 AD 45 78 69 63 75 74  |         .Exicut|
000005A0: 65 0D                                             |e.              |
       DIR AND PAM TABLE FORMATS        
                              18/2/1991.
                                        
                                  POLAR.
PAM (PAGE ALLOCATION MAP) -- DETERMINES 
THE STATUS OF MEMORY PAGES WRT TO THE.  
 RAMDRIVE (256 BYTES, $2000-$20FF) THE O
FFSET FROM $2000 IS THE PAGENUMBER.   TH
E VALUE IS THE STATUS OF THE PAGE..     
  0:  UNAVAIBLE.       1:  AVAILBLE & UN
USED.       2:  LAST-PAGE-OF-A-FILE.ANYT
HING ELSE: LINK TO THE NEXT PAGE IN A FI
LE..EG: CHECK IF $8000-$87FF IS USED BY 
THE RAMDRIVE BEFORE USING UDGS IN THAT A
REA..CHKUDG LDX #$80.LOOP1  LDA PAM,X.  
     CMP #2.       BCS USED.       INX. 
      CPX #$88.       BNE LOOP1.       J
MP LOADUDGS.USED   JMP FORGETIT.....DIR 
FORMAT.   THE DIR (DIRECTORY TABLE) CONT
AINS 96 RECORDS OF 32 BYTES LENGTH EACH.
..OFFSET WITHIN  PURPOSE.RECORD.       0
       PARENT DIR FNUM.       1       ST
ARTING PAGE OF FILE.     2,3       LENGT
H OF FILE (LO,HI).       4       PROTECT
ION BYTE (SEE BELOW).    5-20       NAME
 (16 CHARS, PADDED WITH SPACES, LEFT JUS
TIFIED).   22,23       FILE POINTER TO C
URRENT CHAR WHEN FILE OPENED.      24   
    OPEN-FILE-MODE...PROTECTION BYTE FOR
MAT - BYTE 4 OF DIR RECORD..BIT  7  6  5
  4  3  2  1  0.     .@@.@@.  ~  .. ~  ~
  ~.     UNUSED  .READ] ]  .@@.@. 00 = D
EL/UNUSED.             ]   .. ]  ENTRY. 
01 = DIRECTORY.             .WRITE ]  TY
PE . 10 = UNDEFINED.  USER ACCESS.      
]       . 11 = FILE.             .EXICUT
E.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL