[haiku-commits] r38909 - haiku/trunk/src/system/boot/platform/amiga_m68k

  • From: revol@xxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Sat, 9 Oct 2010 23:38:50 +0200 (CEST)

Author: mmu_man
Date: 2010-10-09 23:38:50 +0200 (Sat, 09 Oct 2010)
New Revision: 38909
Changeset: http://dev.haiku-os.org/changeset/38909

Modified:
   haiku/trunk/src/system/boot/platform/amiga_m68k/stage1.S
Log:
More tries at doing something useful in the boot sector... For now it displays 
a welcome message.


Modified: haiku/trunk/src/system/boot/platform/amiga_m68k/stage1.S
===================================================================
--- haiku/trunk/src/system/boot/platform/amiga_m68k/stage1.S    2010-10-09 
20:57:39 UTC (rev 38908)
+++ haiku/trunk/src/system/boot/platform/amiga_m68k/stage1.S    2010-10-09 
21:38:50 UTC (rev 38909)
@@ -60,9 +60,29 @@
 #define        S_IFDIR                                         00000040000o
 
 // AmigaDOS calls
+// exec.library
+#define _FindResident                  -0x60
+#define _OldOpenLibrary         -0x198
+#define _CloseLibrary           -0x19e
 // dos.library
-#define _OldOpenLibrary                -0x198
-#define _CloseLibrary          -0x19e
+#define Old_mode                        1005
+#define New_mode                        1006
+#define _Open                                  -0x0
+#define _Close                                 -0x6
+#define _Read                   -0xc
+#define _Write                  -0x12
+#define _Input                                 -0x18
+#define _Output                                        -0x1e
+#define _IoErr                                 -0x66
+#define _Delay                                 -0xa8
+/*
+#define _Open                   -0x1e
+#define _Close                  -0x24
+#define _Read                   -0x2a
+#define _Write                  -0x30
+*/
+// intuition.library
+#define _DisplayAlert                  -90
 
 
 _floppy_entry:
@@ -77,20 +97,67 @@
 _floppy_boot:
        // seems like a6 is already set to ExecBase when called from the ROM ?
        // copy it
-       lea     _execbase(%pc),%a2
-       move    %a6,(%a2)
+       move.l  4.w,%a6
+       lea             _execbase(%pc),%a2
+       move.l  %a6,(%a2)
 
+
+
        lea     dosname_boot(%pc),%a1
+       jsr     _FindResident(%a6)
+       lea     _dosbase(%pc),%a2
+       tst.l   %d0
+       beq.s   _floppy_err
+       move.l  %d0,(%a2)
+//     bra _continue
+
+       move.l  %d0,%a6
+
+/*     lea             window_name(%pc),%a0
+       move.l  %a0,%d1
+       move.l  #Old_mode,%d2
+       jsr             _Open(%a6)
+       tst.l   %d0
+       beq.s   _floppy_err
+_loop_1:
+       bra             _loop_1
+
+
+_loop_2:
+       bra             _loop_2
+*/     
+
+       move.l  4.w,%a6
+       lea     intname_boot(%pc),%a1
        jsr     _OldOpenLibrary(%a6)
+       tst.l   %d0
+       beq.s   _floppy_err
+       lea     _intbase(%pc),%a2
+       move.l  %d0,(%a2)
+       move.l  %d0,%a6
+
+       lea             alert_data(%pc),%a0
+       moveq   #0,%d0
+       move.l  #30,%d1
+       jsr             _DisplayAlert(%a6)
+
+
+       bra     _floppy_err
+
+       lea     dosname_boot(%pc),%a1
+       jsr     _FindResident(%a6)
        lea     _dosbase(%pc),%a2
        move    %d0,(%a2)
 
-       lea     dosname_boot(%pc),%a1
-       jsr     -0x60(%a6)      // FindResident()
+//     lea     dosname_boot(%pc),%a1
+////   jsr     -0x60(%a6)      // FindResident()
+//     move.l  4.w,%a6
+//     jsr     -96(%a6)
 
+
        tst.l   %d0
        beq.s   _floppy_err
-
+_continue:
        move.l  %d0,%a0
        move.l  0x16(%a0),%a0
        moveq   #0,%d0
@@ -105,6 +172,18 @@
        .ascii  "dos.library"
        .byte   0
 
+intname_boot:
+       .ascii  "intuition.library"
+       .byte   0
+
+alert_data:
+       .word   10
+       .byte   12
+       .ascii  "Welcome to Haiku\0"
+alert_extra:
+       .ascii  "\0\0"
+       .byte   0
+
 window_name:
        .ascii  "CON:0/0/640/255/plop\0"
 
@@ -112,6 +191,8 @@
        .long   0
 _dosbase:
        .long   0
+_intbase:
+       .long   0
 
 end_buff:
 // equ *-_floppy_entry


Other related posts:

  • » [haiku-commits] r38909 - haiku/trunk/src/system/boot/platform/amiga_m68k - revol