C64/C128 Projects

Autoboot Disk Maker for Lunix-V0.1p4 and C128

  The 'autolunix' program is a basic v2.0 program which makes the disk of LUnix OS bootable.

  Its usage is simple. Just load autolunix basic file and run it. It will check the boot sector, whether it is allocated or not. If the boot block (track 1 sector 0) is not free, it stops with prompting you the situation. If you don't bother to loose data or you do know what you're doing, typing "cont" continues the process.

  After succesfully writing of the boot-block, you can test it by pressing the reset button of your C128, while the boot disk is in the drive #8 .

  If there is no problem, the bootstrap code in the C128 firmware OS loads the boot-block into the $00b00 address, and executes the code presented in it. The code first loads the file "lunix.sys" with fast load routines of C128, then it writes the autostart information to the area of $8000. And finally it turns the 1571 into 1541 emulation mode and switches to C64 mode.

  The C64 firmware OS checks the autostart information, and following the pointers jumps to the $8009 address. The code at this location initializes the I/O and memory, deletes the autostart information and jumps to the $8c3a address which is starting address of LUnix OS. So that the LUnix will gain the control.

24 March 1997

Ilker Ficicilar


2 rem *****************************
3 rem *                           *
4 rem * autobooter for lunix v0.1 *
5 rem *                           *
6 rem * by ilker ficicilar        *
7 rem *                           *
8 rem *****************************
9 rem
10 a$=""
12 print"preparing the boot block"
15 reada:ifa>=0thena$=a$+chr$(a):goto15
18 print"trying to write it"
20 open1,8,15:open2,8,13,"#"
22 print#1,"b-a 0 1 0"
24 input#1,a,b$,c,d
26 if a>0thenprint"this block is allocated":print"to continue type 'cont'":stop
28 print"beware you will loose the":print"previous content of track 1 sector 0"
29 print"press stop to cancel":fori=0to2000:next:print"writing the boot sector"
30 print#1,"b-f 0 1 0"
40 print#1,"b-p 13 0"
50 print#2,a$;
60 print#1,"u2 13 0 1 0"
70 print#1,"b-a 0 1 0"
80 close2:close1:end
200 data67,66,77,0,0,0,0,14,30,147,66,79,79,84,73,78,71,32,204,213,78,73
210 data88,0,0,169,9,162,96,160,11,32,189,255,169,5,166,186,160,1,32,186
220 data255,169,0,32,213,255,160,31,185,112,11,153,0,128,136,16,247,169,8
230 data32,177,255,169,85,32,168,255,169,48,32,168,255,169,62,32,168,255
240 data169,77,32,168,255,169,48,32,168,255,32,174,255,76,77,255,0,76,85
250 data78,73,88,46,83,89,83,0,0,0,0,0,0,0,9,128,9,128,195,194,205,56,48
260 data169,55,133,1,32,135,255,32,129,255,32,138,255,169,8,133,186
270 data141,4,128,76,58,140,0,0,0,0,0,0,0,0
290 data-1


Related files:

C64/C128 Projects  by  Quick Turkish   Changelog   Site Map   Index