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

PLSTCBMD

FILE INFORMATION

FILENAME(S): PLSTCBMD

FILE TYPE(S): SEQ

FILE SIZE: 1022b

FIRST SEEN: 2025-11-02 16:30:33

APPEARS ON: 1 disk(s)

FILE HASH

e5b08a3b1a33cce0d8dad43939722d3c9055b9fa2e03f2e65587df2db2be7e03

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
UTILITIES 2 A PLSTCBMD SEQ Treasure Chest - OzzyC64 11 3 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 50 52 4F 47 52 41 4D 20  50 43 36 34 4C 43 42 4D  |PROGRAM PC64LCBM|
00000010: 44 28 4C 49 53 54 20 43  42 4D 20 44 49 52 45 43  |D(LIST CBM DIREC|
00000020: 54 4F 52 59 5B 43 36 34  20 56 45 52 53 49 4F 4E  |TORY[C64 VERSION|
00000030: 5D 2C 31 32 2F 31 39 2F  38 32 29 3B 0D 0D 43 4F  |],12/19/82);..CO|
00000040: 4E 53 54 20 53 54 41 54  55 53 41 44 44 52 45 53  |NST STATUSADDRES|
00000050: 53 3D 24 30 30 39 30 3B  0D 20 20 20 20 20 20 44  |S=$0090;.      D|
00000060: 49 53 4B 55 4E 49 54 3D  38 3B 0D 0D 56 41 52 20  |ISKUNIT=8;..VAR |
00000070: 44 4F 4E 45 3A 20 42 4F  4F 4C 45 41 4E 3B 0D 20  |DONE: BOOLEAN;. |
00000080: 20 20 20 43 48 3A 20 43  48 41 52 3B 0D 20 20 20  |   CH: CHAR;.   |
00000090: 20 43 4F 55 4E 54 3A 20  49 4E 54 45 47 45 52 3B  | COUNT: INTEGER;|
000000A0: 0D 20 20 20 20 4E 41 4D  45 3A 20 53 54 52 49 4E  |.    NAME: STRIN|
000000B0: 47 3B 0D 20 20 20 20 44  49 52 3A 20 54 45 58 54  |G;.    DIR: TEXT|
000000C0: 3B 0D 0D 46 55 4E 43 54  49 4F 4E 20 47 45 54 4E  |;..FUNCTION GETN|
000000D0: 55 4D 42 45 52 3A 20 49  4E 54 45 47 45 52 3B 0D  |UMBER: INTEGER;.|
000000E0: 20 20 56 41 52 20 43 48  2C 20 4C 4F 3A 20 43 48  |  VAR CH, LO: CH|
000000F0: 41 52 3B 0D 20 20 20 20  20 20 49 3A 20 49 4E 54  |AR;.      I: INT|
00000100: 45 47 45 52 3B 0D 20 20  42 45 47 49 4E 0D 20 20  |EGER;.  BEGIN.  |
00000110: 20 20 49 3A 3D 30 3B 0D  20 20 20 20 44 4F 4E 45  |  I:=0;.    DONE|
00000120: 3A 3D 46 41 4C 53 45 3B  0D 20 20 20 20 52 45 50  |:=FALSE;.    REP|
00000130: 45 41 54 0D 20 20 20 20  20 20 49 3A 3D 49 2B 31  |EAT.      I:=I+1|
00000140: 3B 0D 20 20 20 20 20 20  52 45 41 44 28 44 49 52  |;.      READ(DIR|
00000150: 2C 43 48 29 3B 0D 20 20  20 20 20 20 49 46 20 4D  |,CH);.      IF M|
00000160: 45 4D 5B 53 54 41 54 55  53 41 44 44 52 45 53 53  |EM[STATUSADDRESS|
00000170: 5D 3C 3E 24 30 30 0D 20  20 20 20 20 20 20 20 20  |]<>$00.         |
00000180: 20 54 48 45 4E 20 44 4F  4E 45 3A 3D 54 52 55 45  | THEN DONE:=TRUE|
00000190: 3B 0D 20 20 20 20 20 20  49 46 20 49 3D 33 0D 20  |;.      IF I=3. |
000001A0: 20 20 20 20 20 20 20 20  20 54 48 45 4E 20 4C 4F  |         THEN LO|
000001B0: 3A 3D 43 48 3B 0D 20 20  20 20 20 20 49 46 20 49  |:=CH;.      IF I|
000001C0: 3D 34 0D 20 20 20 20 20  20 20 20 20 20 54 48 45  |=4.          THE|
000001D0: 4E 20 47 45 54 4E 55 4D  42 45 52 3A 3D 4F 52 44  |N GETNUMBER:=ORD|
000001E0: 28 43 48 29 2A 32 35 36  2B 4F 52 44 28 4C 4F 29  |(CH)*256+ORD(LO)|
000001F0: 0D 20 20 20 20 55 4E 54  49 4C 20 28 49 3D 34 29  |.    UNTIL (I=4)|
00000200: 20 4F 52 20 44 4F 4E 45  0D 20 20 45 4E 44 3B 0D  | OR DONE.  END;.|
00000210: 0D 42 45 47 49 4E 0D 20  20 52 45 53 45 54 28 44  |.BEGIN.  RESET(D|
00000220: 49 52 2C 44 49 53 4B 55  4E 49 54 2C 39 36 2C 27  |IR,DISKUNIT,96,'|
00000230: 24 30 27 29 3B 0D 20 20  52 45 41 44 28 44 49 52  |$0');.  READ(DIR|
00000240: 2C 43 48 2C 43 48 29 3B  0D 20 20 52 45 50 45 41  |,CH,CH);.  REPEA|
00000250: 54 0D 20 20 20 20 44 4F  4E 45 3A 3D 46 41 4C 53  |T.    DONE:=FALS|
00000260: 45 3B 0D 20 20 20 20 43  4F 55 4E 54 3A 3D 47 45  |E;.    COUNT:=GE|
00000270: 54 4E 55 4D 42 45 52 3B  0D 20 20 20 20 49 46 20  |TNUMBER;.    IF |
00000280: 4E 4F 54 20 44 4F 4E 45  0D 20 20 20 20 20 20 20  |NOT DONE.       |
00000290: 20 54 48 45 4E 20 42 45  47 49 4E 0D 20 20 20 20  | THEN BEGIN.    |
000002A0: 20 20 20 20 20 20 20 20  20 20 20 4E 41 4D 45 3A  |           NAME:|
000002B0: 3D 27 27 3B 0D 20 20 20  20 20 20 20 20 20 20 20  |='';.           |
000002C0: 20 20 20 20 52 45 41 44  28 44 49 52 2C 43 48 29  |    READ(DIR,CH)|
000002D0: 3B 0D 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |;.              |
000002E0: 20 52 45 50 45 41 54 0D  20 20 20 20 20 20 20 20  | REPEAT.        |
000002F0: 20 20 20 20 20 20 20 20  20 49 46 20 4D 45 4D 5B  |         IF MEM[|
00000300: 53 54 41 54 55 53 41 44  44 52 45 53 53 5D 3C 3E  |STATUSADDRESS]<>|
00000310: 24 30 30 0D 20 20 20 20  20 20 20 20 20 20 20 20  |$00.            |
00000320: 20 20 20 20 20 20 20 20  20 54 48 45 4E 20 44 4F  |         THEN DO|
00000330: 4E 45 3A 3D 54 52 55 45  3B 0D 20 20 20 20 20 20  |NE:=TRUE;.      |
00000340: 20 20 20 20 20 20 20 20  20 20 20 4E 41 4D 45 3A  |           NAME:|
00000350: 3D 43 4F 4E 43 41 54 28  4E 41 4D 45 2C 43 48 29  |=CONCAT(NAME,CH)|
00000360: 3B 0D 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |;.              |
00000370: 20 20 20 52 45 41 44 28  44 49 52 2C 43 48 29 0D  |   READ(DIR,CH).|
00000380: 20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 55  |               U|
00000390: 4E 54 49 4C 20 43 48 3D  24 30 30 3B 0D 20 20 20  |NTIL CH=$00;.   |
000003A0: 20 20 20 20 20 20 20 20  20 20 20 20 57 52 49 54  |            WRIT|
000003B0: 45 4C 4E 28 27 20 27 2C  43 4F 55 4E 54 2C 27 20  |ELN(' ',COUNT,' |
000003C0: 27 2C 4E 41 4D 45 29 0D  20 20 20 20 20 20 20 20  |',NAME).        |
000003D0: 20 20 20 20 20 45 4E 44  0D 20 20 55 4E 54 49 4C  |     END.  UNTIL|
000003E0: 20 44 4F 4E 45 3B 0D 20  20 57 52 49 54 45 4C 4E  | DONE;.  WRITELN|
000003F0: 0D 45 4E 44 2E 0D 03 FF  00 00 43 4F 4D 37        |.END......COM7  |
PROGRAM PC64LCBMD(LIST CBM DIRECTORY[C64
 VERSION],12/19/82);..CONST STATUSADDRES
S=$0090;.      DISKUNIT=8;..VAR DONE: BO
OLEAN;.    CH: CHAR;.    COUNT: INTEGER;
.    NAME: STRING;.    DIR: TEXT;..FUNCT
ION GETNUMBER: INTEGER;.  VAR CH, LO: CH
AR;.      I: INTEGER;.  BEGIN.    I:=0;.
    DONE:=FALSE;.    REPEAT.      I:=I+1
;.      READ(DIR,CH);.      IF MEM[STATU
SADDRESS]<>$00.          THEN DONE:=TRUE
;.      IF I=3.          THEN LO:=CH;.  
    IF I=4.          THEN GETNUMBER:=ORD
(CH)*256+ORD(LO).    UNTIL (I=4) OR DONE
.  END;..BEGIN.  RESET(DIR,DISKUNIT,96,'
$0');.  READ(DIR,CH,CH);.  REPEAT.    DO
NE:=FALSE;.    COUNT:=GETNUMBER;.    IF 
NOT DONE.        THEN BEGIN.            
   NAME:='';.               READ(DIR,CH)
;.               REPEAT.                
 IF MEM[STATUSADDRESS]<>$00.            
         THEN DONE:=TRUE;.              
   NAME:=CONCAT(NAME,CH);.              
   READ(DIR,CH).               UNTIL CH=
$00;.               WRITELN(' ',COUNT,' 
',NAME).             END.  UNTIL DONE;. 
 WRITELN.END......COM7
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL