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 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL