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

WTBOOT.SRC

FILE INFORMATION

FILENAME(S): WTBOOT.SRC

FILE TYPE(S): SEQ

FILE SIZE: 1.6K

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

APPEARS ON: 1 disk(s)

FILE HASH

eeb8f3fb613bbf51a20aa4139d2ff289197fbd836d69433530b8e264f2e2b92c

FOUND ON DISKS (1 DISKS)

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

FILE CONTENT & ANALYSIS

00000000: 3B 42 50 55 54 22 57 52  49 54 45 42 4F 4F 54 2E  |;BPUT"WRITEBOOT.|
00000010: 53 52 43 22 0D 3B 52 50  55 54 22 57 52 49 54 45  |SRC".;RPUT"WRITE|
00000020: 42 4F 4F 54 2E 53 52 43  22 0D 3B 0D 2E 4C 49 42  |BOOT.SRC".;..LIB|
00000030: 20 48 41 52 44 4A 55 4D  50 2E 45 51 0D 2E 4C 49  | HARDJUMP.EQ..LI|
00000040: 42 20 48 41 52 44 49 53  4B 5A 2E 45 51 0D 3B 0D  |B HARDISKZ.EQ.;.|
00000050: 2A 20 3D 20 24 30 38 34  30 0D 53 54 41 52 54 20  |* = $0840.START |
00000060: 4A 53 52 20 48 44 49 4E  49 54 20 3B 49 4E 49 54  |JSR HDINIT ;INIT|
00000070: 20 43 54 4C 20 42 4C 4F  43 4B 53 0D 20 4A 53 52  | CTL BLOCKS. JSR|
00000080: 20 52 45 53 45 54 20 3B  49 53 53 55 45 20 54 48  | RESET ;ISSUE TH|
00000090: 45 20 52 45 53 45 54 0D  20 4C 44 41 20 23 24 33  |E RESET. LDA #$3|
000000A0: 37 0D 20 53 54 41 20 24  30 31 0D 20 42 43 43 20  |7. STA $01. BCC |
000000B0: 4E 4F 45 52 52 4F 52 0D  20 4A 4D 50 20 52 45 53  |NOERROR. JMP RES|
000000C0: 45 54 45 52 52 4F 52 0D  4E 4F 45 52 52 4F 52 20  |ETERROR.NOERROR |
000000D0: 3D 20 2A 0D 20 4C 44 41  20 23 24 33 36 0D 20 53  |= *. LDA #$36. S|
000000E0: 54 41 20 24 30 31 0D 20  4C 44 41 20 23 24 38 30  |TA $01. LDA #$80|
000000F0: 0D 20 4C 44 59 20 23 24  32 38 20 3B 47 45 54 20  |. LDY #$28 ;GET |
00000100: 4E 55 4D 42 45 52 20 4F  46 20 53 45 43 54 4F 52  |NUMBER OF SECTOR|
00000110: 53 20 54 4F 20 52 45 41  44 0D 20 4C 44 58 20 23  |S TO READ. LDX #|
00000120: 24 34 30 20 3B 47 45 54  20 53 45 43 54 4F 52 20  |$40 ;GET SECTOR |
00000130: 4E 55 4D 42 45 52 0D 20  4A 53 52 20 57 52 49 54  |NUMBER. JSR WRIT|
00000140: 45 49 54 20 3B 47 4F 20  43 4F 4E 56 45 52 54 20  |EIT ;GO CONVERT |
00000150: 41 4E 44 20 52 45 41 44  0D 20 42 43 43 20 4E 4F  |AND READ. BCC NO|
00000160: 45 52 52 4F 52 31 0D 20  4A 4D 50 20 57 52 49 54  |ERROR1. JMP WRIT|
00000170: 45 45 52 52 4F 52 20 3B  47 4F 20 49 46 20 42 41  |EERROR ;GO IF BA|
00000180: 44 0D 4E 4F 45 52 52 4F  52 31 20 3D 20 2A 0D 20  |D.NOERROR1 = *. |
00000190: 4C 44 59 20 23 30 20 3B  4D 4F 56 45 20 52 41 4D  |LDY #0 ;MOVE RAM|
000001A0: 20 46 52 4F 4D 20 55 4E  44 45 52 20 4B 45 52 4E  | FROM UNDER KERN|
000001B0: 41 4C 0D 20 53 45 49 0D  20 4C 44 41 20 23 24 33  |AL. SEI. LDA #$3|
000001C0: 35 0D 20 53 54 41 20 24  30 31 0D 4D 4F 56 45 52  |5. STA $01.MOVER|
000001D0: 4F 4D 20 4C 44 41 20 24  45 30 30 30 2C 59 0D 20  |OM LDA $E000,Y. |
000001E0: 53 54 41 20 24 32 30 30  30 2C 59 0D 20 4C 44 41  |STA $2000,Y. LDA|
000001F0: 20 24 45 31 30 30 2C 59  0D 20 53 54 41 20 24 32  | $E100,Y. STA $2|
00000200: 31 30 30 2C 59 0D 20 4C  44 41 20 24 45 32 30 30  |100,Y. LDA $E200|
00000210: 2C 59 0D 20 53 54 41 20  24 32 32 30 30 2C 59 0D  |,Y. STA $2200,Y.|
00000220: 20 4C 44 41 20 24 45 33  30 30 2C 59 0D 20 53 54  | LDA $E300,Y. ST|
00000230: 41 20 24 32 33 30 30 2C  59 0D 20 4C 44 41 20 24  |A $2300,Y. LDA $|
00000240: 45 34 30 30 2C 59 0D 20  53 54 41 20 24 32 34 30  |E400,Y. STA $240|
00000250: 30 2C 59 0D 20 4C 44 41  20 24 45 35 30 30 2C 59  |0,Y. LDA $E500,Y|
00000260: 0D 20 53 54 41 20 24 32  35 30 30 2C 59 0D 20 4C  |. STA $2500,Y. L|
00000270: 44 41 20 24 45 36 30 30  2C 59 0D 20 53 54 41 20  |DA $E600,Y. STA |
00000280: 24 32 36 30 30 2C 59 0D  20 4C 44 41 20 24 45 37  |$2600,Y. LDA $E7|
00000290: 30 30 2C 59 0D 20 53 54  41 20 24 32 37 30 30 2C  |00,Y. STA $2700,|
000002A0: 59 0D 20 4C 44 41 20 24  45 38 30 30 2C 59 0D 20  |Y. LDA $E800,Y. |
000002B0: 53 54 41 20 24 32 38 30  30 2C 59 0D 20 4C 44 41  |STA $2800,Y. LDA|
000002C0: 20 24 45 39 30 30 2C 59  0D 20 53 54 41 20 24 32  | $E900,Y. STA $2|
000002D0: 39 30 30 2C 59 0D 20 4C  44 41 20 24 45 41 30 30  |900,Y. LDA $EA00|
000002E0: 2C 59 0D 20 53 54 41 20  24 32 41 30 30 2C 59 0D  |,Y. STA $2A00,Y.|
000002F0: 20 4C 44 41 20 24 45 42  30 30 2C 59 0D 20 53 54  | LDA $EB00,Y. ST|
00000300: 41 20 24 32 42 30 30 2C  59 0D 20 4C 44 41 20 24  |A $2B00,Y. LDA $|
00000310: 45 43 30 30 2C 59 0D 20  53 54 41 20 24 32 43 30  |EC00,Y. STA $2C0|
00000320: 30 2C 59 0D 20 49 4E 59  0D 20 42 4E 45 20 4D 4F  |0,Y. INY. BNE MO|
00000330: 56 45 52 4F 4D 0D 20 4C  44 41 20 23 24 33 37 0D  |VEROM. LDA #$37.|
00000340: 20 53 54 41 20 24 30 31  0D 20 43 4C 49 0D 20 4C  | STA $01. CLI. L|
00000350: 44 41 20 23 24 32 30 20  3B 41 44 44 52 45 53 53  |DA #$20 ;ADDRESS|
00000360: 20 49 4E 50 55 54 20 41  52 45 41 0D 20 4C 44 59  | INPUT AREA. LDY|
00000370: 20 23 24 31 30 0D 20 4C  44 58 20 23 24 36 39 0D  | #$10. LDX #$69.|
00000380: 20 4A 53 52 20 57 52 49  54 45 49 54 0D 20 42 43  | JSR WRITEIT. BC|
00000390: 53 20 57 52 49 54 45 45  52 52 4F 52 0D 20 52 54  |S WRITEERROR. RT|
000003A0: 53 0D 3B 0D 57 52 49 54  45 49 54 20 53 54 41 20  |S.;.WRITEIT STA |
000003B0: 42 55 46 41 44 52 2B 31  20 3B 41 44 44 52 45 53  |BUFADR+1 ;ADDRES|
000003C0: 53 20 49 4E 50 55 54 0D  20 53 54 59 20 42 4C 4B  |S INPUT. STY BLK|
000003D0: 43 4E 54 20 3B 23 20 35  31 32 20 42 59 54 45 20  |CNT ;# 512 BYTE |
000003E0: 42 4C 4F 43 4B 53 0D 20  53 54 58 20 53 45 43 4E  |BLOCKS. STX SECN|
000003F0: 55 4D 2B 32 0D 20 4C 44  41 20 23 30 0D 20 53 54  |UM+2. LDA #0. ST|
00000400: 41 20 48 44 4E 55 4D 20  3B 43 4C 45 41 52 20 54  |A HDNUM ;CLEAR T|
00000410: 48 45 20 44 52 49 56 45  20 4E 55 4D 42 45 52 0D  |HE DRIVE NUMBER.|
00000420: 20 53 54 41 20 53 45 43  4E 55 4D 0D 20 53 54 41  | STA SECNUM. STA|
00000430: 20 53 45 43 4E 55 4D 2B  31 0D 20 4A 53 52 20 53  | SECNUM+1. JSR S|
00000440: 45 43 32 43 59 4C 44 43  42 20 3B 43 4F 4E 56 45  |EC2CYLDCB ;CONVE|
00000450: 52 54 20 54 4F 20 44 49  53 4B 20 41 44 44 52 0D  |RT TO DISK ADDR.|
00000460: 20 4C 44 41 20 48 45 41  44 20 3B 46 49 4C 4C 20  | LDA HEAD ;FILL |
00000470: 54 48 45 20 44 43 42 0D  20 53 54 41 20 48 44 4E  |THE DCB. STA HDN|
00000480: 55 4D 0D 20 4C 44 41 20  43 59 4C 4C 53 42 20 3B  |UM. LDA CYLLSB ;|
00000490: 47 45 54 20 4C 4F 57 20  43 59 4C 20 41 44 44 52  |GET LOW CYL ADDR|
000004A0: 0D 20 53 54 41 20 43 59  4C 4E 55 4D 0D 20 4C 44  |. STA CYLNUM. LD|
000004B0: 41 20 43 59 4C 4D 53 42  20 3B 47 45 54 20 48 49  |A CYLMSB ;GET HI|
000004C0: 20 43 59 4C 20 41 4E 44  20 53 45 43 54 4F 52 0D  | CYL AND SECTOR.|
000004D0: 20 53 54 41 20 53 45 43  41 44 52 20 3B 50 55 54  | STA SECADR ;PUT|
000004E0: 20 49 4E 20 44 43 42 0D  20 4C 44 41 20 23 3C 49  | IN DCB. LDA #<I|
000004F0: 47 4E 4F 52 45 0D 20 4C  44 59 20 23 3E 49 47 4E  |GNORE. LDY #>IGN|
00000500: 4F 52 45 0D 20 53 54 41  20 24 46 46 46 45 0D 20  |ORE. STA $FFFE. |
00000510: 53 54 59 20 24 46 46 46  46 0D 20 53 54 41 20 24  |STY $FFFF. STA $|
00000520: 46 46 46 41 0D 20 53 54  59 20 24 46 46 46 42 0D  |FFFA. STY $FFFB.|
00000530: 20 4A 53 52 20 57 52 49  54 45 20 3B 52 45 41 44  | JSR WRITE ;READ|
00000540: 20 41 4E 44 20 52 45 54  55 52 4E 20 54 4F 20 43  | AND RETURN TO C|
00000550: 41 4C 4C 45 52 0D 20 52  54 53 0D 3B 0D 49 47 4E  |ALLER. RTS.;.IGN|
00000560: 4F 52 45 20 52 54 49 0D  3B 0D 52 45 53 45 54 45  |ORE RTI.;.RESETE|
00000570: 52 52 4F 52 20 4C 44 58  20 23 30 0D 20 2E 42 59  |RROR LDX #0. .BY|
00000580: 54 20 24 32 43 20 3B 0D  57 52 49 54 45 45 52 52  |T $2C ;.WRITEERR|
00000590: 4F 52 20 4C 44 58 20 23  31 34 0D 57 52 49 54 45  |OR LDX #14.WRITE|
000005A0: 45 52 52 4F 52 4C 20 4C  44 41 20 52 45 53 45 54  |ERRORL LDA RESET|
000005B0: 4D 53 47 2C 58 0D 20 42  45 51 20 44 4F 4E 45 0D  |MSG,X. BEQ DONE.|
000005C0: 20 4A 53 52 20 24 46 46  44 32 0D 20 49 4E 58 0D  | JSR $FFD2. INX.|
000005D0: 20 42 4E 45 20 57 52 49  54 45 45 52 52 4F 52 4C  | BNE WRITEERRORL|
000005E0: 0D 44 4F 4E 45 20 52 54  53 0D 20 42 52 4B 0D 3B  |.DONE RTS. BRK.;|
000005F0: 0D 52 45 53 45 54 4D 53  47 20 2E 42 59 54 20 27  |.RESETMSG .BYT '|
00000600: 52 45 53 45 54 20 46 41  49 4C 45 44 27 2C 31 33  |RESET FAILED',13|
00000610: 2C 30 0D 57 52 49 54 45  45 52 52 4D 53 47 20 2E  |,0.WRITEERRMSG .|
00000620: 42 59 54 20 27 57 52 49  54 45 20 46 41 49 4C 45  |BYT 'WRITE FAILE|
00000630: 44 27 2C 31 33 2C 30 0D  2E 45 4E 44 00 00 00 00  |D',13,0..END....|
00000640: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000650: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000660: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000670: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
;BPUT"WRITEBOOT.SRC".;RPUT"WRITEBOOT.SRC
".;..LIB HARDJUMP.EQ..LIB HARDISKZ.EQ.;.
* = $0840.START JSR HDINIT ;INIT CTL BLO
CKS. JSR RESET ;ISSUE THE RESET. LDA #$3
7. STA $01. BCC NOERROR. JMP RESETERROR.
NOERROR = *. LDA #$36. STA $01. LDA #$80
. LDY #$28 ;GET NUMBER OF SECTORS TO REA
D. LDX #$40 ;GET SECTOR NUMBER. JSR WRIT
EIT ;GO CONVERT AND READ. BCC NOERROR1. 
JMP WRITEERROR ;GO IF BAD.NOERROR1 = *. 
LDY #0 ;MOVE RAM FROM UNDER KERNAL. SEI.
 LDA #$35. STA $01.MOVEROM LDA $E000,Y. 
