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

RDBOOT.SRC

FILE INFORMATION

FILENAME(S): RDBOOT.SRC

FILE TYPE(S): SEQ

FILE SIZE: 1K

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

APPEARS ON: 1 disk(s)

FILE HASH

699b99e943e674f52d329b44d6ed1737c32d1fbf7214bea1cb61b66a838bf85f

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
64HDPROJ RDBOOT.SRC SEQ High Voltage Complete C64 Collection 22 5 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 3B 42 50 55 54 22 52 45  41 44 42 4F 4F 54 2E 53  |;BPUT"READBOOT.S|
00000010: 52 43 22 0D 3B 52 50 55  54 22 52 45 41 44 42 4F  |RC".;RPUT"READBO|
00000020: 4F 54 2E 53 52 43 22 0D  3B 0D 2E 4C 49 42 20 48  |OT.SRC".;..LIB H|
00000030: 41 52 44 4A 55 4D 50 2E  45 51 0D 2E 4C 49 42 20  |ARDJUMP.EQ..LIB |
00000040: 48 41 52 44 49 53 4B 5A  2E 45 51 0D 3B 0D 2A 20  |HARDISKZ.EQ.;.* |
00000050: 3D 20 24 30 38 34 30 0D  53 54 41 52 54 20 4A 53  |= $0840.START JS|
00000060: 52 20 48 44 49 4E 49 54  20 3B 49 4E 49 54 20 43  |R HDINIT ;INIT C|
00000070: 54 4C 20 42 4C 4F 43 4B  53 0D 20 4A 53 52 20 52  |TL BLOCKS. JSR R|
00000080: 45 53 45 54 20 3B 49 53  53 55 45 20 54 48 45 20  |ESET ;ISSUE THE |
00000090: 52 45 53 45 54 0D 20 42  43 53 20 52 45 53 45 54  |RESET. BCS RESET|
000000A0: 45 52 52 4F 52 0D 20 4C  44 41 20 23 24 38 30 0D  |ERROR. LDA #$80.|
000000B0: 20 4C 44 59 20 23 24 32  38 20 3B 47 45 54 20 4E  | LDY #$28 ;GET N|
000000C0: 55 4D 42 45 52 20 4F 46  20 53 45 43 54 4F 52 53  |UMBER OF SECTORS|
000000D0: 20 54 4F 20 52 45 41 44  0D 20 4C 44 58 20 23 24  | TO READ. LDX #$|
000000E0: 34 30 20 3B 47 45 54 20  53 45 43 54 4F 52 20 4E  |40 ;GET SECTOR N|
000000F0: 55 4D 42 45 52 0D 20 4A  53 52 20 52 45 41 44 49  |UMBER. JSR READI|
00000100: 54 20 3B 47 4F 20 43 4F  4E 56 45 52 54 20 41 4E  |T ;GO CONVERT AN|
00000110: 44 20 52 45 41 44 0D 20  42 43 53 20 52 45 41 44  |D READ. BCS READ|
00000120: 45 52 52 4F 52 20 3B 47  4F 20 49 46 20 42 41 44  |ERROR ;GO IF BAD|
00000130: 0D 20 4C 44 41 20 23 24  45 30 20 3B 41 44 44 52  |. LDA #$E0 ;ADDR|
00000140: 45 53 53 20 49 4E 50 55  54 20 41 52 45 41 0D 20  |ESS INPUT AREA. |
00000150: 4C 44 59 20 23 24 31 30  0D 20 4C 44 58 20 23 24  |LDY #$10. LDX #$|
00000160: 36 39 0D 20 4A 53 52 20  52 45 41 44 49 54 0D 20  |69. JSR READIT. |
00000170: 42 43 53 20 52 45 41 44  45 52 52 4F 52 0D 20 4A  |BCS READERROR. J|
00000180: 53 52 20 35 32 32 32 34  0D 20 4A 4D 50 20 24 43  |SR 52224. JMP $C|
00000190: 30 30 30 20 3B 45 4E 44  0D 3B 0D 52 45 41 44 49  |000 ;END.;.READI|
000001A0: 54 20 53 54 41 20 42 55  46 41 44 52 2B 31 20 3B  |T STA BUFADR+1 ;|
000001B0: 41 44 44 52 45 53 53 20  49 4E 50 55 54 0D 20 53  |ADDRESS INPUT. S|
000001C0: 54 59 20 42 4C 4B 43 4E  54 20 3B 23 20 35 31 32  |TY BLKCNT ;# 512|
000001D0: 20 42 59 54 45 20 42 4C  4F 43 4B 53 0D 20 53 54  | BYTE BLOCKS. ST|
000001E0: 58 20 53 45 43 4E 55 4D  2B 32 0D 20 4C 44 41 20  |X SECNUM+2. LDA |
000001F0: 23 30 0D 20 53 54 41 20  48 44 4E 55 4D 20 3B 43  |#0. STA HDNUM ;C|
00000200: 4C 45 41 52 20 54 48 45  20 44 52 49 56 45 20 4E  |LEAR THE DRIVE N|
00000210: 55 4D 42 45 52 0D 20 53  54 41 20 53 45 43 4E 55  |UMBER. STA SECNU|
00000220: 4D 0D 20 53 54 41 20 53  45 43 4E 55 4D 2B 31 0D  |M. STA SECNUM+1.|
00000230: 20 4A 53 52 20 53 45 43  32 43 59 4C 44 43 42 20  | JSR SEC2CYLDCB |
00000240: 3B 43 4F 4E 56 45 52 54  20 54 4F 20 44 49 53 4B  |;CONVERT TO DISK|
00000250: 20 41 44 44 52 0D 20 4C  44 41 20 48 45 41 44 20  | ADDR. LDA HEAD |
00000260: 3B 46 49 4C 4C 20 54 48  45 20 44 43 42 0D 20 53  |;FILL THE DCB. S|
00000270: 54 41 20 48 44 4E 55 4D  0D 20 4C 44 41 20 43 59  |TA HDNUM. LDA CY|
00000280: 4C 4C 53 42 20 3B 47 45  54 20 4C 4F 57 20 43 59  |LLSB ;GET LOW CY|
00000290: 4C 20 41 44 44 52 0D 20  53 54 41 20 43 59 4C 4E  |L ADDR. STA CYLN|
000002A0: 55 4D 0D 20 4C 44 41 20  43 59 4C 4D 53 42 20 3B  |UM. LDA CYLMSB ;|
000002B0: 47 45 54 20 48 49 20 43  59 4C 20 41 4E 44 20 53  |GET HI CYL AND S|
000002C0: 45 43 54 4F 52 0D 20 53  54 41 20 53 45 43 41 44  |ECTOR. STA SECAD|
000002D0: 52 20 3B 50 55 54 20 49  4E 20 44 43 42 0D 20 4A  |R ;PUT IN DCB. J|
000002E0: 4D 50 20 52 45 41 44 20  3B 52 45 41 44 20 41 4E  |MP READ ;READ AN|
000002F0: 44 20 52 45 54 55 52 4E  20 54 4F 20 43 41 4C 4C  |D RETURN TO CALL|
00000300: 45 52 0D 3B 0D 52 45 53  45 54 45 52 52 4F 52 20  |ER.;.RESETERROR |
00000310: 4C 44 58 20 23 30 0D 20  2E 42 59 54 20 24 32 43  |LDX #0. .BYT $2C|
00000320: 20 3B 0D 52 45 41 44 45  52 52 4F 52 20 4C 44 58  | ;.READERROR LDX|
00000330: 20 23 30 0D 52 45 41 44  45 52 52 4F 52 4C 20 4C  | #0.READERRORL L|
00000340: 44 41 20 52 45 53 45 54  4D 53 47 2C 58 0D 20 42  |DA RESETMSG,X. B|
00000350: 45 51 20 44 4F 4E 45 0D  20 4A 53 52 20 24 46 46  |EQ DONE. JSR $FF|
00000360: 44 32 0D 20 49 4E 58 0D  20 42 4E 45 20 52 45 41  |D2. INX. BNE REA|
00000370: 44 45 52 52 4F 52 4C 0D  44 4F 4E 45 20 52 54 53  |DERRORL.DONE RTS|
00000380: 0D 20 42 52 4B 0D 3B 0D  52 45 53 45 54 4D 53 47  |. BRK.;.RESETMSG|
00000390: 20 2E 42 59 54 20 27 52  45 53 45 54 20 46 41 49  | .BYT 'RESET FAI|
000003A0: 4C 45 44 27 2C 31 33 2C  30 0D 52 45 41 44 45 52  |LED',13,0.READER|
000003B0: 52 4D 53 47 20 2E 42 59  54 20 27 52 45 41 44 20  |RMSG .BYT 'READ |
000003C0: 46 41 49 4C 45 44 27 2C  31 33 2C 30 0D 2E 45 4E  |FAILED',13,0..EN|
000003D0: 44 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |D...............|
000003E0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000003F0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
;BPUT"READBOOT.SRC".;RPUT"READBOOT.SRC".
;..LIB HARDJUMP.EQ..LIB HARDISKZ.EQ.;.* 
= $0840.START JSR HDINIT ;INIT CTL BLOCK
S. JSR RESET ;ISSUE THE RESET. BCS RESET
ERROR. LDA #$80. LDY #$28 ;GET NUMBER OF
 SECTORS TO READ. LDX #$40 ;GET SECTOR N
