For the Commodore 64 & 128 Computers

Written by eBay's 94Bravo




Hard Drives




Editing SYSGEN



SCSI Adapter

Multiplexer Unit


Drive Case & Cables

The Wall

DOS Commands

System Limitations


If you only use small capacity drives with the Lt. Kernal, no worries, Mate! However, if you want to use larger megabyte capacity hard drives, you'll encounter the WALL; my term for the Kernals' design limit.

When you format a new drive and install LK DOS software, the first thing you must do is configure the number of Cylinders to the Logical Units (LU). When you start assigning cylinders, the subsequent cylinder count continues to increase up to approaching the total number of hard drive cylinder capacity.

So, when do you hit the Wall? If we use the example in the 'Configuration' section (267 theoretical cylinder count equals 65K LU Block size), it's easier to explain. Let's start by setting LU 0 to a 267 cylinder size and set three additional LUs exactly the same. So far, we will have used about 1076 total cylinders ((4*267)+8dos=1076), assuming we had this many cylinders to use. Up to this point, the Lt. Kernal would work just fine.

However, if we tried to set the fifth LU (LU 4), the CONFIG command won't let you! The problem is that the code is written so that if you attempt to START an LU at ANYTHING HIGHER THAN 1024, it won't accept the entry!

If we go back and determine the total BLOCK count we've achieved so far, we find that:

  • Each LU would have 65K storage capacity (32 megabytes)
  • Four LUs set would equal 260K total Block (approx. 130 meg)
    • (Remember, 'hard drive Blocks' are twice the size of 'Commodore Blocks'
    • 260,000 hard drive blocks equals 520,000 Commodore blocks of storage

But, because the STARTing limit is set to 1024 cylinders, we're stuck! Or are we? We topped out at 1076 cylinders above. What if we had reduced the size of LU 3 so that the STARTING point of the next LU (LU 4) would be less than 1024? Yes, this would work and you could set LU 4 to the Max; 267 cylinders. However now, you HAVE reached the limit, as it would be impossible to set LU 5 (i.e., LU 5's starting point would be well beyond 1024)!

Is there another way around this problem? Yes, you have two options:

  • Add another hard drive and continue adding LUs beginning where you left off (LU 5) and start at Cylinder zero (0) of the second drive. There is no LK DOS LU 10 installed on any drive other than the SCSI address zero (0) drive. So, the second drive is All storage. (Of course, you'll need to add the additional drive(s) parameters to the SYSGEN disk prior to installation so the system will know there are Two drives). - or -
  • Use a hard drive that has a higher density of Heads and/or Sectors/Track (higher than our example of 7 Heads and 35 Sectors/Track). That way, instead of using 267 Cylinders to equal 65K Block storage, perhaps you would only need 200 or 210 Cylinders for the same Block count.

The follow chart shows an example of what it could look like when using two drives and slightly changing the LU sizes of the first drive. This is a Tested example:

LU number
Starting Cylinder #
# Cylinder Size
SCSI Drive #
Total Available Blocks
10 (DOS)



Did you notice the 237 Cylinder Gap between LU 7 & 8?  Do you know why?

The Total BLOCK storage capacity in this example is 566,270 Hard Drive Blocks. Multiplying this number by 512 Bytes/Block represents a 290 Meg Hard Drive capacity (or 1.132 million Commodore Blocks!). There are a number of important issues to examine in this example:

  • The hard drives are identical (LXT-213SY as described in the Hard Drive section; a variable Sector/Track drive)
  • This 'de-tuned' drive only used 1315 Cylinders, 7 Heads and 35 Sectors/Track and each drive, therefore, equaled 165 meg capacity
    • The variable (42 S/T average) drive is a 202 meg drive
    • There were 4 unused Cylinders left on drive SCSI ID#0)
  • LU 4&5 were set to help solve the '1024 Cylinder limit' & maximize the size of LU 5
    • LU 0 - 3 were set to help exaggerate the '1024' problem
  • The second drive (SCSI ID#1) started at Cylinder zero in LU 6
  • The sizes of LU 6 through 9 were set to the maximum of 65,450 Blocks each
  • Instead of a possible 304 Meg, we got 290 Meg capacity
  • If SYSGEN had created more LUs, we could have kept going
  • Since we can use eight (8) SCSI hard drives with the Lt. Kernal, we could have used smaller capacity hard drives and never had to deal with the '1024' limit
  • With only the first drive installed, we would have achieved 156 Meg capacity

This bastardized example was created to help explain (a) the Wall of 160 Meg (Cylinders can't start higher than 1024 which leads to the 160 Meg limit) and (b) you CAN have more than 160 Meg of storage on a Lt. Kernal by using more than one drive! Moreover, selecting the right drives can increase our 290 Meg example!

As a variation on the above example, consider using an 80 meg drive for LU 10 Only and the existing drives for LU 0 through LU 9. How would this effect the '1024' wall? Try it out on paper.

As mentioned above, the other approach of solving the 'Wall' problem is by selecting a hard drive with a Higher Head & Sector/Track density. If you consider a $5.00 - one Gig hard drive, they use up to 19 Heads and 85 Sectors/Track. No, you won't get a Gig of storage AND you'll waste a Lot of a Gig drive's available capacity, but who cares? At 19 Heads and 85 Sectors per Track, you'll only need about 40 Cylinders to Max out an LU! Therefore, with each LUs only using 40 Cylinders, we can set all ten LUs without hitting the '1024' limit. Right?

WRONG! By using a one gigabyte hard drive, we find there are Other limits to the design of the Lt. Kernal. One thing is that even if you did edit the SYSGEN disk with these parameters AND could get past CHECKSUM (which you won't), installing DOS with these parameters would cause DOS to eat itself, it's real ugly! As it turns out, Head count numbers higher than 15 won't work as they help destroy the index and BAM files (4 bit limit). Another issue is that the large Sectors/Track number will eat the index and BAM as well. Both of these additional limits cause the index and bitmap files to roll over a number of times causing new files to be written on top of existing files.

As a test for this article, I used an ST12400N two gig drive and had to de-tune it all the way down to using only 1200 cylinders, 34 Sectors/Track and 15 Heads (299 meg) just to be able to:

  • Install without any errors, and
  • Get past Checksum without errors, and
    • (i.e., without corrupting the Index and bitmap files)
  • Be able to set LU usage to a maximum of 153 meg storage capacity, Not 299 meg!

Recommendation: Use two (or three) 160 - 200 meg hard drives and set all of your LUs (LU 0 - LU 9) to the maximum of 65,536 Blocks! This will equal a Grand Total of 330 Meg storage! This, however, is the Last Wall, beyond which, you can't go unless you want to rewrite SYSGEN! There are only Ten user LUs so, without modifying the LK DOS, there's no way to go beyond 330 meg. (e.g., 65,536 blocks*10@LUs = 655,360 blocks ][ 665,360 blocks*512 bytes/block = 335.5 meg ]) Question: Would rewriting the 'CONFIG' file to add more LUs be the only modification required to increase the limit of 330 meg?

Conclusion: 330 megs of storage means (a) you'll have more than 1.3 MILLION Commodore Blocks of storage and (b), at an average of 50 blocks per file, you can store 26,214 average Commodore files. If you are going to be storing a lot of files, the maximum number of files you can store in an LU is 4,000! Therefore, if you configure all 10 LUs, that's a maximum file storage limit of 40,000.

What is the benefit of understanding how to set the LUs to their maximum?  Once you know the optimum hard drive values for the #Cylinders, #Heads and #Track/Sector, you will understand that you can use any hard drive with at least these specifications.  Install any drive that meets or exceeds those specs and the Lt. Kernal will work great and at its maximum storage capacity.

What is the Maximum Storage Capacity?  It should be clear by now that the maximum storage capacity of the Lt. Kernal is determined by the number of hard drives and the way in which you Configure the drive(s).  Remember that each drive starts at Cylinder Zero in 'config'.

What if you use one drive per LU?  Each LU is still limited to 65K Blocks, but what about Shadow 65K-Blocks within each drive?  (I left a Hint under the chart above)  By 'moving' the LUs' position to a new starting Cylinder number, you can move within the drives storage area and not affect the area that contains already-stored data.  (one more reason why you should Record your 'config' settings)  If you understand this concept, the maximum storage of the Lt. Kernal is approximately 1.1 gig.

Backup Strategies:  The Lt. Kernal DOS includes excellent Fast Load routines for the 1541, 1571 and 1581 Floppy Disk Drives.  These routines are used for Fastcopy (Backup/Restore) and work with stock or JiffyDOS-equipped drives.  Fastcopy is typically used to make daily/weekly backups of your most used programs, database files and inventory lists.  But, what can you use to backup the whole drive?

One suggestion is to use three drives; One for LU 10 Only and two other drives set to an equal number of LUs (LU 0 - LU 4 on one drive and LU 5 - LU 9 on the other drive). Treat the third drive as a Backup of the second drive. When the third drive is full, replace it with an similar drive (i.e., the third drive will always be your Backup). Think about it; it'll be cheaper than buying 200+ DSDD floppy disks, not to speak of how much time it would take to backup to floppies. Save the floppies for your special collection.

Home | Host Adapter | Sysgen | Drives | Files

Lt. Kernal Data Archive 2003-2007 / Contact Author for Inquires