|
|
| version 1.1, 2003/12/28 14:35:40 | version 1.3, 2003/12/29 05:52:43 |
|---|---|
| Line 67 sxsi_init: push ds | Line 67 sxsi_init: push ds |
| push ax | push ax |
| mov ax, 0300h | mov ax, 0300h |
| int 1bh | int 1bh |
| mov ax, 0320h | |
| int 1bh | |
| pop ax | pop ax |
| pop ds | pop ds |
| retf | retf |
| sxsi_bios: cld | sxsi_bios: cld |
| mov dx, cs | |
| mov ds, dx | |
| mov cx, 8 | mov cx, 8 |
| mov si, offset sxsibiosstr | mov si, offset sxsibiosstr |
| mov dx, 07efh | mov dx, 07efh |
| Line 88 sxsi_bios: cld | Line 92 sxsi_bios: cld |
| iret | iret |
| sxsi_boot: cmp al, 0ah | sxsi_boot: cmp al, 0ah |
| je short boot_main | je short sasi_boot |
| cmp al, 0bh | cmp al, 0bh |
| je short boot_main | je short sasi_boot |
| cmp al, 0ch | |
| je short scsi_boot | |
| retf | retf |
| boot_main: push ds | |
| sasi_boot: push ds | |
| pusha | pusha |
| xor bx, bx | xor bx, bx |
| mov ds, bx | mov ds, bx |
| sub al, 9 | sub al, 9 |
| mov dl, 0ffh | mov dl, 0ffh |
| test ds:[055dh], al ; sasi | test ds:[055dh], al ; sasi |
| je short bootbioscall | |
| mov dl, 01fh | |
| test ds:[0483h], al ; scsi | |
| je short boot_exit | je short boot_exit |
| bootbioscall: mov ah, 06h | dec al |
| mov cx, 1fc0h | mov ah, 06h |
| jmp short boot_main | |
| scsi_boot: push ds | |
| pusha | |
| xor bx, bx | |
| mov ds, bx | |
| mov ax, 4620h | |
| boot_main: mov cx, 1fc0h | |
| mov es, cx | mov es, cx |
| add al, dl | |
| mov bp, bx | mov bp, bx |
| mov cx, bx | mov cx, bx |
| mov dx, bx | mov dx, bx |
| mov bh, 4 | mov bh, 4 |
| int 1bh | int 1bh |
| jc boot_exit | jc boot_exit |
| mov dl, al | or al, 80h |
| or dl, 80h | mov byte ptr ds:[0584h], al |
| xor ax, ax | |
| mov ds, ax | |
| mov byte ptr ds:[0584h], dl | |
| db 9ah ; call far | db 9ah ; call far |
| dw 0 | dw 0 |
| dw 1fc0h | dw 1fc0h |