UMBER. JSR READIT ;GO CONVERT AND READ. 
BCS READERROR ;GO IF BAD. LDA #$E0 ;ADDR
ESS INPUT AREA. LDY #$10. LDX #$69. JSR 
READIT. BCS READERROR. JSR 52224. JMP $C
000 ;END.;.READIT STA BUFADR+1 ;ADDRESS 
INPUT. STY BLKCNT ;# 512 BYTE BLOCKS. ST
X SECNUM+2. LDA #0. STA HDNUM ;CLEAR THE
 DRIVE NUMBER. STA SECNUM. STA SECNUM+1.
 JSR SEC2CYLDCB ;CONVERT TO DISK ADDR. L
DA HEAD ;FILL THE DCB. STA HDNUM. LDA CY
LLSB ;GET LOW CYL ADDR. STA CYLNUM. LDA 
CYLMSB ;GET HI CYL AND SECTOR. STA SECAD
R ;PUT IN DCB. JMP READ ;READ AND RETURN
 TO CALLER.;.RESETERROR LDX #0. .BYT $2C
 ;.READERROR LDX #0.READERRORL LDA RESET
MSG,X. BEQ DONE. JSR $FFD2. INX. BNE REA
DERRORL.DONE RTS. BRK.;.RESETMSG .BYT 'R
ESET FAILED',13,0.READERRMSG .BYT 'READ 
FAILED',13,0..END.......................
........................
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL