Writing a new #CommodoreAmiga KickStart disk, by writing a program which uses Trackdisk.device.

Channel:
Subscribers:
3,110
Published on ● Video Link: https://www.youtube.com/watch?v=XgqUODfOfKo



Duration: 0:00
1,084 views
59


Writing a #CommodoreAmiga KickStart disk requires the trackdisk.device. This deep-dive video shows how to write a program which uses it to write a pre-launch Beta KickStart disk from a source ROM file.

#retrocomputing

code:
https://github.com/tschak909/amiga-make-kick

Chapter Index:

0:00:00 Intro
0:01:10 What is a KickStart disk?
0:06:29 Demonstrating MakeKick
0:10:00 Writing MakeKick (starting with #includes.)
0:13:30 Implementing main(), init(); done(), makekick(fn,df)
0:19:55 First use of AutoRequest(), for show_usage()
0:22:45 our first IntuiTexts for show_usage's AutoRequest()
0:26:40 First compile
0:27:30 Fix typos, add button text I forgot.
0:29:35 Second compile
0:30:48 First run, our show_usage() requester comes up.
0:32:15 makekick() Opening our ROM file using AmigaDOS.
0:35:20 Implementing show_error()
0:36:35 Third compile
0:37:15 Oops, forgot an IntuiText for opening the ROM error.
0:38:00 Fourth compile
0:38:30 First run, and WOW a crash! OOM!
0:40:35 Was that a fluke? NOPE. CRASH!
0:41:00 Problem was a missing parameter into AutoRequest!
0:41:40 Fifth Compile
0:43:00 Testing our Open.
0:43:35 Determining unit number using some ASCII trickery.
0:45:58 Opening our reply port with CreatePort()
0:49:00 Creating our IOTDReq using CreateExtIO()
0:52:49 Opening trackdisk.device with OpenDevice()
0:58:10 Implementing are_you_sure()
1:01:25 Sixth Compile
1:02:00 Forgot our TrackDisk error text, and struct typo.
1:03:25 Seventh Compile
1:04:38 Testing our Are You Sure?
1:05:20 Implement format_disk()
1:09:30 About TD_FORMAT
1:11:50 Our format track buffer
1:16:00 Turning on/off the motor with TD_MOTOR
1:20:45 Setting up our TD_FORMAT request.
1:22:30 Opening a window to show formatting
1:26:20 Drawing a progress bar background
1:27:30 Our track loop, update bar, do request, increase offset.
1:31:00 Eighth Compile
1:31:40 Creating our test disk with random garbage data using 'dd'
1:34:45 Testing our format!
1:35:54 Seeing our blank disk in hexedit
1:37:00 implementing write_kick(), which uses CMD_WRITE
1:39:28 Filling out our first sector, containing 'KICK'
1:40:20 Our write window
1:43:15 Borrowing MOTOR ON and MOTOR OFF from format_disk()
1:44:05 Setting up our CMD_WRITE request.
1:46:00 Implementing our CMD_WRITE loop.
1:49:15 Finally, using CMD_UPDATE to flush the remainder of current track.
1:51:40 Ninth Compile
1:52:18 forgot to fill in the nwWrite! :)
1:53:55 Tenth Compile
1:55:35 Testing our Write!
1:57:26 Looking at result in hexedit!
1:58:10 Testing our result!