Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USE16
- BOOT:
- JMP SHORT FloppyStart
- NOP
- DB "LNX "
- DW 512
- DB 1
- DW 1
- DB 2
- DW 224
- DW 2880
- DB 240
- DW 9
- DW 18
- DW 2
- BpbDriveNum: DD 0
- DD 0
- DW 0
- DB 41
- DD 0
- DB "LNX "
- DB "FAT12 "
- %INCLUDE "std.asm"
- SYS_BOOT_SEG EQU 07C0H
- SYS_LOAD_SEG EQU 0AE0H
- SYS_DISK_SEG EQU 0100H
- READ_SECTORS EQU 02H
- WRITE_STRING EQU 1301H
- RESET_FLOPPY EQU 00H
- DISKIO EQU 19
- VGA EQU 16
- FloppyStart:
- ;
- ; Setup some important information.
- ;
- MOV AX, WORD SYS_BOOT_SEG
- MOV BP, WORD NULL
- MOV DS, AX
- CLI
- MOV SS, AX
- MOV SP, 64 * 16
- STI
- ;
- ; Load the System into memory.
- ;
- CALL ResetDisk
- MOV AX, WORD SYS_DISK_SEG
- MOV ES, AX
- MOV BX, WORD NULL
- MOV AH, BYTE READ_SECTORS
- MOV AL, 4
- XOR DX, DX
- MOV CH, 0
- MOV CL, 2
- INT DISKIO
- JC SHORT FloppyError
- ResetDisk:
- .00:
- XOR AX, AX
- .01:
- INT DISKIO
- JC SHORT .00
- .02:
- RET
- NOP
- ErrorString: DB 7, 10, "FATAL ERROR", 13, 10, 10, 0
- FloppyError:
- .00:
- MOV AX, WORD SYS_BOOT_SEG
- MOV ES, AX
- LEA BP, [ErrorString]
- .01:
- MOV AX, WORD WRITE_STRING
- XOR DX, DX
- MOV CX, 15
- MOV BX, 7
- INT VGA
- .02:
- CLI
- HLT
- NOP
- TIMES 510 - ($ - $$) DB 0
- BootSignature: DW 0xAA55
- DiskBuffer:
- ;
- ; The FAT (1 + 2) and Root Directory is beyond this sector.
- ;
Advertisement
Add Comment
Please, Sign In to add comment