STA $2000,Y. LDA $E100,Y. STA $2100,Y. L
DA $E200,Y. STA $2200,Y. LDA $E300,Y. ST
A $2300,Y. LDA $E400,Y. STA $2400,Y. LDA
 $E500,Y. STA $2500,Y. LDA $E600,Y. STA 
$2600,Y. LDA $E700,Y. STA $2700,Y. LDA $
E800,Y. STA $2800,Y. LDA $E900,Y. STA $2
900,Y. LDA $EA00,Y. STA $2A00,Y. LDA $EB
00,Y. STA $2B00,Y. LDA $EC00,Y. STA $2C0
0,Y. INY. BNE MOVEROM. LDA #$37. STA $01
. CLI. LDA #$20 ;ADDRESS INPUT AREA. LDY
 #$10. LDX #$69. JSR WRITEIT. BCS WRITEE
RROR. RTS.;.WRITEIT STA BUFADR+1 ;ADDRES
S INPUT. STY BLKCNT ;# 512 BYTE BLOCKS. 
STX SECNUM+2. LDA #0. STA HDNUM ;CLEAR T
HE DRIVE NUMBER. STA SECNUM. STA SECNUM+
1. JSR SEC2CYLDCB ;CONVERT TO DISK ADDR.
 LDA HEAD ;FILL THE DCB. STA HDNUM. LDA 
CYLLSB ;GET LOW CYL ADDR. STA CYLNUM. LD
A CYLMSB ;GET HI CYL AND SECTOR. STA SEC
ADR ;PUT IN DCB. LDA #<IGNORE. LDY #>IGN
ORE. STA $FFFE. STY $FFFF. STA $FFFA. ST
Y $FFFB. JSR WRITE ;READ AND RETURN TO C
ALLER. RTS.;.IGNORE RTI.;.RESETERROR LDX
 #0. .BYT $2C ;.WRITEERROR LDX #14.WRITE
ERRORL LDA RESETMSG,X. BEQ DONE. JSR $FF
D2. INX. BNE WRITEERRORL.DONE RTS. BRK.;
.RESETMSG .BYT 'RESET FAILED',13,0.WRITE
ERRMSG .BYT 'WRITE FAILED',13,0..END....
........................................
........................
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL