Listing of VERY simple "boot loader". (c) 1998 Milan Vancura For free noncommercial use. Usage: save this to a 1st sector on the disk, save your program from sec. #2 and modify from_adress, #last_sector and start_adress (see below for examples). I have use this loader for "one-block"programs transfered from tape. It's a "15minutes work", so don't search for any super ideas, please :-) (Listing was generated by disass.pl from a tools directory.) 1530: H 0 ; First byte:=0 1531: E 1 ; We are loading 1 sector 1532: A 250 ; Begin adress = Start - header_length 1533: D 5 1534: E 0 ; Start adress of program 1535: R 6 1536: LDX #82 162 82 ; Get_sector command 1538: STX 770 142 2 3 ; to command byte 1541: LDX #1 162 1 ; Drive_number 1543: STX 769 142 1 3 ; 1546: LDX #0 162 0 ; Start_sector = 2 1548: STX 779 142 11 3 ; (1st sec. is this) 1551: LDX #2 162 2 ; 1553: STX 778 142 10 3 ; 1556: LDX #0 162 0 ; Begin of loaded program 1558: STX 772 142 4 3 ; (41*256 here) 1561: LDX #41 162 41 ; CHANGE TO YOUR VALUE 1563: STX 773 142 5 3 ; 1566: JSR 58451 32 83 228 ; Get sector via SIO 1569: CLC 24 ; Shift begin of buffer 1570: LDA 772 173 4 3 ; for next sector 1573: ADC #128 105 128 ; 1575: BCC 1580 144 1580 ; 1577: INC 773 238 5 3 ; 1580: STA 772 141 4 3 ; 1583: CLC 24 ; Inc. a sector number 1584: INC 778 238 10 3 ; 1587: BNE 1592 208 1592 ; 1589: INC 779 238 11 3 ; 1592: CLC 24 ; The last sec. is 1593: LDX #137 162 137 ; 137 + 1595: LDA #0 169 0 ; + 0 x 256 = 137 1597: CPX 778 236 10 3 ; CHANGE TO YOUR VALUE 1600: SBC 779 237 11 3 ; Was this a last sector? 1603: BCS 1566 176 1566 ; Get next one if no 1605: JMP 27776 76 128 108 ; All sectors are loaded - jump 1608: BRK 0 ; to a start adress of program 1609: BRK 0 ; (27776 here), CHANGE 1610: BRK 0 ; Rest of the 1st sec. are zeros