Changeset 90


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

Added flags to register dump function (debugging) [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/regular/debug.asm

    r89 r90  
    386386
    387387;
    388 ; Dump the registers.
     388; Dump the registers and flags.
    389389;
    390390IF  1
     
    403403regES   db  ' BP:',0
    404404
    405 ;~ regFS   db  'FS:',0
    406 ;~ regGS   db  ' GS:',0
     405regFS   db  'FS:',0
     406regGS   db  ' GS:',0
     407
     408        db '       '
     409
     410flagsSF db  ' SF:',0
     411flagsZF db  ' ZF:',0
     412flagsAF db  ' AF:',0
     413flagsPF db  ' PF:',0
     414flagsCF db  ' CF:',0
     415
    407416DEBUG_DumpRegisters     Proc
    408417        pushf
    409418        pusha
    410419
     420        ; Safe flags so they can be printed later
     421        pushf
     422
     423        ; Save value in SI so it can be printed later
    411424        push    si
     425
     426        ; Base of registers string
    412427        mov     si, offset [regAX]
    413         call    AuxIO_Print
     428
     429        ; AX
     430        call    AuxIO_Print
     431        call    AuxIO_TeletypeHexWord
     432
     433        ; BX
     434        call    AuxIO_Print
     435        mov     ax,bx
     436        call    AuxIO_TeletypeHexWord
     437
     438        ; CX
     439        call    AuxIO_Print
     440        mov     ax,cx
     441        call    AuxIO_TeletypeHexWord
     442
     443        ; DX
     444        call    AuxIO_Print
     445        mov     ax,dx
     446        call    AuxIO_TeletypeHexWord
     447
     448        ; SI
     449        call    AuxIO_Print
     450        pop     ax
     451        call    AuxIO_TeletypeHexWord
     452
     453        ; DI
     454        call    AuxIO_Print
     455        mov     ax,di
     456        call    AuxIO_TeletypeHexWord
     457
     458        ; 1st row printed
     459        call    AuxIO_TeletypeNL
     460
     461        ; CS
     462        call    AuxIO_Print
     463        mov     ax,cs
     464        call    AuxIO_TeletypeHexWord
     465
     466        ; DS
     467        call    AuxIO_Print
     468        mov     ax,ds
     469        call    AuxIO_TeletypeHexWord
     470
     471        ; ES
     472        call    AuxIO_Print
     473        mov     ax,es
     474        call    AuxIO_TeletypeHexWord
     475
     476        ; SS
     477        call    AuxIO_Print
     478        mov     ax,ss
     479        call    AuxIO_TeletypeHexWord
     480
     481        ; SP
     482        call    AuxIO_Print
     483        mov     ax,sp
     484        call    AuxIO_TeletypeHexWord
     485
     486        ; BP
     487        call    AuxIO_Print
     488        mov     ax,bp
     489        call    AuxIO_TeletypeHexWord
     490
     491        ; 2nd row printed
     492        call    AuxIO_TeletypeNL
     493.386
     494        ; FS
     495        call    AuxIO_Print
     496        mov     ax,fs
     497        call    AuxIO_TeletypeHexWord
     498
     499        ; GS
     500        call    AuxIO_Print
     501        mov     ax,gs
    414502        call    AuxIO_TeletypeHexWord
    415503        ;~ call    AuxIO_TeletypeNL
    416 
    417         call    AuxIO_Print
    418         mov     ax,bx
    419         call    AuxIO_TeletypeHexWord
    420         ;~ call    AuxIO_TeletypeNL
    421 
    422         call    AuxIO_Print
    423         mov     ax,cx
    424         call    AuxIO_TeletypeHexWord
    425         ;~ call    AuxIO_TeletypeNL
    426 
    427         call    AuxIO_Print
    428         mov     ax,dx
    429         call    AuxIO_TeletypeHexWord
    430         ;~ call    AuxIO_TeletypeNL
    431 
    432         call    AuxIO_Print
    433         pop     ax
    434         call    AuxIO_TeletypeHexWord
    435         ;~ call    AuxIO_TeletypeNL
    436 
    437         call    AuxIO_Print
    438         mov     ax,di
    439         call    AuxIO_TeletypeHexWord
    440         call    AuxIO_TeletypeNL
    441 
    442 
    443 
    444         call    AuxIO_Print
    445         mov     ax,cs
    446         call    AuxIO_TeletypeHexWord
    447         ;~ call    AuxIO_TeletypeNL
    448 
    449         call    AuxIO_Print
    450         mov     ax,ds
    451         call    AuxIO_TeletypeHexWord
    452         ;~ call    AuxIO_TeletypeNL
    453 
    454         call    AuxIO_Print
    455         mov     ax,es
    456         call    AuxIO_TeletypeHexWord
    457         ;~ call    AuxIO_TeletypeNL
    458 
    459         call    AuxIO_Print
    460         mov     ax,ss
    461         call    AuxIO_TeletypeHexWord
    462         ;~ call    AuxIO_TeletypeNL
    463 
    464         call    AuxIO_Print
    465         mov     ax,sp
    466         call    AuxIO_TeletypeHexWord
    467         ;~ call    AuxIO_TeletypeNL
    468 
    469         call    AuxIO_Print
    470         mov     ax,bp
    471         call    AuxIO_TeletypeHexWord
    472         call    AuxIO_TeletypeNL
    473 
    474         ;~ call    AuxIO_Print
    475         ;~ mov     ax,fs
    476         ;~ call    AuxIO_TeletypeHexWord
    477         ;~ call    AuxIO_TeletypeNL
    478 
    479         ;~ call    AuxIO_Print
    480         ;~ mov     ax,gs
    481         ;~ call    AuxIO_TeletypeHexWord
    482         ;~ call    AuxIO_TeletypeNL
    483 
     504.286
     505        ; Restore the flags
     506        popf
     507
     508        ; Load flags into AH
     509        lahf
     510
     511        ; Base of flags string
     512        ;~ mov     si, offset [flagsSF]
     513
     514        ; SF
     515        call    AuxIO_Print
     516        mov     al, ah
     517        shr     al, 7
     518        and     al, 01h
     519        add     al, '0'
     520        call    AuxIO_Teletype
     521
     522        ; ZF
     523        call    AuxIO_Print
     524        mov     al, ah
     525        shr     al, 6
     526        and     al, 01h
     527        add     al, '0'
     528        call    AuxIO_Teletype
     529
     530        ; AF
     531        call    AuxIO_Print
     532        mov     al, ah
     533        shr     al, 4
     534        and     al, 01h
     535        add     al, '0'
     536        call    AuxIO_Teletype
     537
     538        ; PF
     539        call    AuxIO_Print
     540        mov     al, ah
     541        shr     al, 2
     542        and     al, 01h
     543        add     al, '0'
     544        call    AuxIO_Teletype
     545
     546        ; CF
     547        call    AuxIO_Print
     548        mov     al, ah
     549        and     al, 01h
     550        add     al, '0'
     551        call    AuxIO_Teletype
     552
     553        ; 3rd and last row printed
    484554        call    AuxIO_TeletypeNL
    485555
Note: See TracChangeset for help on using the changeset viewer.