amiga_boottest
annotate src/boot/boot.s @ 0:51422ea54b9d
initial commit
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Wed, 21 Feb 2018 12:00:13 +0200 |
parents | |
children | 48093e4bd99a |
rev | line source |
---|---|
nuclear@0 | 1 | vi:filetype=gas68k: |
nuclear@0 | 2 |
nuclear@0 | 3 .equ CMD_READ, 2 |
nuclear@0 | 4 |
nuclear@0 | 5 .equ EXEC_DO_IO, -0x1c8 |
nuclear@0 | 6 |
nuclear@0 | 7 | starting with trackdisk device I/O request pointer in a1 |
nuclear@0 | 8 | load the program at 0x100 and return with that value in a0 |
nuclear@0 | 9 | program length is patched by mk_adf at start - 4 |
nuclear@0 | 10 start: |
nuclear@0 | 11 move.l #0x100, 0x28(%a1) | I/O data pointer |
nuclear@0 | 12 move.l start - 4, 0x24(%a1) | I/O length (1 sector for now) |
nuclear@0 | 13 move.l #512, 0x2c(%a1) | I/O offset (skip first sector) |
nuclear@0 | 14 move.w #CMD_READ, 0x1c(%a1) | I/O command |
nuclear@0 | 15 move.l %a1, -(%sp) |
nuclear@0 | 16 jsr EXEC_DO_IO(%a6) |
nuclear@0 | 17 move.l (%sp)+, %a1 |
nuclear@0 | 18 move.b 0x1f(%a1), %d0 |
nuclear@0 | 19 |
nuclear@0 | 20 move.l #0x100, %a0 |
nuclear@0 | 21 rts |
nuclear@0 | 22 |
nuclear@0 | 23 .ascii "bootblock_end" |
nuclear@0 | 24 .align 4 |