Ignore:
Timestamp:
Apr 8, 2017, 12:27:15 AM (8 years ago)
Author:
Ben Rietbroek
Message:

Added more debug hooks [v1.1.1-testing]

CAUTION:
This is a testbuild !
AirBoot uses the BIOS to access disks and a small coding error can trash
partition tables or other vital disk structures. You are advised to make
backups of TRACK0 and EBRs before using this testbuild. More info at:
https://rousseaux.github.io/netlabs.air-boot/pdf/AirBoot-v1.1.0-manual.pdf

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/bootcode/airboot.asm

    r112 r117  
    959959
    960960
    961         ; Verify we still got the BIOS disk in DL
    962         IFDEF   AUX_DEBUG
    963                 IF 1
    964                 pusha
    965                     push    si
    966                     mov     si, offset $+5
    967                     jmp     @F
    968                     db      10,'## AiR_BOOT_Start ##',10,0
    969                     @@:
    970                     call    AuxIO_Print
    971                     pop     si
    972                     call    DEBUG_DumpRegisters
    973                 popa
    974                 ENDIF
     961; Verify we still got the BIOS disk in DL
     962IFDEF   AUX_DEBUG
     963        IF 1
     964        pushf
     965        pusha
     966            push    si
     967            mov     si, offset $+5
     968            jmp     @F
     969            db      10,'## AiR_BOOT_Start ##',10,0
     970            @@:
     971            call    AuxIO_Print
     972            pop     si
     973            call    DEBUG_DumpRegisters
     974        popa
     975        popf
    975976        ENDIF
     977ENDIF
     978
    976979
    977980; -----------------------------------------------------------------------------
     
    10191022                ; Number of harddisks and other system-info is now known.
    10201023
    1021             ;!
    1022             ;! DEBUG_BLOCK
    1023             ;! Let's see what the BIOS supplied us with...
    1024             ;! Uncomment below to activate.
    1025             ;!
    1026             ;~ __DUMP_BIOS_REGS__  EQU
    1027             IFDEF   AUX_DEBUG
    1028                 IFDEF   __DUMP_BIOS_REGS__
    1029                     pushf
    1030                     pusha
    1031                     ; Print title.
    1032                     mov     si,offset [bios_reg]
    1033                     call    AuxIO_Print
    1034                     ; Save the current stack (SS:SP).
    1035                     mov     ax,ss
    1036                     mov     [CurrentSS],ax
    1037                     mov     [CurrentSP],sp
    1038 
    1039                     ; Restore the old stack.
    1040                     mov     ss,[OldSS]
    1041                     mov     sp,[OldSP]
    1042 
    1043                     ; Pop the registers with the BIOS values.
    1044                     popa
    1045                     ; Push them back for AiR-BOOT restart (debug mode).
    1046                     pusha
    1047                     ; Dump them to the serial-port.
    1048                     call    DEBUG_DumpRegisters
    1049                     ; Restore the current stack.
    1050                     mov     ax,[CurrentSS]
    1051                     mov     ss,ax
    1052                     mov     sp,[CurrentSP]
    1053 
    1054                     ; Restore registers.
    1055                     popa
    1056                     popf
    1057                 ENDIF
    1058             ENDIF
    1059 
    1060 
    1061             ;!
    1062             ;! DEBUG_BLOCK
    1063             ;! Dump the registers at this point.
    1064             ;! Uncomment below to activate.
    1065             ;!
    1066             IFDEF   AUX_DEBUG
    1067                 ;~ call    DEBUG_DumpRegisters
    1068                 ; Dump drive-letters of dl-feature before partitions are
    1069                 ; scanned and processed.
    1070                 ;~ call    DEBUG_DumpDriveLetters
    1071                 ;~ call    DEBUG_DumpVolumeLetters
    1072                 ;~ call    DEBUG_DumpPartitionXref
    1073             ENDIF
     1024;!
     1025;! DEBUG_BLOCK
     1026;! Let's see what the BIOS supplied us with...
     1027;! Uncomment below to activate.
     1028;!
     1029IFDEF   AUX_DEBUG
     1030        IF 0
     1031        pushf
     1032        pusha
     1033
     1034            ; Print title.
     1035            mov     si,offset [bios_reg]
     1036            call    AuxIO_Print
     1037            ; Save the current stack (SS:SP).
     1038            mov     ax,ss
     1039            mov     [CurrentSS],ax
     1040            mov     [CurrentSP],sp
     1041
     1042            ; Restore the old stack.
     1043            mov     ss,[OldSS]
     1044            mov     sp,[OldSP]
     1045
     1046            ; Pop the registers with the BIOS values.
     1047            popa
     1048            ; Push them back for AiR-BOOT restart (debug mode).
     1049            pusha
     1050            ; Dump them to the serial-port.
     1051            call    DEBUG_DumpRegisters
     1052            ; Restore the current stack.
     1053            mov     ax,[CurrentSS]
     1054            mov     ss,ax
     1055            mov     sp,[CurrentSP]
     1056
     1057        popa
     1058        popf
     1059        ENDIF
     1060ENDIF
     1061
     1062
     1063;!
     1064;! DEBUG_BLOCK
     1065;! Dump the registers at this point.
     1066;!
     1067IFDEF   AUX_DEBUG
     1068        IF 0
     1069        pushf
     1070        pusha
     1071            ;~ call    DEBUG_DumpRegisters
     1072            ;~ call    DEBUG_DumpDriveLetters
     1073            ;~ call    DEBUG_DumpVolumeLetters
     1074            ;~ call    DEBUG_DumpPartitionXref
     1075        popa
     1076        popf
     1077        ENDIF
     1078ENDIF
    10741079
    10751080; -----------------------------------------------------------------------------
     
    10881093                ; Internal Partition Table is now populated.
    10891094
    1090             ;!
    1091             ;! DEBUG_BLOCK
    1092             ;! Dump various tables.
    1093             ;! Uncomment below to activate.
    1094             ;!
    1095             IFDEF   AUX_DEBUG
    1096                 ;~ call    DEBUG_DumpIPT
    1097                 ;~ call    DEBUG_DumpPartitionPointers
    1098                 ;~ call    DEBUG_DumpNewPartTable
    1099                 ;~ call    DEBUG_DumpDriveLetters
    1100                 ;~ call    DEBUG_DumpDriveLetters
    1101                 ;~ call    DEBUG_DumpVolumeLetters
    1102                 ;~ call    DEBUG_DumpPartitionXref
    1103             ENDIF
     1095;!
     1096;! DEBUG_BLOCK
     1097;! Dump various tables.
     1098;! Uncomment below to activate.
     1099;!
     1100IFDEF   AUX_DEBUG
     1101        IF 0
     1102        pushf
     1103        pusha
     1104            ;~ call    DEBUG_DumpIPT
     1105            ;~ call    DEBUG_DumpPartitionPointers
     1106            ;~ call    DEBUG_DumpNewPartTable
     1107            ;~ call    DEBUG_DumpDriveLetters
     1108            ;~ call    DEBUG_DumpDriveLetters
     1109            ;~ call    DEBUG_DumpVolumeLetters
     1110            ;~ call    DEBUG_DumpPartitionXref
     1111        popa
     1112        popf
     1113        ENDIF
     1114ENDIF
    11041115
    11051116
     
    11181129
    11191130
    1120             ;!
    1121             ;! DEBUG_BLOCK
    1122             ;! Dump various tables.
    1123             ;! Uncomment below to activate.
    1124             ;!
    1125             IFDEF   AUX_DEBUG
    1126                 ;~ call    DEBUG_DumpIPT
    1127                 ;~ call    DEBUG_DumpPartitionPointers
    1128                 ;~ call    DEBUG_DumpNewPartTable
    1129                 ;~ call    DEBUG_DumpDriveLetters
    1130                 ;~ call    DEBUG_DumpDriveLetters
    1131                 ;~ call    DEBUG_DumpVolumeLetters
    1132                 ;~ call    DEBUG_DumpPartitionXref
    1133             ENDIF
     1131;!
     1132;! DEBUG_BLOCK
     1133;! Dump various tables.
     1134;!
     1135IFDEF   AUX_DEBUG
     1136        IF 0
     1137        pushf
     1138        pusha
     1139            ;~ call    DEBUG_DumpIPT
     1140            ;~ call    DEBUG_DumpPartitionPointers
     1141            ;~ call    DEBUG_DumpNewPartTable
     1142            ;~ call    DEBUG_DumpDriveLetters
     1143            ;~ call    DEBUG_DumpDriveLetters
     1144            ;~ call    DEBUG_DumpVolumeLetters
     1145            ;~ call    DEBUG_DumpPartitionXref
     1146        popa
     1147        popf
     1148        ENDIF
     1149ENDIF
    11341150
    11351151
     
    12001216
    12011217
    1202             ;!
    1203             ;! DEBUG_BLOCK
    1204             ;! Dump various tables.
    1205             ;! Uncomment below to activate.
    1206             ;!
    1207             IFDEF   AUX_DEBUG
    1208                 ;~ call    DEBUG_DumpIPT
    1209                 ;~ call    DEBUG_DumpPartitionPointers
    1210                 ;~ call    DEBUG_DumpPartitionXref
    1211                 ;~ call    DEBUG_DumpNewPartTable
    1212                 ;~ call    DEBUG_DumpDriveLetters
    1213             ENDIF
     1218;!
     1219;! DEBUG_BLOCK
     1220;! Dump various tables.
     1221;!
     1222IFDEF   AUX_DEBUG
     1223        IF 0
     1224        pushf
     1225        pusha
     1226            ;~ call    DEBUG_DumpIPT
     1227            ;~ call    DEBUG_DumpPartitionPointers
     1228            ;~ call    DEBUG_DumpPartitionXref
     1229            ;~ call    DEBUG_DumpNewPartTable
     1230            ;~ call    DEBUG_DumpDriveLetters
     1231        popa
     1232        popf
     1233        ENDIF
     1234ENDIF
    12141235
    12151236
     
    12241245
    12251246
    1226             ;!
    1227             ;! DEBUG_BLOCK
    1228             ;! Dump various tables.
    1229             ;! Uncomment below to activate.
    1230             ;!
    1231             IFDEF   AUX_DEBUG
    1232                 ;~ call    DEBUG_DumpIPT
    1233                 ;~ call    DEBUG_DumpPartitionPointers
    1234                 ;~ call    DEBUG_DumpPartitionXref
    1235                 ;~ call    DEBUG_DumpNewPartTable
    1236                 ;~ call    DEBUG_DumpDriveLetters
    1237             ENDIF
     1247;!
     1248;! DEBUG_BLOCK
     1249;! Dump various tables.
     1250;!
     1251IFDEF   AUX_DEBUG
     1252        IF 0
     1253        pushf
     1254        pusha
     1255            ;~ call    DEBUG_DumpIPT
     1256            ;~ call    DEBUG_DumpPartitionPointers
     1257            ;~ call    DEBUG_DumpPartitionXref
     1258            ;~ call    DEBUG_DumpNewPartTable
     1259            ;~ call    DEBUG_DumpDriveLetters
     1260        popa
     1261        popf
     1262        ENDIF
     1263ENDIF
    12381264
    12391265                ; Setup automatic boot to forgo the Menu.
     
    14321458    MBR_Main_StartPartition:
    14331459
    1434             IFDEF   AUX_DEBUG
    1435                 ;~ call    DEBUG_DumpIPT
    1436                 ;~ call    DEBUG_DumpPartitionPointers
    1437                 ;~ call    DEBUG_DumpPartitionXref
    1438                 ;~ call    DEBUG_DumpNewPartTable
    1439             ENDIF
     1460IFDEF   AUX_DEBUG
     1461        IF 0
     1462        pushf
     1463        pusha
     1464            ;~ call    DEBUG_DumpIPT
     1465            ;~ call    DEBUG_DumpPartitionPointers
     1466            ;~ call    DEBUG_DumpPartitionXref
     1467            ;~ call    DEBUG_DumpNewPartTable
     1468        popa
     1469        popf
     1470        ENDIF
     1471ENDIF
    14401472
    14411473
Note: See TracChangeset for help on using the changeset viewer.