MA-IEEELIB  4302
FILE INFORMATION
FILENAME(S): MA-IEEELIB  4302
FILE TYPE(S): PRG
FILE SIZE: 4.4K
FIRST SEEN: 2025-11-30 21:24:01
APPEARS ON: 1 disk(s)
FILE HASH
6d2a38dc46ad7b0b5612ca80764b4330e1aa947f9103d3c7c6d478c6c43c4974
FOUND ON DISKS (1 DISKS)
| DISK TITLE | FILENAME | FILE TYPE | COLLECTION | TRACK | SECTOR | ACTIONS |
|---|---|---|---|---|---|---|
| C64 HULP 29 2 | MA-IEEELIB  4302 | PRG | DuncanTwain | 28 | 9 | DOWNLOAD FILE |
FILE CONTENT & ANALYSIS
00000000: AA 00 30 D7 44 AA 10 00 3B 20 20 2A 2A 2A 2A 2A |..0.D...; *****| 00000010: 2A 2A 2A 2A 2A 20 49 45 45 45 20 34 38 38 20 4C |***** IEEE 488 L| 00000020: 49 42 2E 32 20 2A 2A 2A 2A 2A 2A 2A 2A 2A AA 20 |IB.2 *********. | 00000030: 00 AE 30 00 AE 40 00 3B 20 20 41 4C 4C 20 4D 4F |..0..@.; ALL MO| 00000040: 44 55 4C 45 53 3A 20 20 52 28 41 29 20 3D 20 42 |DULES: R(A) = B| 00000050: 59 54 45 20 49 4E 50 55 54 20 4F 52 20 4F 55 54 |YTE INPUT OR OUT| 00000060: 50 55 D4 50 00 3B 20 20 2D 2D 2D 2D 2D 2D 2D 2D |PU.P.; --------| 00000070: 2D 2D 2D 2D 20 20 52 28 59 29 20 3D 20 4C 4F 47 |---- R(Y) = LOG| 00000080: 49 43 41 4C 20 46 49 4C 45 20 A3 60 00 3B 20 20 |ICAL FILE .`.; | 00000090: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 28 | R(| 000000A0: 58 29 20 3D 20 30 20 49 46 20 4F 4B 2C 20 3C 3E |X) = 0 IF OK, <>| 000000B0: 20 30 20 54 48 45 4E 20 45 52 52 4F D2 70 00 AE | 0 THEN ERRO.p..| 000000C0: 80 00 AE 90 00 AE 00 01 3B 20 20 56 41 52 49 41 |........; VARIA| 000000D0: 42 4C 45 20 2D 20 44 45 46 49 4E 49 54 49 4F 4E |BLE - DEFINITION| 000000E0: 53 BA 10 01 3B 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D |S...; ---------| 000000F0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D AD 20 01 |-------------. .| 00000100: AE 30 01 AE 40 01 4C 41 20 2E 44 45 20 24 44 32 |.0..@.LA .DE $D2| 00000110: 20 3B 4C 4F 47 49 43 41 4C 20 41 44 44 52 45 53 | ;LOGICAL ADDRES| 00000120: D3 50 01 46 41 20 2E 44 45 20 24 44 34 20 3B 46 |.P.FA .DE $D4 ;F| 00000130: 49 52 53 54 20 41 44 44 52 45 53 53 20 28 44 45 |IRST ADDRESS (DE| 00000140: 56 49 43 45 A9 60 01 53 41 20 2E 44 45 20 24 44 |VICE.`.SA .DE $D| 00000150: 33 20 3B 53 45 43 4F 4E 44 41 52 59 20 41 44 44 |3 ;SECONDARY ADD| 00000160: 52 45 53 53 20 28 43 48 4E 20 23 A9 70 01 4C 44 |RESS (CHN #.p.LD| 00000170: 54 4E 44 20 2E 44 45 20 24 41 45 20 3B 23 20 4F |TND .DE $AE ;# O| 00000180: 46 20 46 49 4C 45 53 20 4F 50 45 CE 80 01 AE 90 |F FILES OPE.....| 00000190: 01 46 4E 41 44 52 20 2E 44 45 20 24 44 41 20 3B |.FNADR .DE $DA ;| 000001A0: 46 49 4C 45 20 4E 41 4D 45 20 41 44 44 52 45 53 |FILE NAME ADDRES| 000001B0: D3 00 02 46 4E 4C 45 4E 20 2E 44 45 20 24 44 31 |...FNLEN .DE $D1| 000001C0: 20 3B 46 49 4C 45 20 4E 41 4D 45 20 4C 45 4E 47 | ;FILE NAME LENG| 000001D0: 54 C8 10 02 AE 20 02 53 54 41 54 55 53 20 2E 44 |T.... .STATUS .D| 000001E0: 45 20 24 39 36 20 3B 49 45 45 45 20 53 54 41 54 |E $96 ;IEEE STAT| 000001F0: 55 53 20 42 59 54 C5 30 02 42 53 4F 55 52 20 2E |US BYT.0.BSOUR .| 00000200: 44 45 20 24 41 35 20 3B 53 41 56 45 20 41 52 45 |DE $A5 ;SAVE ARE| 00000210: C1 40 02 AE 50 02 AE 60 02 3B 20 20 53 55 42 52 |.@..P..`.; SUBR| 00000220: 4F 55 54 49 4E 45 53 20 55 53 45 44 BA 70 02 3B |OUTINES USED.p.;| 00000230: 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D | --------------| 00000240: 2D 2D AD 80 02 AE 90 02 AE 00 03 46 49 4E 44 4C |--.........FINDL| 00000250: 54 20 20 20 20 20 2E 44 45 20 24 46 32 38 44 20 |T .DE $F28D | 00000260: 20 20 20 20 20 20 20 20 20 20 20 3B 46 49 4E 44 | ;FIND| 00000270: 20 45 4E 54 52 59 20 49 4E 20 4C 4F 47 49 43 41 | ENTRY IN LOGICA| 00000280: 4C 20 54 41 42 4C C5 10 03 53 45 54 55 50 4C 54 |L TABL...SETUPLT| 00000290: 20 2E 44 45 20 24 46 32 39 39 20 3B 53 45 54 20 | .DE $F299 ;SET | 000002A0: 55 50 20 4C 41 2C 46 41 2C 53 41 20 46 52 4F 4D |UP LA,FA,SA FROM| 000002B0: 20 54 41 42 4C C5 20 03 52 45 4D 4F 56 4C 54 20 | TABL. .REMOVLT | 000002C0: 2E 44 45 20 24 46 32 45 35 20 3B 52 45 4D 4F 56 |.DE $F2E5 ;REMOV| 000002D0: 45 20 46 52 4F 4D 20 54 41 42 4C C5 30 03 AE 40 |E FROM TABL.0..@| 000002E0: 03 4F 50 45 4E 49 20 2E 44 45 20 24 46 35 33 42 |.OPENI .DE $F53B| 000002F0: 20 3B 50 55 54 20 49 4E 20 54 41 42 4C 45 20 41 | ;PUT IN TABLE A| 00000300: 4E 44 20 44 4F 20 4F 50 45 CE 50 03 43 4C 4F 53 |ND DO OPE.P.CLOS| 00000310: 45 49 20 2E 44 45 20 24 46 36 46 30 20 3B 43 4C |EI .DE $F6F0 ;CL| 00000320: 4F 53 45 20 43 48 41 4E 4E 45 CC 60 03 AE 70 03 |OSE CHANNE.`..p.| 00000330: 4C 49 53 54 4E 20 2E 44 45 20 24 46 30 42 41 20 |LISTN .DE $F0BA | 00000340: 3B 43 4F 4D 4D 41 4E 44 20 54 4F 20 4C 49 53 54 |;COMMAND TO LIST| 00000350: 45 CE 80 03 55 4E 4C 49 53 4E 20 2E 44 45 20 24 |E...UNLISN .DE $| 00000360: 46 31 38 33 20 3B 43 4F 4D 4D 41 4E 44 20 54 4F |F183 ;COMMAND TO| 00000370: 20 55 4E 4C 49 53 54 45 CE 90 03 AE 00 04 54 41 | UNLISTE......TA| 00000380: 4C 4B 20 2E 44 45 20 24 46 30 42 36 20 3B 43 4F |LK .DE $F0B6 ;CO| 00000390: 4D 4D 41 4E 44 20 54 4F 20 54 41 4C CB 10 04 55 |MMAND TO TAL...U| 000003A0: 4E 54 41 4C 4B 20 2E 44 45 20 24 46 31 37 46 20 |NTALK .DE $F17F | 000003B0: 3B 43 4F 4D 4D 41 4E 44 20 54 4F 20 55 4E 54 41 |;COMMAND TO UNTA| 000003C0: 4C CB 20 04 AE 30 04 53 45 43 4E 44 20 2E 44 45 |L. ..0.SECND .DE| 000003D0: 20 24 46 31 32 38 20 3B 53 45 4E 44 20 53 45 43 | $F128 ;SEND SEC| 000003E0: 4F 4E 44 41 52 59 20 41 44 44 52 D3 40 04 AE 50 |ONDARY ADDR.@..P| 000003F0: 04 43 49 4F 55 54 20 2E 44 45 20 24 46 31 36 46 |.CIOUT .DE $F16F| 00000400: 20 3B 4F 55 54 50 55 54 20 54 4F 20 49 45 45 C5 | ;OUTPUT TO IEE.| 00000410: 60 04 41 43 50 54 52 20 2E 44 45 20 24 46 31 38 |`.ACPTR .DE $F18| 00000420: 43 20 3B 49 4E 50 55 54 20 46 52 4F 4D 20 49 45 |C ;INPUT FROM IE| 00000430: 45 C5 70 04 AE 80 04 42 4C 4B 50 4E 54 20 2E 44 |E.p....BLKPNT .D| 00000440: 45 20 24 31 31 20 3B 50 4F 49 4E 54 45 52 20 54 |E $11 ;POINTER T| 00000450: 4F 20 42 4C 4F 43 CB 90 04 AE 00 05 AE 10 05 3B |O BLOC.........;| 00000460: 20 20 49 45 45 45 20 4F 50 45 4E 3A 20 20 4F 50 | IEEE OPEN: OP| 00000470: 4E 55 53 45 42 20 3D 20 55 53 45 20 4F 50 45 4E |NUSEB = USE OPEN| 00000480: 20 42 4C 4F 43 4B 20 50 4F 49 4E 54 45 44 20 54 | BLOCK POINTED T| 00000490: 4F 20 42 59 20 42 4C 4B 50 4E D4 20 05 3B 20 20 |O BY BLKPN. .; | 000004A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D AD 30 05 3B 20 20 20 |---------.0.; | 000004B0: 20 20 20 20 20 20 20 20 20 20 20 4F 50 45 4E 20 | OPEN | 000004C0: 20 20 20 3D 20 55 53 45 20 4C 41 2C 20 46 41 2C | = USE LA, FA,| 000004D0: 20 53 41 2C 20 46 4E 41 44 52 2C 20 46 4E 4C 45 | SA, FNADR, FNLE| 000004E0: CE 40 05 AE 50 05 AE 60 05 4F 50 4E 55 53 45 42 |.@..P..`.OPNUSEB| 000004F0: 20 4C 44 59 20 23 30 30 20 3B 46 49 52 53 54 20 | LDY #00 ;FIRST | 00000500: 53 45 54 20 55 50 20 46 52 4F 4D 20 42 4C 4F 43 |SET UP FROM BLOC| 00000510: CB 70 05 20 4C 44 41 20 28 42 4C 4B 50 4E 54 29 |.p. LDA (BLKPNT)| 00000520: 2C D9 80 05 20 53 54 41 20 2A 4C C1 90 05 20 49 |,... STA *L... I| 00000530: 4E D9 00 06 20 4C 44 41 20 28 42 4C 4B 50 4E 54 |N... LDA (BLKPNT| 00000540: 29 2C D9 10 06 20 53 54 41 20 2A 46 C1 20 06 20 |),... STA *F. . | 00000550: 49 4E D9 30 06 20 4C 44 41 20 28 42 4C 4B 50 4E |IN.0. LDA (BLKPN| 00000560: 54 29 2C D9 40 06 20 4F 52 41 20 23 24 36 B0 50 |T),.@. ORA #$6.P| 00000570: 06 20 53 54 41 20 2A 53 C1 60 06 20 49 4E D9 70 |. STA *S.`. IN.p| 00000580: 06 20 4C 44 41 20 28 42 4C 4B 50 4E 54 29 2C D9 |. LDA (BLKPNT),.| 00000590: 80 06 20 53 54 41 20 2A 46 4E 41 44 D2 90 06 20 |.. STA *FNAD... | 000005A0: 49 4E D9 00 07 20 4C 44 41 20 28 42 4C 4B 50 4E |IN... LDA (BLKPN| 000005B0: 54 29 2C D9 10 07 20 53 54 41 20 2A 46 4E 41 44 |T),... STA *FNAD| 000005C0: 52 2B B1 20 07 20 49 4E D9 30 07 20 4C 44 41 20 |R+. . IN.0. LDA | 000005D0: 28 42 4C 4B 50 4E 54 29 2C D9 40 07 20 53 54 41 |(BLKPNT),.@. STA| 000005E0: 20 2A 46 4E 4C 45 CE 50 07 AE 60 07 4F 50 45 4E | *FNLE.P..`.OPEN| 000005F0: 20 4C 44 41 20 2A 4C C1 70 07 20 4A 53 52 20 46 | LDA *L.p. JSR F| 00000600: 49 4E 44 4C 54 20 3B 46 49 4E 44 20 49 46 20 49 |INDLT ;FIND IF I| 00000610: 4E 20 4C 4F 47 49 43 41 4C 20 54 41 42 4C C5 80 |N LOGICAL TABL..| 00000620: 07 20 42 45 51 20 4F 50 4E 45 52 52 20 3B 42 52 |. BEQ OPNERR ;BR| 00000630: 2E 20 49 46 20 41 4C 52 45 41 44 59 20 49 4E 20 |. IF ALREADY IN | 00000640: 54 48 45 52 C5 90 07 20 4C 44 58 20 2A 4C 44 54 |THER... LDX *LDT| 00000650: 4E 44 20 3B 43 48 45 43 4B 20 49 46 20 4D 41 58 |ND ;CHECK IF MAX| 00000660: 2E 20 4F 46 20 31 30 20 4F 50 45 CE 00 08 20 43 |. OF 10 OPE... C| 00000670: 50 58 20 23 31 30 20 3B 31 30 20 4D 41 58 AE 10 |PX #10 ;10 MAX..| 00000680: 08 20 42 43 53 20 4F 50 4E 45 52 52 20 3B 42 52 |. BCS OPNERR ;BR| 00000690: 2E 20 4F 4E 20 54 4F 4F 20 4D 41 4E 59 20 4F 50 |. ON TOO MANY OP| 000006A0: 45 CE 20 08 20 49 4E 43 20 2A 4C 44 54 4E 44 20 |E. . INC *LDTND | 000006B0: 3B 49 4E 43 2E 20 41 53 20 54 4F 4F 20 4D 41 4E |;INC. AS TOO MAN| 000006C0: 59 20 4F 50 45 CE 30 08 20 4C 44 41 20 23 30 B0 |Y OPE.0. LDA #0.| 000006D0: 40 08 20 53 54 41 20 2A 53 54 41 54 55 53 20 3B |@. STA *STATUS ;| 000006E0: 43 4C 45 41 52 20 53 54 41 54 55 D3 50 08 20 4A |CLEAR STATU.P. J| 000006F0: 53 52 20 4F 50 45 4E 49 20 3B 50 55 54 20 49 4E |SR OPENI ;PUT IN| 00000700: 20 54 41 42 4C 45 20 41 4E 44 20 4F 50 45 CE 60 | TABLE AND OPE.`| 00000710: 08 20 4C 44 58 20 2A 53 54 41 54 55 D3 70 08 20 |. LDX *STATU.p. | 00000720: 52 54 D3 80 08 4F 50 4E 45 52 52 20 4C 44 58 20 |RT...OPNERR LDX | 00000730: 23 24 46 C6 90 08 20 52 54 D3 00 09 AE 10 09 AE |#$F... RT.......| 00000740: 20 09 3B 20 20 43 4C 4F 53 45 20 4C 4F 47 49 43 | .; CLOSE LOGIC| 00000750: 41 4C 20 43 48 41 4E 4E 45 4C BA 30 09 3B 20 20 |AL CHANNEL.0.; | 00000760: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000770: 2D 2D 2D 2D 2D AD 40 09 AE 50 09 AE 60 09 43 4C |-----.@..P..`.CL| 00000780: 4F 53 45 20 54 59 C1 70 09 20 4A 53 52 20 46 49 |OSE TY.p. JSR FI| 00000790: 4E 44 4C 54 20 3B 46 49 4E 44 20 49 46 20 49 4E |NDLT ;FIND IF IN| 000007A0: 20 54 41 42 4C C5 80 09 20 42 4E 45 20 43 4C 4F | TABL... BNE CLO| 000007B0: 45 52 52 20 3B 42 52 2E 20 49 46 20 4E 4F 54 20 |ERR ;BR. IF NOT | 000007C0: 49 4E 20 54 48 45 52 C5 90 09 20 4C 44 41 20 23 |IN THER... LDA #| 000007D0: 30 B0 00 10 20 53 54 41 20 2A 53 54 41 54 55 D3 |0... STA *STATU.| 000007E0: 10 10 20 54 58 C1 20 10 20 50 48 C1 30 10 20 4A |.. TX. . PH.0. J| 000007F0: 53 52 20 43 4C 4F 53 45 49 20 3B 43 4C 4F 53 45 |SR CLOSEI ;CLOSE| 00000800: 20 43 48 41 4E 4E 45 CC 40 10 20 50 4C C1 50 10 | CHANNE.@. PL.P.| 00000810: 20 54 41 D8 60 10 20 4A 53 52 20 52 45 4D 4F 56 | TA.`. JSR REMOV| 00000820: 4C 54 20 3B 52 45 4D 4F 56 45 20 46 52 4F 4D 20 |LT ;REMOVE FROM | 00000830: 54 41 42 4C C5 70 10 20 4C 44 58 20 2A 53 54 41 |TABL.p. LDX *STA| 00000840: 54 55 D3 80 10 20 52 54 D3 90 10 43 4C 4F 45 52 |TU... RT...CLOER| 00000850: 52 20 4C 44 58 20 23 24 46 C6 00 11 20 52 54 D3 |R LDX #$F... RT.| 00000860: 10 11 AE 20 11 AE 30 11 3B 20 20 50 55 54 20 42 |... ..0.; PUT B| 00000870: 59 54 45 20 54 4F 20 49 45 45 45 20 44 45 56 49 |YTE TO IEEE DEVI| 00000880: 43 45 20 20 20 5B 20 42 59 54 45 20 49 4E 20 52 |CE [ BYTE IN R| 00000890: 28 41 29 2C 20 20 43 48 4E 23 20 49 4E 20 52 28 |(A), CHN# IN R(| 000008A0: 59 29 20 5D 20 BA 40 11 3B 20 20 2D 2D 2D 2D 2D |Y) ] .@.; -----| 000008B0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 000008C0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 000008D0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 000008E0: 2D 2D 2D 2D 2D AD 50 11 AE 60 11 AE 70 11 50 55 |-----.P..`..p.PU| 000008F0: 54 20 53 54 41 20 2A 42 53 4F 55 52 20 3B 53 41 |T STA *BSOUR ;SA| 00000900: 56 45 20 52 28 41 A9 80 11 20 54 59 C1 90 11 20 |VE R(A... TY... | 00000910: 4A 53 52 20 53 45 54 55 50 20 3B 53 45 54 55 50 |JSR SETUP ;SETUP| 00000920: 20 46 52 4F 4D 20 54 41 42 4C C5 00 12 20 42 4E | FROM TABL... BN| 00000930: 45 20 50 55 54 45 52 52 20 3B 42 52 2E 20 49 46 |E PUTERR ;BR. IF| 00000940: 20 4E 4F 54 20 49 4E 20 54 41 42 4C C5 10 12 20 | NOT IN TABL... | 00000950: 53 54 58 20 2A 53 54 41 54 55 53 20 3B 43 4C 45 |STX *STATUS ;CLE| 00000960: 41 52 20 53 54 41 54 55 D3 20 12 20 4A 53 52 20 |AR STATU. . JSR | 00000970: 4C 49 53 54 4E 20 3B 49 45 45 45 20 43 4D 44 20 |LISTN ;IEEE CMD | 00000980: 54 4F 20 4C 49 53 54 45 CE 30 12 20 4C 44 41 20 |TO LISTE.0. LDA | 00000990: 2A 53 41 20 3B 53 45 4E 44 20 53 45 43 4F 4E 44 |*SA ;SEND SECOND| 000009A0: 41 52 59 20 41 44 44 52 D3 40 12 20 4A 53 52 20 |ARY ADDR.@. JSR | 000009B0: 53 45 43 4E 44 20 3B 20 AA 50 12 20 4C 44 41 20 |SECND ; .P. LDA | 000009C0: 2A 42 53 4F 55 52 20 3B 52 45 53 54 4F 52 45 20 |*BSOUR ;RESTORE | 000009D0: 52 28 41 A9 60 12 20 4A 53 52 20 43 49 4F 55 54 |R(A.`. JSR CIOUT| 000009E0: 20 3B 49 45 45 45 20 4F 55 54 50 55 D4 70 12 20 | ;IEEE OUTPU.p. | 000009F0: 4A 53 52 20 55 4E 4C 49 53 4E 20 3B 49 45 45 45 |JSR UNLISN ;IEEE| 00000A00: 20 43 4D 44 20 54 4F 20 4C 49 53 54 45 CE 80 12 | CMD TO LISTE...| 00000A10: 20 4C 44 58 20 2A 53 54 41 54 55 D3 90 12 50 55 | LDX *STATU...PU| 00000A20: 54 45 52 52 20 52 54 D3 00 13 AE 10 13 AE 20 13 |TERR RT....... .| 00000A30: 3B 20 20 47 45 54 20 42 59 54 45 20 46 52 4F 4D |; GET BYTE FROM| 00000A40: 20 49 45 45 45 20 44 45 56 49 43 45 20 20 20 5B | IEEE DEVICE [| 00000A50: 20 42 59 54 45 20 49 4E 20 52 28 41 29 2C 20 20 | BYTE IN R(A), | 00000A60: 43 48 4E 23 20 49 4E 20 52 28 59 29 20 DD 30 13 |CHN# IN R(Y) .0.| 00000A70: 3B 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |; -------------| 00000A80: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000A90: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000AA0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D AD 40 13 |-------------.@.| 00000AB0: AE 50 13 AE 60 13 47 45 54 20 54 59 C1 70 13 20 |.P..`.GET TY.p. | 00000AC0: 4A 53 52 20 53 45 54 55 50 20 3B 53 45 54 55 50 |JSR SETUP ;SETUP| 00000AD0: 20 46 52 4F 4D 20 54 41 42 4C C5 80 13 20 42 4E | FROM TABL... BN| 00000AE0: 45 20 47 45 54 45 52 52 20 3B 42 52 2E 20 49 46 |E GETERR ;BR. IF| 00000AF0: 20 4E 4F 54 20 49 4E 20 54 48 45 52 C5 90 13 20 | NOT IN THER... | 00000B00: 53 54 58 20 2A 53 54 41 54 55 D3 00 14 20 4A 53 |STX *STATU... JS| 00000B10: 52 20 54 41 4C 4B 20 3B 43 4D 44 20 44 45 56 49 |R TALK ;CMD DEVI| 00000B20: 43 45 20 54 4F 20 54 41 4C CB 10 14 20 4C 44 41 |CE TO TAL... LDA| 00000B30: 20 2A 53 41 20 3B 53 45 4E 44 20 53 45 43 4F 4E | *SA ;SEND SECON| 00000B40: 44 41 52 59 20 41 44 44 52 D3 20 14 20 4A 53 52 |DARY ADDR. . JSR| 00000B50: 20 53 45 43 4E 44 20 3B 20 AA 30 14 20 4A 53 52 | SECND ; .0. JSR| 00000B60: 20 41 43 50 54 52 20 3B 49 45 45 45 20 49 4E 50 | ACPTR ;IEEE INP| 00000B70: 55 D4 40 14 20 50 48 C1 50 14 20 4A 53 52 20 55 |U.@. PH.P. JSR U| 00000B80: 4E 54 41 4C 4B 20 3B 43 4D 44 20 44 45 56 49 43 |NTALK ;CMD DEVIC| 00000B90: 45 20 54 4F 20 55 4E 54 41 4C CB 60 14 20 50 4C |E TO UNTAL.`. PL| 00000BA0: C1 70 14 20 4C 44 58 20 2A 53 54 41 54 55 D3 80 |.p. LDX *STATU..| 00000BB0: 14 47 45 54 45 52 52 20 52 54 D3 90 14 AE 00 15 |.GETERR RT......| 00000BC0: AE 10 15 3B 20 20 43 4F 4D 4D 41 4E 44 20 44 45 |...; COMMAND DE| 00000BD0: 56 49 43 45 20 54 4F 20 4C 49 53 54 45 4E 20 20 |VICE TO LISTEN | 00000BE0: 20 5B 20 43 48 4E 23 20 49 4E 20 52 28 59 29 20 | [ CHN# IN R(Y) | 00000BF0: 5D BA 20 15 3B 20 20 2D 2D 2D 2D 2D 2D 2D 2D 2D |]. .; ---------| 00000C00: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000C10: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000C20: 2D 2D AD 30 15 AE 40 15 AE 50 15 43 4D 44 4C 49 |--.0..@..P.CMDLI| 00000C30: 53 54 4E 20 20 20 54 59 C1 60 15 20 4A 53 52 20 |STN TY.`. JSR | 00000C40: 53 45 54 55 50 20 3B 53 45 54 20 55 50 20 46 52 |SETUP ;SET UP FR| 00000C50: 4F 4D 20 54 41 42 4C C5 70 15 20 42 4E 45 20 43 |OM TABL.p. BNE C| 00000C60: 4D 44 4C 45 52 52 20 3B 42 52 2E 20 49 46 20 4E |MDLERR ;BR. IF N| 00000C70: 4F 54 20 49 4E 20 54 48 45 52 C5 80 15 20 53 54 |OT IN THER... ST| 00000C80: 58 20 2A 53 54 41 54 55 D3 90 15 20 4A 53 52 20 |X *STATU... JSR | 00000C90: 4C 49 53 54 4E 20 3B 43 4D 44 20 54 4F 20 4C 49 |LISTN ;CMD TO LI| 00000CA0: 53 54 45 CE 00 16 20 4C 44 41 20 2A 53 41 20 3B |STE... LDA *SA ;| 00000CB0: 53 45 4E 44 20 53 45 43 4F 4E 44 41 52 59 20 41 |SEND SECONDARY A| 00000CC0: 44 44 52 D3 10 16 20 4A 53 52 20 53 45 43 4E 44 |DDR... JSR SECND| 00000CD0: 20 3B 20 AA 20 16 20 4C 44 58 20 2A 53 54 41 54 | ; . . LDX *STAT| 00000CE0: 55 D3 30 16 43 4D 44 4C 45 52 52 20 52 54 D3 40 |U.0.CMDLERR RT.@| 00000CF0: 16 AE 50 16 AE 60 16 3B 20 20 43 4F 4D 4D 41 4E |..P..`.; COMMAN| 00000D00: 44 20 44 45 56 49 43 45 20 54 4F 20 54 41 4C 4B |D DEVICE TO TALK| 00000D10: 20 20 20 20 5B 20 43 48 4E 23 20 49 4E 20 52 28 | [ CHN# IN R(| 00000D20: 59 29 20 5D BA 70 16 3B 20 20 2D 2D 2D 2D 2D 2D |Y) ].p.; ------| 00000D30: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000D40: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000D50: 2D 2D 2D 2D AD 80 16 AE 90 16 AE 00 17 43 4D 44 |----.........CMD| 00000D60: 54 41 4C 4B 20 20 20 20 54 59 C1 10 17 20 4A 53 |TALK TY... JS| 00000D70: 52 20 53 45 54 55 50 20 3B 53 45 54 55 50 20 46 |R SETUP ;SETUP F| 00000D80: 52 4F 4D 20 54 41 42 4C C5 20 17 20 42 4E 45 20 |ROM TABL. . BNE | 00000D90: 43 4D 44 54 45 52 52 20 3B 42 52 2E 20 49 46 20 |CMDTERR ;BR. IF | 00000DA0: 4E 4F 54 20 49 4E 20 54 48 45 52 C5 30 17 20 53 |NOT IN THER.0. S| 00000DB0: 54 58 20 2A 53 54 41 54 55 D3 40 17 20 4A 53 52 |TX *STATU.@. JSR| 00000DC0: 20 54 41 4C 4B 20 3B 43 4D 44 20 54 4F 20 54 41 | TALK ;CMD TO TA| 00000DD0: 4C CB 50 17 20 4C 44 41 20 2A 53 41 20 3B 53 45 |L.P. LDA *SA ;SE| 00000DE0: 4E 44 20 53 45 43 4F 4E 44 41 52 59 20 41 44 44 |ND SECONDARY ADD| 00000DF0: 52 45 53 D3 60 17 20 4A 53 52 20 53 45 43 4E 44 |RES.`. JSR SECND| 00000E00: 20 3B 20 AA 70 17 20 4C 44 58 20 2A 53 54 41 54 | ; .p. LDX *STAT| 00000E10: 55 D3 80 17 43 4D 44 54 45 52 52 20 52 54 D3 90 |U...CMDTERR RT..| 00000E20: 17 AE 00 18 AE 10 18 3B 20 20 43 4F 4D 4D 41 4E |.......; COMMAN| 00000E30: 44 20 22 50 55 54 22 20 54 4F 20 44 45 56 49 43 |D "PUT" TO DEVIC| 00000E40: 45 20 20 20 5B 20 43 48 41 52 20 49 4E 20 52 28 |E [ CHAR IN R(| 00000E50: 41 29 20 5D BA 20 18 3B 20 20 2D 2D 2D 2D 2D 2D |A) ]. .; ------| 00000E60: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000E70: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000E80: 2D 2D 2D 2D AD 30 18 AE 40 18 AE 50 18 43 4D 44 |----.0..@..P.CMD| 00000E90: 50 55 54 20 4C 44 58 20 23 30 B0 60 18 20 53 54 |PUT LDX #0.`. ST| 00000EA0: 58 20 2A 53 54 41 54 55 D3 70 18 20 50 48 C1 80 |X *STATU.p. PH..| 00000EB0: 18 20 4A 53 52 20 43 49 4F 55 54 20 3B 50 55 54 |. JSR CIOUT ;PUT| 00000EC0: 20 42 59 54 45 20 54 4F 20 49 45 45 45 20 44 45 | BYTE TO IEEE DE| 00000ED0: 56 49 43 C5 90 18 20 50 4C C1 00 19 20 4C 44 58 |VIC... PL... LDX| 00000EE0: 20 2A 53 54 41 54 55 D3 10 19 20 52 54 D3 20 19 | *STATU... RT. .| 00000EF0: AE 30 19 AE 40 19 3B 20 20 43 4F 4D 4D 41 4E 44 |.0..@.; COMMAND| 00000F00: 20 22 47 45 54 22 20 46 52 4F 4D 20 44 45 56 49 | "GET" FROM DEVI| 00000F10: 43 45 20 20 20 20 5B 20 43 48 41 52 20 49 4E 20 |CE [ CHAR IN | 00000F20: 52 28 41 29 20 5D BA 50 19 3B 20 20 2D 2D 2D 2D |R(A) ].P.; ----| 00000F30: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000F40: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00000F50: 2D 2D 2D 2D 2D 2D 2D 2D 2D AD 60 19 AE 70 19 AE |---------.`..p..| 00000F60: 80 19 43 4D 44 47 45 54 20 4C 44 58 20 23 30 B0 |..CMDGET LDX #0.| 00000F70: 90 19 20 53 54 58 20 2A 53 54 41 54 55 D3 00 20 |.. STX *STATU.. | 00000F80: 20 4A 53 52 20 41 43 50 54 52 20 3B 47 45 54 20 | JSR ACPTR ;GET | 00000F90: 42 59 54 45 20 46 52 4F 4D 20 49 45 45 45 20 44 |BYTE FROM IEEE D| 00000FA0: 45 56 49 43 C5 10 20 20 4C 44 58 20 2A 53 54 41 |EVIC.. LDX *STA| 00000FB0: 54 55 D3 20 20 20 52 54 D3 30 20 AE 40 20 AE 50 |TU. RT.0 .@ .P| 00000FC0: 20 3B 20 20 43 4F 4D 4D 41 4E 44 20 44 45 56 49 | ; COMMAND DEVI| 00000FD0: 43 45 20 54 4F 20 55 4E 4C 49 53 54 45 4E 20 20 |CE TO UNLISTEN | 00000FE0: 20 20 5B 20 52 28 59 29 20 3D 20 4C 4F 47 49 43 | [ R(Y) = LOGIC| 00000FF0: 41 4C 20 23 20 5D BA 60 20 3B 20 20 2D 2D 2D 2D |AL # ].` ; ----| 00001000: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00001010: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D |----------------| 00001020: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D AD 70 |--------------.p| 00001030: 20 AE 80 20 AE 90 20 43 4D 44 55 4E 4C 49 53 4E | .. .. CMDUNLISN| 00001040: 20 54 59 C1 00 21 20 4A 53 52 20 53 45 54 55 50 | TY..! JSR SETUP| 00001050: 20 3B 53 45 54 20 55 50 20 46 52 4F 4D 20 54 41 | ;SET UP FROM TA| 00001060: 42 4C C5 10 21 20 42 4E 45 20 43 4D 44 55 4C 45 |BL..! BNE CMDULE| 00001070: 52 52 20 3B 42 52 2E 20 49 46 20 4E 4F 54 20 49 |RR ;BR. IF NOT I| 00001080: 4E 20 54 48 45 52 C5 20 21 20 53 54 58 20 2A 53 |N THER. ! STX *S| 00001090: 54 41 54 55 D3 30 21 20 4A 53 52 20 55 4E 4C 49 |TATU.0! JSR UNLI| 000010A0: 53 4E 20 3B 43 4D 44 20 54 4F 20 55 4E 4C 49 53 |SN ;CMD TO UNLIS| 000010B0: 54 45 CE 40 21 20 4C 44 58 20 2A 53 54 41 54 55 |TE.@! LDX *STATU| 000010C0: D3 50 21 43 4D 44 55 4C 45 52 52 20 52 54 D3 60 |.P!CMDULERR RT.`| 000010D0: 21 AE 70 21 AE 80 21 3B 20 20 43 4F 4D 4D 01 04 |!.p!..!; COMM..| 000010E0: 0C 04 64 00 8B 56 A7 31 39 30 00 14 04 6E 00 56 |..d..V.190...n.V| 000010F0: B2 39 00 2A 04 78 00 99 22 93 11 11 11 11 4D 41 |.9.*.x..".....MA| 00001100: 45 20 2E 2E 2E 2E 4D 22 00 3B 04 82 00 99 22 4C |E ....M".;...."L| 00001110: 41 44 45 52 20 2E 2E 52 22 00 4E 04 8C 00 99 22 |ADER ..R".N...."| 00001120: 45 4E 44 45 20 2E 2E 2E 45 11 11 22 00 65 04 96 |ENDE ...E..".e..| 00001130: 00 85 22 3E 20 22 3B 41 24 3A 8B 41 24 B2 22 45 |.."> ";A$:.A$."E| 00001140: 22 A7 80 00 7F 04 A0 00 8B 41 24 B2 22 52 22 A7 |"........A$."R".| 00001150: 93 22 52 45 4C 2E 45 2A 22 2C 38 2C 31 00 9E 04 |."REL.E*",8,1...| 00001160: AA 00 8B 41 24 B2 22 4D 22 A7 56 B2 38 30 3A 93 |...A$."M".V.80:.| 00001170: 22 4D 41 45 2E 45 2A 22 2C 38 2C 31 00 A7 04 B4 |"MAE.E*",8,1....| 00001180: 00 89 31 35 30 00 C4 04 BE 00 97 35 36 2C 56 3A |..150......56,V:| 00001190: 97 35 35 2C 30 3A 9C 3A 9E 32 35 36 AC C2 28 35 |.55,0:.:.256..(5| 000011A0: 36 29 00 00 00 |6)... |
..0WD...; ********** IEEE 488 LIB.2 ***
******. ..0..@.; ALL MODULES: R(A) = B
YTE INPUT OR OUTPUTP.; ------------ R(
Y) = LOGICAL FILE .`.; R(
X) = 0 IF OK, <> 0 THEN ERRORP..........
; VARIABLE - DEFINITIONS...; ---------
-------------. ..0..@.LA .DE $D2 ;LOGICA
L ADDRESSP.FA .DE $D4 ;FIRST ADDRESS (DE
VICE.`.SA .DE $D3 ;SECONDARY ADDRESS (CH
N #.P.LDTND .DE $AE ;# OF FILES OPEN....
.FNADR .DE $DA ;FILE NAME ADDRESS..FNLEN
.DE $D1 ;FILE NAME LENGTH... .STATUS .D
E $96 ;IEEE STATUS BYTE0.BSOUR .DE $A5 ;
SAVE AREA@..P..`.; SUBROUTINES USED.P.;
----------------.........FINDLT .D
E $F28D ;FIND ENTRY IN LOGICA
L TABLE..SETUPLT .DE $F299 ;SET UP LA,FA
,SA FROM TABLE .REMOVLT .DE $F2E5 ;REMOV
E FROM TABLE0..@.OPENI .DE $F53B ;PUT IN
TABLE AND DO OPENP.CLOSEI .DE $F6F0 ;CL
OSE CHANNEL`..P.LISTN .DE $F0BA ;COMMAND
TO LISTEN..UNLISN .DE $F183 ;COMMAND TO
UNLISTEN.....TALK .DE $F0B6 ;COMMAND TO
TALK..UNTALK .DE $F17F ;COMMAND TO UNTA
LK ..0.SECND .DE $F128 ;SEND SECONDARY A
DDRS@..P.CIOUT .DE $F16F ;OUTPUT TO IEEE
`.ACPTR .DE $F18C ;INPUT FROM IEEEP....B
LKPNT .DE $11 ;POINTER TO BLOCK........;
IEEE OPEN: OPNUSEB = USE OPEN BLOCK P
OINTED TO BY BLKPNT .; ---------.0.;
OPEN = USE LA, FA, SA, FNA
DR, FNLEN@..P..`.OPNUSEB LDY #00 ;FIRST
SET UP FROM BLOCKP. LDA (BLKPNT),Y.. STA
*LA.. INY.. LDA (BLKPNT),Y.. STA *FA .
INY0. LDA (BLKPNT),Y@. ORA #$6.P. STA *S
A`. INYP. LDA (BLKPNT),Y.. STA *FNADR..
INY.. LDA (BLKPNT),Y.. STA *FNADR+. . IN
Y0. LDA (BLKPNT),Y@. STA *FNLENP..`.OPEN
LDA *LAP. JSR FINDLT ;FIND IF IN LOGICA
L TABLE.. BEQ OPNERR ;BR. IF ALREADY IN
THERE.. LDX *LDTND ;CHECK IF MAX. OF 10
OPEN.. CPX #10 ;10 MAX... BCS OPNERR ;BR
. ON TOO MANY OPEN . INC *LDTND ;INC. AS
TOO MANY OPEN0. LDA #0.@. STA *STATUS ;
CLEAR STATUSP. JSR OPENI ;PUT IN TABLE A
ND OPEN`. LDX *STATUSP. RTS..OPNERR LDX
#$FF.. RTS...... .; CLOSE LOGICAL CHANN
EL.0.; ---------------------.@..P..`.CL
OSE TYAP. JSR FINDLT ;FIND IF IN TABLE..
BNE CLOERR ;BR. IF NOT IN THERE.. LDA #
0... STA *STATUS.. TXA . PHA0. JSR CLOSE
I ;CLOSE CHANNEL@. PLAP. TAX`. JSR REMOV
LT ;REMOVE FROM TABLEP. LDX *STATUS.. RT
S..CLOERR LDX #$FF.. RTS... ..0.; PUT B
YTE TO IEEE DEVICE [ BYTE IN R(A), CH
N# IN R(Y) ] .@.; ---------------------
-------------------------------------.P.
.`..P.PUT STA *BSOUR ;SAVE R(A... TYA..
JSR SETUP ;SETUP FROM TABLE.. BNE PUTERR
;BR. IF NOT IN TABLE.. STX *STATUS ;CLE
AR STATUS . JSR LISTN ;IEEE CMD TO LISTE
N0. LDA *SA ;SEND SECONDARY ADDRS@. JSR
SECND ; .P. LDA *BSOUR ;RESTORE R(A.`. J
SR CIOUT ;IEEE OUTPUTP. JSR UNLISN ;IEEE
CMD TO LISTEN.. LDX *STATUS..PUTERR RTS
...... .; GET BYTE FROM IEEE DEVICE [
BYTE IN R(A), CHN# IN R(Y) .0.; -----
----------------------------------------
-------------.@..P..`.GET TYAP. JSR SETU
P ;SETUP FROM TABLE.. BNE GETERR ;BR. IF
NOT IN THERE.. STX *STATUS.. JSR TALK ;
CMD DEVICE TO TALK.. LDA *SA ;SEND SECON
DARY ADDRS . JSR SECND ; .0. JSR ACPTR ;
IEEE INPUT@. PHAP. JSR UNTALK ;CMD DEVIC
E TO UNTALK`. PLAP. LDX *STATUS..GETERR
RTS........; COMMAND DEVICE TO LISTEN
[ CHN# IN R(Y) ]. .; -----------------
--------------------------.0..@..P.CMDLI
STN TYA`. JSR SETUP ;SET UP FROM TABLE
P. BNE CMDLERR ;BR. IF NOT IN THERE.. ST
X *STATUS.. JSR LISTN ;CMD TO LISTEN.. L
DA *SA ;SEND SECONDARY ADDRS.. JSR SECND
; . . LDX *STATUS0.CMDLERR RTS@..P..`.;
COMMAND DEVICE TO TALK [ CHN# IN R(
Y) ].P.; ------------------------------
------------.........CMDTALK TYA.. JS
R SETUP ;SETUP FROM TABLE . BNE CMDTERR
;BR. IF NOT IN THERE0. STX *STATUS@. JSR
TALK ;CMD TO TALKP. LDA *SA ;SEND SECON
DARY ADDRESS`. JSR SECND ; .P. LDX *STAT
US..CMDTERR RTS........; COMMAND "PUT"
TO DEVICE [ CHAR IN R(A) ]. .; ------
------------------------------------.0..
@..P.CMDPUT LDX #0.`. STX *STATUSP. PHA.
. JSR CIOUT ;PUT BYTE TO IEEE DEVICE.. P
LA.. LDX *STATUS.. RTS ..0..@.; COMMAND
"GET" FROM DEVICE [ CHAR IN R(A) ].P
.; ------------------------------------
---------.`..P....CMDGET LDX #0... STX *
STATUS. JSR ACPTR ;GET BYTE FROM IEEE D
EVICE. LDX *STATUS RTS0 .@ .P ; COMM
AND DEVICE TO UNLISTEN [ R(Y) = LOGIC
AL # ].` ; ----------------------------
----------------------.P .. .. CMDUNLISN
TYA.! JSR SETUP ;SET UP FROM TABLE.! BN
E CMDULERR ;BR. IF NOT IN THERE ! STX *S
TATUS0! JSR UNLISN ;CMD TO UNLISTEN@! LD
X *STATUSP!CMDULERR RTS`!.P!..!; COMM..
..D..V.190...N.V.9.*.X..".....MAE ....M"
.;...."LADER ..R".N...."ENDE ...E..".E..
.."> ";A$:.A$."E".... ..A$."R".."REL.E*
",8,1......A$."M".V.80:."MAE.E*",8,1....
..150.D....56,V:.55,0:.:.256.B(56)...
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL