Execute device diagnostic
ATA_CMD_DIAGNOSTIC = 0x90
ATA_CMD_IDENTIFY = 0xA0
Recalibrate
ATA_CMD_RESTORE = 0x10
ATA_COMMAND = 0x7
Device control register (Control base + 0)
ATA_CTRL = 0x0
ATA_CYLHI = 0x5
ATA_CYLLO = 0x4
Read/Write data
ATA_DATA = 0x0
ATA_DRVADDR = 0x1
Drive/Head register
ATA_DRVHEAD = 0x6
ATA_ERROR = 0x1
ATA_FEATURES = 0x1
ATA_SECCOUNT = 0x2
ATA_SECNUM = 0x3
ATA_STATUS = 0x7
BOOTINFO_MEMORY_LIMIT = 0xFFFFF000
No such device.
ENODEV = 19
Not enough space.
ENOMEM = 20
No such device or address.
ENXIO = 6
SHA-256 round constants
K:
PMM_VIRT_TEMP = 0xD0000000
StupidFS bad inode
STPDFS_BADINO = 0
StupidFS block size (512)
STPDFS_BSIZE = 512
Directory entry per block
STPDFS_DIRENT_PER_BLOCK = sizeof.StpdFS_Dirent / STPDFS_BSIZE
STPDFS_INDIRECT_PER_BLOCK = STPDFS_BSIZE / 4
I-node per block
STPDFS_INODE_PER_BLOCK = sizeof.StpdFS_Inode / STPDFS_BSIZE
Max file name length (28)
STPDFS_NAME_MAX = 28
Number of direct block (7)
STPDFS_NDIRECT = 7
StupidFS root inode number
STPDFS_ROOTINO = 1
Superblock magic number, MUST BE `0x44505453` (STPD)
STPDFS_SB_MAGIC = 0x44505453
StupidFS revision, currently `0x1`
STPDFS_SB_REV = 1
szCfgFile db "BOOT CFG", 0
szCfgNo db "no", 0
szCfgYes db "yes", 0
szErrorCfgNotFound db "boot.cfg not found", CR, LF, 0
VMEM_ALLOC = ( 1 shl )
VMEM_FREE = ( 1 shl 1 )
VMEM_FREELISTS_N = 4 * 8
VMEM_HASHTABLE_N = 16
VMEM_MIN_RESERVE = 4
VMEM_SEGMENT_ALLOCATED = 0
VMEM_SEGMENT_FREE = 1
VMEM_SEGMENT_SPAN = 2
VMEM_SEGMENT_STATIC_SPAN = 3
VMEM_STATIC_SEG_COUNT = 64
VMEM_VM_BESTFIT = ( 1 shl )
VMEM_VM_BOOTSTRAP = ( 1 shl 5 )
VMEM_VM_FIT_MASK = ( VMEM_VM_BESTFIT or VMEM_VM_INSTANTFIT )
VMEM_VM_INSTANTFIT = ( 1 shl 1 )
VMEM_VM_NOSLEEP = ( 1 shl 4 )
VMEM_VM_POPULATING = ( 1 shl 6 )
VMEM_VM_SLEEP = ( 1 shl 3 )