M£L.3 PETLIB
FILE INFORMATION
FILENAME(S): M£L.3 PETLIB
FILE TYPE(S): PRG
FILE SIZE: 3.7K
FIRST SEEN: 2025-11-30 21:07:04
APPEARS ON: 1 disk(s)
FILE HASH
4853d179fe316868b6363857255eed7934eafbdbb488617d8213111edc9189d7
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| PET UTILITY 09 | M£L.3 PETLIB | PRG | DuncanTwain | 28 | 5 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: AA 00 30 9F 3E 00 00 10 3B 20 20 20 20 2A 2A 2A |..0.>...; ***| 00000010: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000020: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000030: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000040: 2A 2A 2A AA 10 10 3B 20 20 20 20 2A 2A 20 20 20 |***...; ** | 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: 2A AA 20 10 3B 20 20 20 20 2A 2A 20 20 20 20 20 |*. .; ** | 00000090: 20 20 20 20 20 20 20 20 20 20 50 45 54 20 33 2E | PET 3.| 000000A0: 30 20 4C 49 42 52 41 52 59 20 46 49 4C 45 20 20 |0 LIBRARY FILE | 000000B0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2A AA | *.| 000000C0: 30 10 3B 20 20 20 20 2A 2A 20 20 20 20 20 20 20 |0.; ** | 000000D0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000000E0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000000F0: 20 20 20 20 20 20 20 20 20 20 20 20 2A AA 40 10 | *.@.| 00000100: 3B 20 20 20 20 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |; ***********| 00000110: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000120: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |****************| 00000130: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A AA 50 10 89 60 |***********.P..`| 00000140: 10 89 70 10 89 80 10 3B 20 20 20 20 20 20 20 20 |..p....; | 00000150: 43 4F 4E 54 41 49 4E 45 44 20 49 4E 20 54 48 49 |CONTAINED IN THI| 00000160: 53 20 46 49 4C 45 20 49 53 20 53 4F 4D 45 20 50 |S FILE IS SOME P| 00000170: 45 54 20 52 4F 4D 20 4C 4F 43 41 54 49 4F 4E D3 |ET ROM LOCATION.| 00000180: 90 10 3B 20 20 20 20 20 20 20 20 57 48 49 43 48 |..; WHICH| 00000190: 20 4D 41 59 20 42 45 20 4F 46 20 49 4E 54 45 52 | MAY BE OF INTER| 000001A0: 45 53 54 20 54 4F 20 54 48 4F 53 45 20 4F 46 20 |EST TO THOSE OF | 000001B0: 59 4F 55 20 57 48 4F 20 41 52 C5 00 11 3B 20 20 |YOU WHO AR...; | 000001C0: 20 20 20 20 20 20 44 45 56 45 4C 4F 50 49 4E 47 | DEVELOPING| 000001D0: 20 50 52 4F 47 52 41 4D 53 20 57 48 49 43 48 20 | PROGRAMS WHICH | 000001E0: 49 4E 54 45 52 46 41 43 45 20 57 49 54 48 20 54 |INTERFACE WITH T| 000001F0: 48 45 20 50 45 D4 10 11 89 20 11 89 30 11 89 40 |HE PE.... ..0..@| 00000200: 11 89 50 11 3B 20 47 45 4E 45 52 41 4C 20 53 55 |..P.; GENERAL SU| 00000210: 42 52 4F 55 54 49 4E 45 53 BA 60 11 3B 20 2D 2D |BROUTINES.`.; --| 00000220: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000230: 2D AD 70 11 89 80 11 40 57 52 54 20 2E 44 45 20 |-.p....@WRT .DE | 00000240: 24 46 46 44 32 20 3B 57 52 49 54 45 20 41 53 43 |$FFD2 ;WRITE ASC| 00000250: 49 49 20 43 48 41 52 2E 20 49 4E 20 52 28 41 29 |II CHAR. IN R(A)| 00000260: 20 54 4F 20 53 43 52 45 45 CE 90 11 40 52 44 54 | TO SCREE...@RDT| 00000270: 20 2E 44 45 20 24 46 46 43 46 20 3B 52 45 41 44 | .DE $FFCF ;READ| 00000280: 20 41 53 43 49 49 20 43 48 41 52 2E 20 46 52 4F | ASCII CHAR. FRO| 00000290: 4D 20 4B 45 59 42 4F 41 52 44 20 54 4F 20 52 28 |M KEYBOARD TO R(| 000002A0: 41 A9 00 12 40 47 45 54 20 2E 44 45 20 24 46 46 |A...@GET .DE $FF| 000002B0: 45 34 20 3B 47 45 54 20 43 48 41 52 2E 20 49 46 |E4 ;GET CHAR. IF| 000002C0: 20 41 4E 59 2C 20 45 4C 53 45 20 52 28 41 29 3D | ANY, ELSE R(A)=| 000002D0: 30 B0 10 12 40 43 52 4C 46 20 2E 44 45 20 24 46 |0...@CRLF .DE $F| 000002E0: 44 43 44 20 3B 57 52 49 54 45 20 41 20 43 52 20 |DCD ;WRITE A CR | 000002F0: 4C C6 20 12 40 53 50 41 43 45 32 20 2E 44 45 20 |L. .@SPACE2 .DE | 00000300: 24 46 44 43 41 20 3B 57 52 49 54 45 20 32 20 53 |$FDCA ;WRITE 2 S| 00000310: 50 41 43 45 D3 30 12 40 53 50 41 43 45 20 2E 44 |PACE.0.@SPACE .D| 00000320: 45 20 24 46 44 43 44 20 3B 57 52 49 54 45 20 31 |E $FDCD ;WRITE 1| 00000330: 20 53 50 41 43 C5 40 12 40 57 52 4F 42 20 2E 44 | SPAC.@.@WROB .D| 00000340: 45 20 24 45 37 37 35 20 3B 57 52 49 54 45 20 54 |E $E775 ;WRITE T| 00000350: 57 4F 20 44 49 47 49 54 53 20 52 45 50 52 45 53 |WO DIGITS REPRES| 00000360: 45 4E 54 49 4E 47 20 43 4F 4E 54 45 4E 54 53 20 |ENTING CONTENTS | 00000370: 4F 46 20 52 28 41 A9 50 12 40 52 44 4F 42 20 2E |OF R(A.P.@RDOB .| 00000380: 44 45 20 24 45 37 42 36 20 3B 52 45 41 44 20 54 |DE $E7B6 ;READ T| 00000390: 57 4F 20 44 49 47 49 54 53 20 41 4E 44 20 50 41 |WO DIGITS AND PA| 000003A0: 43 4B 20 49 4E 54 4F 20 52 28 41 A9 60 12 40 48 |CK INTO R(A.`.@H| 000003B0: 45 58 49 54 20 2E 44 45 20 24 45 37 45 30 20 3B |EXIT .DE $E7E0 ;| 000003C0: 43 4F 4E 56 45 52 54 20 52 28 41 29 20 54 4F 20 |CONVERT R(A) TO | 000003D0: 48 45 D8 70 12 40 43 4C 52 53 43 52 4E 20 2E 44 |HE.p.@CLRSCRN .D| 000003E0: 45 20 24 45 32 32 39 20 3B 43 4C 45 41 52 20 53 |E $E229 ;CLEAR S| 000003F0: 43 52 45 45 CE 80 12 40 53 43 52 4F 4C 4C 20 2E |CREE...@SCROLL .| 00000400: 44 45 20 24 45 35 33 46 20 3B 53 43 52 4F 4C 4C |DE $E53F ;SCROLL| 00000410: 20 53 43 52 45 45 CE 90 12 40 42 41 53 49 43 2E | SCREE...@BASIC.| 00000420: 57 52 4D 20 2E 44 45 20 24 43 33 38 39 20 3B 42 |WRM .DE $C389 ;B| 00000430: 41 53 49 43 20 57 41 52 4D 20 53 54 41 52 54 20 |ASIC WARM START | 00000440: 28 55 53 45 20 4A 4D 50 A9 00 13 40 54 53 54 2E |(USE JMP...@TST.| 00000450: 53 54 4F 50 42 20 2E 44 45 20 24 46 46 45 31 20 |STOPB .DE $FFE1 | 00000460: 3B 54 45 53 54 20 53 54 4F 50 20 4B 45 59 20 41 |;TEST STOP KEY A| 00000470: 4E 44 20 47 4F 20 54 4F 20 42 41 53 49 43 20 49 |ND GO TO BASIC I| 00000480: 46 20 44 4F 57 CE 10 13 40 54 53 54 2E 53 54 4F |F DOW...@TST.STO| 00000490: 50 52 20 2E 44 45 20 24 46 33 30 31 20 3B 54 45 |PR .DE $F301 ;TE| 000004A0: 53 54 20 53 54 4F 50 20 4B 45 59 20 2D 20 45 4E |ST STOP KEY - EN| 000004B0: 41 42 4C 45 44 20 49 46 20 5A 3D C6 20 13 89 30 |ABLED IF Z=. ..0| 000004C0: 13 89 40 13 89 50 13 3B 20 49 45 45 45 20 53 55 |..@..P.; IEEE SU| 000004D0: 42 52 4F 55 54 49 4E 45 53 3A A0 60 13 3B 20 2D |BROUTINES:.`.; -| 000004E0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D AD |---------------.| 000004F0: 70 13 89 80 13 40 4F 50 45 4E 20 2E 44 45 20 24 |p....@OPEN .DE $| 00000500: 46 34 36 36 20 3B 4F 50 45 4E 20 49 45 45 45 20 |F466 ;OPEN IEEE | 00000510: 43 48 41 4E 4E 45 CC 90 13 40 53 45 4E 44 53 45 |CHANNE...@SENDSE| 00000520: 43 20 2E 44 45 20 24 46 31 32 38 20 3B 53 45 4E |C .DE $F128 ;SEN| 00000530: 44 20 49 45 45 45 20 53 45 43 4F 4E 44 41 52 59 |D IEEE SECONDARY| 00000540: 20 41 44 44 52 53 20 49 4E 20 52 28 41 A9 00 14 | ADDRS IN R(A...| 00000550: 40 43 4C 4F 53 45 20 2E 44 45 20 24 46 36 46 30 |@CLOSE .DE $F6F0| 00000560: 20 3B 43 4C 4F 53 45 20 49 45 45 45 20 43 48 41 | ;CLOSE IEEE CHA| 00000570: 4E 4E 45 CC 10 14 40 4C 49 53 54 45 4E 20 2E 44 |NNE...@LISTEN .D| 00000580: 45 20 24 46 30 42 41 20 3B 43 4F 4D 4D 41 4E 44 |E $F0BA ;COMMAND| 00000590: 20 49 45 45 45 20 44 45 56 49 43 45 20 54 4F 20 | IEEE DEVICE TO | 000005A0: 4C 49 53 54 45 CE 20 14 40 54 41 4C 4B 20 2E 44 |LISTE. .@TALK .D| 000005B0: 45 20 24 46 30 42 36 20 3B 43 4F 4D 4D 41 4E 44 |E $F0B6 ;COMMAND| 000005C0: 20 44 45 56 49 43 45 20 54 4F 20 54 41 4C CB 30 | DEVICE TO TAL.0| 000005D0: 14 40 55 4E 4C 49 53 54 45 4E 20 2E 44 45 20 24 |.@UNLISTEN .DE $| 000005E0: 46 31 38 33 20 3B 43 4F 4D 4D 41 4E 44 20 44 45 |F183 ;COMMAND DE| 000005F0: 56 49 43 45 20 54 4F 20 4E 4F 54 20 4C 49 53 54 |VICE TO NOT LIST| 00000600: 45 CE 40 14 40 55 4E 54 41 4C 4B 20 2E 44 45 20 |E.@.@UNTALK .DE | 00000610: 24 46 31 37 46 20 3B 43 4F 4D 4D 41 4E 44 20 44 |$F17F ;COMMAND D| 00000620: 45 56 49 43 45 20 54 4F 20 4E 4F 54 20 54 41 4C |EVICE TO NOT TAL| 00000630: CB 50 14 89 60 14 40 49 45 45 45 50 55 54 20 2E |.P..`.@IEEEPUT .| 00000640: 44 45 20 24 46 31 36 46 20 3B 4F 55 54 50 55 54 |DE $F16F ;OUTPUT| 00000650: 20 52 28 41 29 20 54 4F 20 49 45 45 C5 70 14 40 | R(A) TO IEE.p.@| 00000660: 49 45 45 45 47 45 54 20 2E 44 45 20 24 46 31 38 |IEEEGET .DE $F18| 00000670: 43 20 3B 49 4E 50 55 54 20 46 52 4F 4D 20 49 45 |C ;INPUT FROM IE| 00000680: 45 45 20 54 4F 20 52 28 41 A9 80 14 40 49 45 45 |EE TO R(A...@IEE| 00000690: 45 42 55 46 20 2E 44 45 20 24 46 30 45 45 20 3B |EBUF .DE $F0EE ;| 000006A0: 49 45 45 45 20 4F 55 50 55 54 20 42 55 46 46 45 |IEEE OUPUT BUFFE| 000006B0: 52 45 44 20 56 49 41 20 43 48 41 52 2E 20 49 4E |RED VIA CHAR. IN| 000006C0: 20 40 42 55 46 46 43 48 D2 90 14 89 00 15 40 52 | @BUFFCH......@R| 000006D0: 45 4C 53 41 54 54 4E 20 2E 44 45 20 24 46 31 32 |ELSATTN .DE $F12| 000006E0: 44 20 3B 52 45 4C 45 41 53 45 20 49 45 45 45 20 |D ;RELEASE IEEE | 000006F0: 41 54 54 45 4E 54 49 4F CE 10 15 89 20 15 89 30 |ATTENTIO.... ..0| 00000700: 15 89 40 15 3B 20 4F 50 45 52 41 54 49 4E 47 20 |..@.; OPERATING | 00000710: 53 59 53 54 45 4D 20 56 41 52 49 41 42 4C 45 D3 |SYSTEM VARIABLE.| 00000720: 50 15 3B 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |P.; ------------| 00000730: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D AD 60 |--------------.`| 00000740: 15 89 70 15 3B 20 20 20 20 20 4E 4F 54 45 3A 20 |..p.; NOTE: | 00000750: 54 48 45 20 4F 2E 53 2E 20 55 53 45 53 20 24 30 |THE O.S. USES $0| 00000760: 30 39 30 2D 24 30 30 46 46 2C 20 42 41 53 49 43 |090-$00FF, BASIC| 00000770: 20 41 4C 4C AE 80 15 89 90 15 40 46 41 20 2E 44 | ALL......@FA .D| 00000780: 45 20 24 44 34 20 3B 49 45 45 45 20 46 49 52 53 |E $D4 ;IEEE FIRS| 00000790: 54 20 41 44 44 52 45 53 53 20 28 44 45 56 49 43 |T ADDRESS (DEVIC| 000007A0: 45 A9 00 16 40 53 41 20 2E 44 45 20 24 44 33 20 |E...@SA .DE $D3 | 000007B0: 3B 49 45 45 45 20 53 45 43 4F 4E 44 41 52 59 20 |;IEEE SECONDARY | 000007C0: 41 44 44 52 45 53 53 20 28 43 48 41 4E 4E 45 4C |ADDRESS (CHANNEL| 000007D0: A9 10 16 40 53 54 41 54 55 53 20 2E 44 45 20 24 |...@STATUS .DE $| 000007E0: 39 36 20 3B 53 54 41 54 55 45 20 42 59 54 C5 20 |96 ;STATUE BYT. | 000007F0: 16 20 3B 30 31 3D 20 20 20 20 20 20 20 20 20 20 |. ;01= | 00000800: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000810: 20 20 20 20 20 20 30 38 3D 20 4C 4F 4E 47 20 42 | 08= LONG B| 00000820: 4C 4F 43 4B 20 45 52 52 4F D2 30 16 20 3B 30 32 |LOCK ERRO.0. ;02| 00000830: 3D 20 54 49 4D 45 4F 55 54 20 20 20 20 20 20 20 |= TIMEOUT | 00000840: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 00000850: 20 31 30 3D A0 40 16 20 3B 30 34 3D 20 53 48 4F | 10=.@. ;04= SHO| 00000860: 52 54 20 42 4C 4F 43 4B 20 45 52 52 4F 52 20 20 |RT BLOCK ERROR | 00000870: 20 20 20 20 20 20 20 20 20 20 20 20 34 30 3D 20 | 40= | 00000880: 45 4F C9 50 16 89 60 16 40 46 4E 4C 45 4E 20 2E |EO.P..`.@FNLEN .| 00000890: 44 45 20 24 44 31 20 3B 46 49 4C 45 20 4E 41 4D |DE $D1 ;FILE NAM| 000008A0: 45 20 4C 45 4E 47 54 C8 70 16 40 46 4E 41 44 52 |E LENGT.p.@FNADR| 000008B0: 20 2E 44 45 20 24 44 41 20 3B 46 49 4C 45 20 4E | .DE $DA ;FILE N| 000008C0: 41 4D 45 20 41 44 44 52 45 53 D3 80 16 40 53 41 |AME ADDRES...@SA| 000008D0: 4C 20 2E 44 45 20 24 43 37 20 3B 49 45 45 45 20 |L .DE $C7 ;IEEE | 000008E0: 53 54 41 52 54 20 41 44 44 52 45 53 D3 90 16 40 |START ADDRES...@| 000008F0: 45 41 4C 20 2E 44 45 20 24 43 39 20 3B 49 45 45 |EAL .DE $C9 ;IEE| 00000900: 45 20 45 4E 44 20 41 44 44 52 45 53 D3 00 17 89 |E END ADDRES....| 00000910: 10 17 40 42 55 46 46 43 48 52 20 2E 44 45 20 24 |..@BUFFCHR .DE $| 00000920: 41 35 20 3B 42 55 46 46 45 52 20 46 4F 52 20 49 |A5 ;BUFFER FOR I| 00000930: 45 45 45 20 4F 55 54 50 55 D4 20 17 40 46 41 54 |EEE OUTPU. .@FAT| 00000940: 20 2E 44 45 20 24 30 32 35 42 20 3B 53 41 56 45 | .DE $025B ;SAVE| 00000950: 20 4C 4F 43 2E 20 46 4F 52 20 46 C1 30 17 40 54 | LOC. FOR F.0.@T| 00000960: 42 55 46 31 20 2E 44 45 20 24 30 32 37 41 20 3B |BUF1 .DE $027A ;| 00000970: 54 41 50 45 20 42 55 46 46 45 52 20 23 B1 40 17 |TAPE BUFFER #.@.| 00000980: 40 54 42 55 46 32 20 2E 44 45 20 24 30 33 33 41 |@TBUF2 .DE $033A| 00000990: 20 3B 54 41 50 45 20 42 55 46 46 45 52 20 23 B2 | ;TAPE BUFFER #.| 000009A0: 50 17 89 60 17 89 70 17 89 80 17 3B 20 53 43 52 |P..`..p....; SCR| 000009B0: 45 45 4E 20 56 41 52 49 41 42 4C 45 53 BA 90 17 |EEN VARIABLES...| 000009C0: 3B 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |; --------------| 000009D0: 2D 2D AD 00 18 89 10 18 40 4E 44 58 20 2E 44 45 |--......@NDX .DE| 000009E0: 20 24 39 45 20 3B 23 20 4F 46 20 43 48 41 52 2E | $9E ;# OF CHAR.| 000009F0: 20 49 4E 20 4B 45 59 42 4F 41 52 44 20 49 4E 50 | IN KEYBOARD INP| 00000A00: 55 54 20 42 55 46 46 45 D2 20 18 40 4B 45 59 44 |UT BUFFE. .@KEYD| 00000A10: 20 2E 44 45 20 24 30 32 36 46 20 3B 4B 45 59 42 | .DE $026F ;KEYB| 00000A20: 4F 41 52 44 20 49 4E 50 55 54 20 42 55 46 46 45 |OARD INPUT BUFFE| 00000A30: D2 30 18 40 43 48 52 2F 4C 49 4E 45 20 2E 44 45 |.0.@CHR/LINE .DE| 00000A40: 20 24 44 35 20 3B 43 55 52 52 45 4E 54 20 4C 49 | $D5 ;CURRENT LI| 00000A50: 4E 45 20 4C 45 4E 47 54 48 20 34 30 20 3D 24 33 |NE LENGTH 40 =$3| 00000A60: 37 2C 20 38 30 20 3D 24 34 C6 40 18 40 4B 45 59 |7, 80 =$4.@.@KEY| 00000A70: 43 48 52 20 2E 44 45 20 24 39 37 20 3B 4B 45 59 |CHR .DE $97 ;KEY| 00000A80: 20 44 45 50 52 45 53 53 45 44 2C 20 3D 24 46 46 | DEPRESSED, =$FF| 00000A90: 20 49 46 20 4E 4F 20 4B 45 D9 50 18 89 60 18 89 | IF NO KE.P..`..| 00000AA0: 70 18 89 80 18 3B 20 56 45 43 54 4F 52 53 BA 90 |p....; VECTORS..| 00000AB0: 18 3B 20 2D 2D 2D 2D 2D 2D 2D AD 00 19 89 10 19 |.; -------......| 00000AC0: 40 49 52 51 56 45 43 20 2E 44 45 20 24 39 30 20 |@IRQVEC .DE $90 | 00000AD0: 3B 49 52 51 20 56 45 43 54 4F D2 20 19 40 42 52 |;IRQ VECTO. .@BR| 00000AE0: 4B 56 45 43 20 2E 44 45 20 24 39 32 20 3B 42 52 |KVEC .DE $92 ;BR| 00000AF0: 45 41 4B 20 56 45 43 54 4F D2 30 19 40 4E 4D 49 |EAK VECTO.0.@NMI| 00000B00: 56 45 43 20 2E 44 45 20 24 39 34 20 3B 4E 4D 49 |VEC .DE $94 ;NMI| 00000B10: 20 56 45 43 54 4F D2 40 19 89 50 19 89 60 19 89 | VECTO.@..P..`..| 00000B20: 70 19 89 80 19 3B 20 50 45 54 20 49 2F 4F BA 90 |p....; PET I/O..| 00000B30: 19 3B 20 2D 2D 2D 2D 2D 2D 2D AD 00 20 89 10 20 |.; -------.. .. | 00000B40: 3B 36 35 32 30 20 28 43 48 49 50 20 43 37 29 20 |;6520 (CHIP C7) | 00000B50: 3D 20 24 45 38 31 78 20 3D 20 4B 45 59 42 4F 41 |= $E81x = KEYBOA| 00000B60: 52 44 20 53 43 41 CE 20 20 89 30 20 40 44 52 41 |RD SCA. .0 @DRA| 00000B70: 2F 44 44 52 41 20 2E 44 45 20 24 45 38 31 B0 40 |/DDRA .DE $E81.@| 00000B80: 20 40 43 52 41 20 2E 44 45 20 24 45 38 31 B1 50 | @CRA .DE $E81.P| 00000B90: 20 40 44 52 42 2F 44 44 52 42 20 2E 44 45 20 24 | @DRB/DDRB .DE $| 00000BA0: 45 38 31 B2 60 20 40 43 52 42 20 2E 44 45 20 24 |E81.` @CRB .DE $| 00000BB0: 45 38 31 B3 70 20 89 80 20 89 90 20 3B 36 35 32 |E81.p .. .. ;652| 00000BC0: 30 20 28 43 48 49 50 20 43 36 29 20 3D 20 45 38 |0 (CHIP C6) = E8| 00000BD0: 32 78 20 3D 20 49 45 45 45 20 34 38 38 20 49 4E |2x = IEEE 488 IN| 00000BE0: 54 45 52 46 41 43 C5 00 21 89 10 21 89 20 21 89 |TERFAC..!..!. !.| 00000BF0: 30 21 89 40 21 89 50 21 3B 36 35 32 32 20 28 43 |0!.@!.P!;6522 (C| 00000C00: 48 49 50 20 43 35 29 20 3D 20 45 38 34 78 20 3D |HIP C5) = E84x =| 00000C10: 20 55 53 45 52 20 50 4F 52 D4 60 21 89 70 21 40 | USER POR.`!.p!@| 00000C20: 44 52 42 20 2E 44 45 20 24 45 38 34 30 20 3B 44 |DRB .DE $E840 ;D| 00000C30: 41 54 41 20 52 45 47 2E 20 C2 80 21 40 44 52 41 |ATA REG. ..!@DRA| 00000C40: 20 2E 44 45 20 24 45 38 34 31 20 3B 44 41 54 41 | .DE $E841 ;DATA| 00000C50: 20 52 45 47 2E 20 41 20 57 49 54 48 20 48 41 4E | REG. A WITH HAN| 00000C60: 44 53 48 41 4B C5 90 21 40 44 44 52 42 20 2E 44 |DSHAK..!@DDRB .D| 00000C70: 45 20 24 45 38 34 32 20 3B 44 49 52 45 43 54 49 |E $E842 ;DIRECTI| 00000C80: 4F 4E 20 52 45 47 2E 20 C2 00 22 40 44 44 52 41 |ON REG. .."@DDRA| 00000C90: 20 2E 44 45 20 24 45 38 34 33 20 3B 44 49 52 45 | .DE $E843 ;DIRE| 00000CA0: 43 54 49 4F 4E 20 52 45 47 2E 20 C1 10 22 40 54 |CTION REG. .."@T| 00000CB0: 31 4C 5F 4C 57 4C 52 43 20 2E 44 45 20 24 45 38 |1L_LWLRC .DE $E8| 00000CC0: 34 34 20 3B 54 49 4D 4D 45 52 20 23 31 20 57 52 |44 ;TIMMER #1 WR| 00000CD0: 49 54 45 20 4C 41 54 43 48 20 52 45 41 44 20 43 |ITE LATCH READ C| 00000CE0: 4F 55 4E 54 45 D2 20 22 40 54 31 43 5F 48 20 2E |OUNTE. "@T1C_H .| 00000CF0: 44 45 20 24 45 38 34 35 20 3B 54 49 4D 4D 45 52 |DE $E845 ;TIMMER| 00000D00: 20 23 B1 30 22 40 54 31 4C 5F 4C 20 2E 44 45 20 | #.0"@T1L_L .DE | 00000D10: 24 45 38 34 36 20 3B 20 AA 40 22 40 54 31 4C 5F |$E846 ; .@"@T1L_| 00000D20: 48 20 2E 44 45 20 24 45 38 34 37 20 3B 20 AA 50 |H .DE $E847 ; .P| 00000D30: 22 40 54 32 4C 5F 4C 57 4C 52 43 20 2E 44 45 20 |"@T2L_LWLRC .DE | 00000D40: 24 45 38 34 38 20 3B 54 49 4D 4D 45 52 20 23 32 |$E848 ;TIMMER #2| 00000D50: 20 57 52 49 54 45 20 4C 41 54 43 48 20 52 45 41 | WRITE LATCH REA| 00000D60: 44 20 43 4F 55 4E 54 45 D2 60 22 40 54 32 43 5F |D COUNTE.`"@T2C_| 00000D70: 4C 57 4C 52 43 20 2E 44 45 20 24 45 38 34 38 20 |LWLRC .DE $E848 | 00000D80: 3B 20 AA 70 22 40 54 32 43 5F 48 20 2E 44 45 20 |; .p"@T2C_H .DE | 00000D90: 24 45 38 34 39 20 3B 20 AA 80 22 40 53 52 20 2E |$E849 ; .."@SR .| 00000DA0: 44 45 20 24 45 38 34 41 20 3B 53 48 49 46 54 20 |DE $E84A ;SHIFT | 00000DB0: 52 45 47 49 53 54 45 D2 90 22 40 41 43 52 20 2E |REGISTE.."@ACR .| 00000DC0: 44 45 20 24 45 38 34 42 20 3B 41 55 58 49 4C 4C |DE $E84B ;AUXILL| 00000DD0: 41 52 59 20 43 4F 4E 54 52 4F 4C 20 52 45 47 49 |ARY CONTROL REGI| 00000DE0: 53 54 45 D2 00 23 40 50 43 52 20 2E 44 45 20 24 |STE..#@PCR .DE $| 00000DF0: 45 38 34 43 20 3B 50 45 52 49 50 48 45 52 41 4C |E84C ;PERIPHERAL| 00000E00: 20 43 4F 4E 54 52 4F 4C 20 52 45 47 49 53 54 45 | CONTROL REGISTE| 00000E10: D2 10 23 40 49 46 52 20 2E 44 45 20 24 45 38 34 |..#@IFR .DE $E84| 00000E20: 44 20 3B 49 4E 54 45 52 52 55 50 54 20 46 4C 41 |D ;INTERRUPT FLA| 00000E30: 47 20 52 45 47 49 53 54 45 D2 20 23 40 49 45 52 |G REGISTE. #@IER| 00000E40: 20 2E 44 45 20 24 45 38 34 45 20 3B 49 4E 54 45 | .DE $E84E ;INTE| 00000E50: 52 52 55 50 54 20 45 4E 41 42 4C 45 20 52 45 47 |RRUPT ENABLE REG| 00000E60: 49 53 54 45 D2 30 23 40 44 52 41 4E 48 20 2E 44 |ISTE.0#@DRANH .D| 00000E70: 45 20 24 45 38 34 46 20 3B 44 41 54 41 20 52 45 |E $E84F ;DATA RE| 00000E80: 47 49 53 54 45 52 20 41 20 42 55 54 20 4E 4F 20 |GISTER A BUT NO | 00000E90: 48 41 4E 44 53 48 41 4B C5 40 23 89 50 23 89 60 |HANDSHAK.@#.P#.`| 00000EA0: 23 89 70 23 89 00 |#.p#.. |
..0.>...; ***************************
***************************...; **
*. .; ** PET 3.
0 LIBRARY FILE *.0.; *
*
*.@.; *******************
***********************************.P..`
..P....; CONTAINED IN THIS FILE I
S SOME PET ROM LOCATIONS..; WHICH
MAY BE OF INTEREST TO THOSE OF YOU WHO
ARE..; DEVELOPING PROGRAMS WHICH
INTERFACE WITH THE PET... ..0..@..P.; GE
NERAL SUBROUTINES.`.; ------------------
-.P....@WRT .DE $FFD2 ;WRITE ASCII CHAR.
IN R(A) TO SCREEN..@RDT .DE $FFCF ;READ
ASCII CHAR. FROM KEYBOARD TO R(A...@GET
.DE $FFE4 ;GET CHAR. IF ANY, ELSE R(A)=
0...@CRLF .DE $FDCD ;WRITE A CR LF .@SPA
CE2 .DE $FDCA ;WRITE 2 SPACES0.@SPACE .D
E $FDCD ;WRITE 1 SPACE@.@WROB .DE $E775
;WRITE TWO DIGITS REPRESENTING CONTENTS
OF R(A.P.@RDOB .DE $E7B6 ;READ TWO DIGIT
S AND PACK INTO R(A.`.@HEXIT .DE $E7E0 ;
CONVERT R(A) TO HEXP.@CLRSCRN .DE $E229
;CLEAR SCREEN..@SCROLL .DE $E53F ;SCROLL
SCREEN..@BASIC.WRM .DE $C389 ;BASIC WAR
M START (USE JMP...@TST.STOPB .DE $FFE1
;TEST STOP KEY AND GO TO BASIC IF DOWN..
@TST.STOPR .DE $F301 ;TEST STOP KEY - EN
ABLED IF Z=F ..0..@..P.; IEEE SUBROUTINE
S: `.; ----------------.P....@OPEN .DE $
F466 ;OPEN IEEE CHANNEL..@SENDSEC .DE $F
128 ;SEND IEEE SECONDARY ADDRS IN R(A...
@CLOSE .DE $F6F0 ;CLOSE IEEE CHANNEL..@L
ISTEN .DE $F0BA ;COMMAND IEEE DEVICE TO
LISTEN .@TALK .DE $F0B6 ;COMMAND DEVICE
TO TALK0.@UNLISTEN .DE $F183 ;COMMAND DE
VICE TO NOT LISTEN@.@UNTALK .DE $F17F ;C
OMMAND DEVICE TO NOT TALKP..`.@IEEEPUT .
DE $F16F ;OUTPUT R(A) TO IEEEP.@IEEEGET
.DE $F18C ;INPUT FROM IEEE TO R(A...@IEE
EBUF .DE $F0EE ;IEEE OUPUT BUFFERED VIA
CHAR. IN @BUFFCHR.....@RELSATTN .DE $F12
D ;RELEASE IEEE ATTENTION... ..0..@.; OP
ERATING SYSTEM VARIABLESP.; ------------
--------------.`..P.; NOTE: THE O.S.
USES $0090-$00FF, BASIC ALL......@FA .D
E $D4 ;IEEE FIRST ADDRESS (DEVICE...@SA
.DE $D3 ;IEEE SECONDARY ADDRESS (CHANNEL
...@STATUS .DE $96 ;STATUE BYTE . ;01=
08= LONG B
LOCK ERROR0. ;02= TIMEOUT
10= @. ;04= SHORT BLOCK ERROR
40= EOIP..`.@FNLEN .DE $D1 ;
FILE NAME LENGTHP.@FNADR .DE $DA ;FILE N
AME ADDRESS..@SAL .DE $C7 ;IEEE START AD
DRESS..@EAL .DE $C9 ;IEEE END ADDRESS...
..@BUFFCHR .DE $A5 ;BUFFER FOR IEEE OUTP
UT .@FAT .DE $025B ;SAVE LOC. FOR FA0.@T
BUF1 .DE $027A ;TAPE BUFFER #.@.@TBUF2 .
DE $033A ;TAPE BUFFER #.P..`..P....; SCR
EEN VARIABLES...; ----------------......
@NDX .DE $9E ;# OF CHAR. IN KEYBOARD INP
UT BUFFER .@KEYD .DE $026F ;KEYBOARD INP
UT BUFFER0.@CHR/LINE .DE $D5 ;CURRENT LI
NE LENGTH 40 =$37, 80 =$4F@.@KEYCHR .DE
$97 ;KEY DEPRESSED, =$FF IF NO KEYP..`..
P....; VECTORS...; -------......@IRQVEC
.DE $90 ;IRQ VECTOR .@BRKVEC .DE $92 ;BR
EAK VECTOR0.@NMIVEC .DE $94 ;NMI VECTOR@
..P..`..P....; PET I/O...; -------.. ..
;6520 (CHIP C7) = $E81X = KEYBOARD SCAN
.0 @DRA/DDRA .DE $E81.@ @CRA .DE $E81.P
@DRB/DDRB .DE $E81.` @CRB .DE $E81.P ..
.. ;6520 (CHIP C6) = E82X = IEEE 488 IN
TERFACE.!..!. !.0!.@!.P!;6522 (CHIP C5)
= E84X = USER PORT`!.P!@DRB .DE $E840 ;D
ATA REG. B.!@DRA .DE $E841 ;DATA REG. A
WITH HANDSHAKE.!@DDRB .DE $E842 ;DIRECTI
ON REG. B."@DDRA .DE $E843 ;DIRECTION RE
G. A."@T1L_LWLRC .DE $E844 ;TIMMER #1 WR
ITE LATCH READ COUNTER "@T1C_H .DE $E845
;TIMMER #.0"@T1L_L .DE $E846 ; .@"@T1L_
H .DE $E847 ; .P"@T2L_LWLRC .DE $E848 ;T
IMMER #2 WRITE LATCH READ COUNTER`"@T2C_
LWLRC .DE $E848 ; .P"@T2C_H .DE $E849 ;
.."@SR .DE $E84A ;SHIFT REGISTER."@ACR .
DE $E84B ;AUXILLARY CONTROL REGISTER.#@P
CR .DE $E84C ;PERIPHERAL CONTROL REGISTE
R.#@IFR .DE $E84D ;INTERRUPT FLAG REGIST
ER #@IER .DE $E84E ;INTERRUPT ENABLE REG
ISTER0#@DRANH .DE $E84F ;DATA REGISTER A
BUT NO HANDSHAKE@#.P#.`#.P#..
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL