Changeset 49 for trunk/BOOTCODE


Ignore:
Timestamp:
Apr 12, 2014, 12:13:57 PM (11 years ago)
Author:
Ben Rietbroek
Message:

Fixed a nasty bug when eCS phase1 is active [2012-05-13]

WARNING!!

All commits upto and including the commit of [2012-05-13] contain
a severe bug!! Building from these sources and then disabling
the 'force LBA' feature while also using the drive-letter feature or
editing the label can DESTROY THE MBR on ALL ATTACHED DISKS!!
DO NOT DISABLE 'FORCE LBA USAGE' WHEN BUILT FROM THE THESE COMMITS!!

Fixes

o Bug Description

When creating a partition in a free space between partitions for
eCS installation, the phase1 boot-through code would calculate the
wrong index for the new partition. As a result the next partition
would be auto-booted instead of the newly installed system.
This bug is also present in v1.07.

o Quick Fix

Run PARTSCAN_ScanForPartitions for a second time when eCS phase1
is active. This resyncs the PartitionXref table.

Location:
trunk/BOOTCODE
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/BOOTCODE/AIR-BOOT.ASM

    r47 r49  
    855855                ;jmp skip
    856856
    857                 ; Rousseau:
    858                 ; I should cleanup my garbage here...
     857                mov     al, byte ptr [CFG_Partitions]
     858                mov     byte ptr [OldPartitionCount], al
    859859
    860860                ; Initialize Variable-Tables, Detections, etc.
     
    863863                ; Number of harddisks is now known
    864864
     865IFDEF   AUX_DEBUG
     866                call    DEBUG_DumpIPT
     867                ;~ call    DEBUG_DumpPartitionPointers
     868                call    DEBUG_DumpPartitionXref
     869                ;~ call    DEBUG_DumpNewPartTable
     870ENDIF
     871
     872                ; Scan all partitions
    865873                call    PARTSCAN_ScanForPartitions
    866874
    867 
    868                 ; Number of disks found
     875                ; Display number of physical disks found
    869876                mov     si, offset DisksFound
    870877                call    MBR_Teletype
    871 
    872878                mov     al, [TotalHarddiscs]
    873879                call    VideoIO_SyncPos
     
    876882                call    MBR_TeletypeNL
    877883
    878                 ; Number of bootable systems indicator
     884                ; Display number of partitions found
    879885                mov     si, offset PartitionsFound
    880886                call    MBR_Teletype
    881 
    882887                mov     al, [CFG_Partitions]
    883888                call    VideoIO_SyncPos
    884889                call    VideoIO_PrintByteDynamicNumber
    885890
     891                ; Dump summier disk-info for disks found
    886892                xor     si,si
    887893                call    MBR_TeletypeNL
    888894                call    MBR_TeletypeNL
    889 
    890895                call    VideoIO_SyncPos
    891 
    892896                mov     dl,80h
    893897                call    VideoIO_DumpDiskInfo
    894898
    895                 ;
    896                 ; Enumberate Bootable Systems by name
    897                 ; and prepare Phase 1 if active.
    898                 ;
    899                 ; This can also be implemented using the
    900                 ; Installable LVM-flag I think.
    901                 ; But at the time I had lesser knowledge about LVM...
    902                 ; So this algorithm may change in the future.
    903                 ;
    904                 mov     si, offset PartitionTable
    905                 xor     cx,cx
    906                 mov     cl,[CFG_Partitions]
    907     MBR_Parts:
    908                 add     si, 4
    909                 push    si
    910                 push    si
    911                 ;call    MBR_TeletypeVolName
    912                 pop     si
    913                 call    PART_IsInstallVolume
    914                 jnc     MBR_Parts_NI
    915 
    916                 ; Install Volume
    917                 mov     al,' '
    918                 mov     bl,7
    919                 mov     ah, 0eh
    920                 int     10h
    921 
    922                 mov     al,'('
    923                 mov     bl,7
    924                 mov     ah, 0eh
    925                 int     10h
    926 
    927                 mov     al,[CFG_Partitions]
    928                 sub     al,cl
    929                 ;inc     al
    930                 ;mov     [Menu_EntryAutomatic],al
    931                 mov     [CFG_PartAutomatic],al  ; Setup entry for install-volume
    932                 mov     [CFG_PartLast],al
    933                 mov     ah, [eCS_InstallVolume] ; 1st byte is 0 if no phase 1 active
    934                 test    ah,ah                   ; test the byte, ZF is 0 if phase 1 active
    935                 lahf                            ; flags in ah
    936                 xor     ah, 40h                 ; complement ZF
    937                 and     ah, 40h                 ; mask ZF
    938                 shr     ah, 6                   ; move ZF to LSB
    939                 mov     [CFG_AutomaticBoot], ah ; automatic boot if phase 1 is active
    940 
    941 
    942                 add     al,'1'
    943                 mov     bl,7
    944                 mov     ah, 0eh
    945                 int     10h
    946 
    947                 mov     al,')'
    948                 mov     bl,7
    949                 mov     ah, 0eh
    950                 int     10h
    951 
    952                 mov     bx,cx
    953 
    954     MBR_Parts_NI:
    955                 xor     si,si
    956                 ;call    MBR_TeletypeNL
    957                 pop     si
    958                 add     si, 30      ; Add remainder of IPT entry
    959                 loop    MBR_Parts
    960 
    961 
    962 
    963 
    964                 ; Index of automatic start partition
    965                 ;mov     si, offset AutoStartPart
    966                 ;call    MBR_Teletype
    967 
    968                 ;mov     al, [CFG_PartAutomatic]
    969                 ;add     al, 31h
    970                 ;mov     ah, 09h
    971                 ;mov     bx, 15
    972                 ;mov     cx, 1
    973                 ;int     10h
    974 
    975                 ;mov     al, [CFG_PartAutomatic]
    976                 ;add     al, 31h
    977                 ;mov     ah, 0eh
    978                 ;mov     bx, 15
    979                 ;mov     cx, 1
    980                 ;int     10h
    981 
     899
     900IFDEF   AUX_DEBUG
     901                call    DEBUG_DumpIPT
     902                ;~ call    DEBUG_DumpPartitionPointers
     903                call    DEBUG_DumpPartitionXref
     904                ;~ call    DEBUG_DumpNewPartTable
     905ENDIF
     906
     907
     908                ; ======================
     909                ; == eCS PHASE1 check ==
     910                ; ======================
     911
     912                ; If the firt byte if name of the Install Volume is not 0
     913                ; then we potentially have a phase1 boot.
     914                test    byte ptr [eCS_InstallVolume],0ffh
     915                ; Nope, so continue normally.
     916                jz      MBR_Main_ContinueBoot
     917
     918                ; Setup phase1.
     919                ; It is still possible that a name was set for the
     920                ; Install Volume that does not exist.
     921                ; In that case CY will be clear and AL=0FFh.
     922                call    PART_SetupPhase1
     923                ; Oops, Install Volume not found, continue normally.
     924                jnc     MBR_Main_ContinueBoot
     925
     926
     927                ; == Install Volume Found ==
     928
     929                ; Because the old IPT read from disk differs from the new
     930                ; IPT, we need to rescan all partitions.
     931                ; This causes the PartitionXref table to be filled with
     932                ; correct values so the auto-boot from the new partition
     933                ; works correctly.
     934                call    PARTSCAN_ScanForPartitions
     935
     936                ; Setup automatic boot to forgo the Menu.
     937                ; PART_SetupPhase1 has filled in the other variables.
     938                mov     byte ptr [CFG_AutomaticBoot],1
     939
     940
     941IFDEF   AUX_DEBUG
     942                call    DEBUG_DumpIPT
     943                ;~ call    DEBUG_DumpPartitionPointers
     944                call    DEBUG_DumpPartitionXref
     945                ;~ call    DEBUG_DumpNewPartTable
     946ENDIF
     947
     948
     949                jmp     MBR_Main_ContinueBoot
     950
     951
     952
     953
     954
     955    MBR_Main_ContinueBoot:
    982956                xor     si,si
    983957                call    MBR_TeletypeNL
     
    985959                call    MBR_TeletypeNL
    986960
    987                 ;mov    ax,[BIOS_AuxParms]
    988                 ;call   VideoIO_SyncPos
    989                 ;push   ax
    990                 ;add    al,'0'
    991                 ;mov     bl,7
    992                 ;mov     ah, 0eh
    993                 ;int     10h
    994                 ;pop    ax
    995                 ;xchg   al,ah
    996                 ;sub    al,0a2h
    997                 ;mov     bl,7
    998                 ;mov     ah, 0eh
    999                 ;int     10h
    1000 
    1001961
    1002962                call    MBR_TeletypeSyncPos
     
    1012972
    1013973
    1014     skip:
     974
    1015975
    1016976
     
    1023983                ; Rousseau:
    1024984                ; Wait for key so we can see debug log if ab-menu hangs.
    1025                 ;;xor     ax, ax
    1026                 ;;int     16h
     985                ;~ xor     ax, ax
     986                ;~ int     16h
    1027987
    1028988                ;call     SOUND_Beep
     
    10471007                ; Save configuration so phase1 boot-through is disabled
    10481008                ; on next boot.
    1049                 ; Moved here to fix that Esc out of SETUP would also save.
    1050                 ; So moved above the MBR_Main_ReEnterSetup label.
    10511009                mov     byte ptr [eCS_InstallVolume], 0  ; disable phase 1 for next boot
    10521010                call    DriveIO_SaveConfiguration
     
    10971055                test    byte ptr [CFG_AutomaticBoot], 1
    10981056                jz      MBR_Main_NoAutomaticBooting
     1057
     1058
    10991059                ; ------------------------------------------ AUTOMATIC BOOTING
    11001060                ; Select automatic partition, disable automatic booting for
     
    11091069                jmp     MBR_Main_NoBootMenu
    11101070
    1111                 MBR_Main_NoAutomaticBooting:
     1071
     1072    MBR_Main_NoAutomaticBooting:
    11121073
    11131074                ;call   SOUND_Beep
     
    11671128            ENDIF
    11681129                call    ANTIVIR_SaveBackUpMBR
    1169                 mov     dl, Menu_EntrySelected
     1130
     1131                ; Preload the selected menu-entry
     1132                ; However, this value will be wrong if eCS phase1 is
     1133                ; active and the installation partition is newly created.
     1134                ; See below for the adjustment.
     1135                mov     dl, byte ptr [Menu_EntrySelected]
     1136
     1137                jmp     MBR_Main_StartPartition
     1138
     1139
     1140
     1141    MBR_Main_StartPartition:
     1142
     1143IFDEF   AUX_DEBUG
     1144                ;~ call    DEBUG_DumpIPT
     1145                ;~ call    DEBUG_DumpPartitionPointers
     1146                call    DEBUG_DumpPartitionXref
     1147                ;~ call    DEBUG_DumpNewPartTable
     1148ENDIF
     1149
    11701150
    11711151                ; -------------------------------------------- START PARTITION
     
    15461526;eCS_InstallVolume       db  12 dup (0)
    15471527;eCS_InstallVolume       db  'HIGHLOG' ,0
    1548 eCS_InstallVolume       db  0,'NOPHASEONE' ,0
    15491528;eCS_InstallVolume       db  'ECS-MIDDLE',0,0
    15501529;eCS_InstallVolume       db  'ECS-HIGH',0,0,0,0
    15511530;eCS_InstallVolume       db  'ECS-HIGH',0,'NO',0
    1552 
     1531eCS_InstallVolume       db  'KANWEG2',0
     1532;eCS_InstallVolume       db  0,'NOPHASEONE' ,0
    15531533
    15541534;
     
    17791759PartitionSizeTable          db  partition_count * 6 dup (?)
    17801760
    1781 ; Maximum is 52 entries till now
     1761; Maximum is 52 word entries till now
    17821762PartitionPointers           dw  52 dup (?)
    17831763
     
    18901870;
    18911871
     1872Phase1Active                db      ?
     1873OldPartitionCount           db      ?
    18921874
    18931875                              ;EVEN
  • trunk/BOOTCODE/AIR-BOOT.HIS

    r48 r49  
    2424; Rousseau: Fixes and Enhancements
    2525; ---------------------------------
     26;
     27; v1.0.8-rc3-bld201205nn
     28; ----------------------
     29; # Fixed a nasty bug when eCS phase1 is active #
     30;   When creating a partition in a free space between partitions for
     31;   eCS installation, the phase1 boot-through code would calculate the
     32;   wrong index for the new partition. As a result the next partition
     33;   would be auto-booted instead of the newly installed system.
     34;   This has been fixed.
     35;   This bug is also present in v1.07.
    2636;
    2737; v1.0.8-rc2-bld20120423
  • trunk/BOOTCODE/Makefile

    r47 r49  
    174174# -zcw  = no _ prefix on symbols (C model)
    175175# -Zm   = Masm51 compat -- don't use ! (Will generate incorrect offsets)
    176 ASM_FLAGS_D0=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DJWASM -q -Cp -zcw -Fo$^. -Sa -Fl=$^&.LST -Fw$^&.ERR
    177 ASM_FLAGS_D1=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DJWASM -q -Cp -zcw -Zd -Zi -Fo$^. -Sa -Fl=$^&.LST -Fw$^&.ERR
    178 ASM_FLAGS_D2=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DJWASM -q -Cp -zcw -Zd -Zi -Fo$^. -Sa -Fl=$^&.LST -Fw$^&.ERR
     176ASM_FLAGS_D0=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DJWASM -q -W0 -Cp -zcw -Fo$^. -Sa -Fl=$^&.LST -Fw$^&.ERR
     177ASM_FLAGS_D1=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DJWASM -q -W4 -Cp -zcw -Zd -Zi -Fo$^. -Sa -Fl=$^&.LST -Fw$^&.ERR
     178ASM_FLAGS_D2=-DDEBUG_LEVEL=$(DEBUG_LEVEL) -DJWASM -q -W4 -Cp -zcw -Zd -Zi -Fo$^. -Sa -Fl=$^&.LST -Fw$^&.ERR
    179179
    180180# WASM
     
    182182# -w0   = suppress warnings (wasm is nice to check for missing size qualifiers)
    183183ASM_FLAGS_D0=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dWASM -zq -w0 -fo=$^. -fr=$^&.ERR
    184 ASM_FLAGS_D1=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dWASM -zq -d1 -fo=$^. -fr=$^&.ERR
    185 ASM_FLAGS_D2=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dWASM -zq -d1 -fo=$^. -fr=$^&.ERR
     184ASM_FLAGS_D1=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dWASM -zq -w4 -d1 -fo=$^. -fr=$^&.ERR
     185ASM_FLAGS_D2=-dDEBUG_LEVEL=$(DEBUG_LEVEL) -dWASM -zq -w4 -d1 -fo=$^. -fr=$^&.ERR
    186186
    187187# TASM
  • trunk/BOOTCODE/REGULAR/DEBUG.ASM

    r47 r49  
    164164DEBUG_DumpGeo   Endp
    165165
     166
     167
     168DEBUG_DumpIPT   Proc
     169        pushf
     170        pusha
     171
     172        call    AuxIO_TeletypeNL
     173
     174        mov     si,offset [PartitionTable]
     175        call    AuxIO_DumpSector
     176
     177        popa
     178        popf
     179        ret
     180DEBUG_DumpIPT   EndP
     181
     182DEBUG_DumpNewPartTable  Proc
     183        pushf
     184        pusha
     185
     186        call    AuxIO_TeletypeNL
     187
     188        mov     si,offset [NewPartTable]
     189        call    AuxIO_DumpSector
     190
     191        popa
     192        popf
     193        ret
     194DEBUG_DumpNewPartTable  EndP
     195
     196DEBUG_DumpPartitionPointers     Proc
     197        pushf
     198        pusha
     199
     200        call    AuxIO_TeletypeNL
     201
     202        mov     si,offset [PartitionPointers]
     203        mov     cx,7
     204
     205    DEBUG_DumpPartitionPointers_next:
     206        call    AuxIO_DumpParagraph
     207        add     si,16
     208        call    AuxIO_TeletypeNL
     209        loop    DEBUG_DumpPartitionPointers_next
     210
     211        popa
     212        popf
     213        ret
     214DEBUG_DumpPartitionPointers     EndP
     215
     216
     217DEBUG_DumpPartitionXref     Proc
     218        pushf
     219        pusha
     220
     221        call    AuxIO_TeletypeNL
     222
     223        mov     si,offset [PartitionXref]
     224        mov     cx,3
     225
     226    DEBUG_DumpPartitionXref_next:
     227        call    AuxIO_DumpParagraph
     228        add     si,16
     229        call    AuxIO_TeletypeNL
     230        loop    DEBUG_DumpPartitionXref_next
     231
     232        popa
     233        popf
     234        ret
     235DEBUG_DumpPartitionXref     EndP
     236
    166237;
    167238; Dump information before the menu is displayed.
     
    230301
    231302DEBUG_DumpHidePartTables    Proc    Near
    232         pushf
    233         pusha
    234 
    235         mov     cx,3
    236         mov     si, offset [HidePartitionTable]
    237     again1:
    238         call    AuxIO_DumpSector
    239         add     si,512
    240         loop    again1
    241         call    AuxIO_TeletypeNL
    242 
    243         mov     cx,3
    244         mov     si, offset [PartitionXref]
    245     again2:
    246         call    AuxIO_DumpParagraph
    247         call    AuxIO_TeletypeNL
    248         add     si,16
    249         loop    again2
    250         call    AuxIO_TeletypeNL
    251 
    252         mov     cx,3
    253         mov     si, offset [NewHidePartTable]
    254     again3:
    255         call    AuxIO_DumpSector
    256         add     si,512
    257         loop    again3
    258         call    AuxIO_TeletypeNL
    259 
    260         popa
    261         popf
     303        ;~ pushf
     304        ;~ pusha
     305;~
     306        ;~ mov     cx,3
     307        ;~ mov     si, offset [HidePartitionTable]
     308    ;~ again1:
     309        ;~ call    AuxIO_DumpSector
     310        ;~ add     si,512
     311        ;~ loop    again1
     312        ;~ call    AuxIO_TeletypeNL
     313;~
     314        ;~ mov     cx,3
     315        ;~ mov     si, offset [PartitionXref]
     316    ;~ again2:
     317        ;~ call    AuxIO_DumpParagraph
     318        ;~ call    AuxIO_TeletypeNL
     319        ;~ add     si,16
     320        ;~ loop    again2
     321        ;~ call    AuxIO_TeletypeNL
     322;~
     323        ;~ mov     cx,3
     324        ;~ mov     si, offset [NewHidePartTable]
     325    ;~ again3:
     326        ;~ call    AuxIO_DumpSector
     327        ;~ add     si,512
     328        ;~ loop    again3
     329        ;~ call    AuxIO_TeletypeNL
     330;~
     331        ;~ popa
     332        ;~ popf
    262333        ret
    263334DEBUG_DumpHidePartTables    EndP
  • trunk/BOOTCODE/REGULAR/DRIVEIO.ASM

    r47 r49  
    107107        mov     es, ax
    108108
    109         mov     ah, 00h                        ; Function 2 - Reset Drive
     109        mov     ah, 00h                        ; Function 0 - Reset Drive
    110110        xor     dl, dl
    111111        int     13h
     
    569569    IFDEF AUX_DEBUG
    570570        ; show current partition location
    571         pushf
    572         pusha
     571        ;~ pushf
     572        ;~ pusha
    573573        ;~ call    AuxIO_TeletypeNL
    574574        ;~ mov     si,offset db_curlvmsec
    575575        ;~ call    AuxIO_Print
    576         mov     dx,bx
     576        ;~ mov     dx,bx
    577577        ;~ call    AuxIO_TeletypeHexDWord
    578578        ;~ call    AuxIO_TeletypeNL
    579         mov     si,offset LVMSector
     579        ;~ mov     si,offset LVMSector
    580580        ;~ call    AuxIO_DumpSector
    581581        ;~ call    AuxIO_TeletypeNL
    582         popa
    583         popf
     582        ;~ popa
     583        ;~ popf
    584584    ENDIF
    585585
  • trunk/BOOTCODE/REGULAR/PARTMAIN.ASM

    r46 r49  
    745745
    746746
     747; Setup Phase1
     748; If found CY=1, AL=partnum, else CY=0, AL=0FFH
     749PART_SetupPhase1    Proc    Uses bx cx dx si di
     750
     751                ;
     752                ; Enumberate Bootable Systems by name
     753                ; and prepare Phase 1 if active.
     754                ;
     755                ; This can also be implemented using the
     756                ; Installable LVM-flag I think.
     757                ; But at the time I had lesser knowledge about LVM...
     758                ; So this algorithm may change in the future.
     759                ;
     760                mov     byte ptr [Phase1Active],0   ; Clear phase1 indicator
     761                mov     si, offset PartitionTable   ; Pointer to IPT
     762                xor     cx,cx
     763                mov     cl,[CFG_Partitions]         ; Partitions in IPT
     764
     765    ; Process next entry in IPT
     766    MBR_Parts:
     767                add     si, 4
     768                ;push    si
     769                ;push    si
     770                ;call    MBR_TeletypeVolName
     771                ;pop     si
     772                call    PART_IsInstallVolume        ; Check if this is install-volume
     773                jnc     MBR_Parts_NI
     774
     775                ;
     776                ; Install Volume found
     777                ;
     778                mov     byte ptr [Phase1Active],1   ; Set phase1 indicator
     779
     780                mov     al,' '
     781                mov     bl,7
     782                mov     ah, 0eh
     783                int     10h
     784
     785                mov     al,'('
     786                mov     bl,7
     787                mov     ah, 0eh
     788                int     10h
     789
     790
     791
     792                mov     al,[CFG_Partitions]
     793                sub     al,cl
     794
     795                mov     dh,al
     796
     797
     798                mov     [CFG_PartAutomatic],al  ; Setup entry for install-volume
     799                mov     [CFG_PartLast],al
     800
     801                add     al,'1'
     802                mov     bl,7
     803                mov     ah, 0eh
     804                int     10h
     805
     806                mov     al,')'
     807                mov     bl,7
     808                mov     ah, 0eh
     809                int     10h
     810
     811                ;mov     bx,cx       ; ????
     812
     813                mov     al,dh
     814                stc
     815                jmp     PART_SetupPhase1_found
     816
     817    MBR_Parts_NI:
     818                ;xor     si,si
     819                ;call    MBR_TeletypeNL
     820                ;pop     si
     821                add     si, 30      ; Add remainder of IPT entry
     822                loop    MBR_Parts
     823
     824                mov     al,0ffh
     825                clc
     826
     827    PART_SetupPhase1_found:
     828
     829                ret
     830
     831PART_SetupPhase1    EndP
     832
     833
     834
     835
     836;~ PART_GetOldPartitionCount   Proc    Uses    cx dx di
     837                ;~ mov     di,offset [PartitionXref]
     838                ;~ mov     dx,partition_count
     839                ;~ mov     cx,dx
     840                ;~ mov     al,0ffh
     841                ;~ cld
     842                ;~ repne   scasb
     843                ;~ inc     cx
     844                ;~ sub     dx,cx
     845                ;~ mov     ax,dx
     846                ;~ ret
     847;~ PART_GetOldPartitionCount   EndP
     848
     849
    747850
    748851; ###################
     
    12941397        popa
    12951398
     1399
     1400
     1401
     1402
    12961403        ; Debug display physdisk, ptype and physdisk offset in BPB
    1297         pusha
    1298         mov     ah,[si+LocIPT_Drive]
    1299         mov     al,[si+LocIPT_SystemID]
    1300         call    VideoIO_PrintHexWord
    1301         mov     ax,bx
    1302         call    VideoIO_PrintHexWord
    1303         mov     ax,[si+LocIPT_AbsolutePartTable+02]
    1304         call    VideoIO_PrintHexWord
    1305         mov     ax,[si+LocIPT_AbsolutePartTable+00]
    1306         call    VideoIO_PrintHexWord
    1307         mov     al,[ExtendedAbsPosSet]
    1308         call    VideoIO_PrintHexByte
    1309         popa
     1404        ;~ pusha
     1405        ;~ mov     ah,[si+LocIPT_Drive]
     1406        ;~ mov     al,[si+LocIPT_SystemID]
     1407        ;~ call    VideoIO_PrintHexWord
     1408        ;~ mov     ax,bx
     1409        ;~ call    VideoIO_PrintHexWord
     1410        ;~ mov     ax,[si+LocIPT_AbsolutePartTable+02]
     1411        ;~ call    VideoIO_PrintHexWord
     1412        ;~ mov     ax,[si+LocIPT_AbsolutePartTable+00]
     1413        ;~ call    VideoIO_PrintHexWord
     1414        ;~ mov     al,[ExtendedAbsPosSet]
     1415        ;~ call    VideoIO_PrintHexByte
     1416        ;~ mov     al,'-'
     1417        ;~ call    VideoIO_PrintSingleChar
     1418        ;~ mov     al,byte ptr [Menu_EntrySelected]
     1419        ;~ call    VideoIO_PrintHexByte
     1420        ;~ mov     al,byte ptr [CFG_PartAutomatic]
     1421        ;~ call    VideoIO_PrintHexByte
     1422        ;~ mov     al,byte ptr [Phase1Active]
     1423        ;~ call    VideoIO_PrintHexByte
     1424        ;~ mov     al,byte ptr [NewPartitions]
     1425        ;~ call    VideoIO_PrintHexByte
     1426        ;~ mov     al, byte ptr [OldPartitionCount]
     1427        ;~ call    VideoIO_PrintHexByte
     1428        ;~ popa
     1429
     1430
     1431
     1432
    13101433
    13111434
  • trunk/BOOTCODE/REGULAR/PARTSCAN.ASM

    r46 r49  
    894894
    895895    IFDEF   AUX_DEBUG
    896         pusha
    897         mov     al,dl
    898         call    AuxIO_TeletypeHexByte
    899         call    AuxIO_TeletypeNL
    900         popa
     896        ;~ pusha
     897        ;~ mov     al,dl
     898        ;~ call    AuxIO_TeletypeHexByte
     899        ;~ call    AuxIO_TeletypeNL
     900        ;~ popa
    901901    ENDIF
    902902
     
    914914    IFDEF   AUX_DEBUG
    915915        ; debug code
    916         mov     ax,di
    917         call    AuxIO_TeletypeHexWord
    918         call    AuxIO_TeletypeNL
     916        ;~ mov     ax,di
     917        ;~ call    AuxIO_TeletypeHexWord
     918        ;~ call    AuxIO_TeletypeNL
    919919    ENDIF
    920920
  • trunk/BOOTCODE/REGULAR/STD_TEXT.ASM

    r48 r49  
    5555             db BLDLVL_MINOR_VERSION,' - (c) '
    5656             db BLDLVL_YEAR
    57              ;~ db ' M. Kiewitz  <<Internal Release 2q>> (bld: '
    58              db ' M. Kiewitz  <<Release Candidate 2>> (bld: '
     57             db ' M. Kiewitz  <<Internal Release 3b>> (bld: '
     58             ;~ db ' M. Kiewitz  <<Release Candidate 2>> (bld: '
    5959             db BLDLVL_YEAR
    6060             db BLDLVL_MONTH
  • trunk/BOOTCODE/SETUP/PART_SET.ASM

    r46 r49  
    922922
    923923IFDEF   AUX_DEBUG
    924         pusha
    925         mov     al,dl   ; Partition the hiding is set for.
    926         call    AuxIO_TeletypeHexByte
    927         call    AuxIO_TeletypeNL
    928         popa
     924        ;~ pusha
     925        ;~ mov     al,dl   ; Partition the hiding is set for.
     926        ;~ call    AuxIO_TeletypeHexByte
     927        ;~ call    AuxIO_TeletypeNL
     928        ;~ popa
    929929ENDIF
    930930
     
    946946
    947947IFDEF   AUX_DEBUG
    948         pusha
    949         mov     al,dl   ; Index of partition to set Special Marker on.
    950         call    AuxIO_TeletypeHexByte
    951         call    AuxIO_TeletypeNL
    952         popa
     948        ;~ pusha
     949        ;~ mov     al,dl   ; Index of partition to set Special Marker on.
     950        ;~ call    AuxIO_TeletypeHexByte
     951        ;~ call    AuxIO_TeletypeNL
     952        ;~ popa
    953953ENDIF
    954954
     
    14011401
    14021402    IFDEF   AUX_DEBUG
    1403         pushf
    1404         pusha
    1405         push    ax
    1406         mov     al,dl
    1407         call    AuxIO_TeletypeHexByte
    1408         mov     al,':'
    1409         call    AuxIO_Teletype
    1410         mov     ax,bx
    1411         call    AuxIO_TeletypeHexWord
    1412         mov     al,':'
    1413         call    AuxIO_Teletype
    1414         mov     ax,bp
    1415         call    AuxIO_TeletypeHexWord
    1416         mov     al,':'
    1417         call    AuxIO_Teletype
    1418         mov     ax,sp
    1419         call    AuxIO_TeletypeHexWord
    1420         mov     al,':'
    1421         call    AuxIO_Teletype
    1422         pop     ax
    1423         call    AuxIO_TeletypeHexByte
    1424         call    AuxIO_TeletypeNL
    1425         popa
    1426         popf
     1403        ;~ pushf
     1404        ;~ pusha
     1405        ;~ push    ax
     1406        ;~ mov     al,dl
     1407        ;~ call    AuxIO_TeletypeHexByte
     1408        ;~ mov     al,':'
     1409        ;~ call    AuxIO_Teletype
     1410        ;~ mov     ax,bx
     1411        ;~ call    AuxIO_TeletypeHexWord
     1412        ;~ mov     al,':'
     1413        ;~ call    AuxIO_Teletype
     1414        ;~ mov     ax,bp
     1415        ;~ call    AuxIO_TeletypeHexWord
     1416        ;~ mov     al,':'
     1417        ;~ call    AuxIO_Teletype
     1418        ;~ mov     ax,sp
     1419        ;~ call    AuxIO_TeletypeHexWord
     1420        ;~ mov     al,':'
     1421        ;~ call    AuxIO_Teletype
     1422        ;~ pop     ax
     1423        ;~ call    AuxIO_TeletypeHexByte
     1424        ;~ call    AuxIO_TeletypeNL
     1425        ;~ popa
     1426        ;~ popf
    14271427    ENDIF
    14281428
  • trunk/BOOTCODE/VERSION.INC

    r48 r49  
    1616; The Year, Month and Day in BCD so we can easily extract nibbles.
    1717AB_YEAR             EQU     2012h
    18 AB_MONTH            EQU     04h
    19 AB_DAY              EQU     23h
     18AB_MONTH            EQU     05h
     19AB_DAY              EQU     13h
    2020
    2121; The Hours, Minutes and Seconds, again in BCD for easy manipulation.
    22 AB_HOURS            EQU     19h
    23 AB_MINUTES          EQU     41h
     22AB_HOURS            EQU     00h
     23AB_MINUTES          EQU     25h
    2424AB_SECONDS          EQU     00h
    2525
Note: See TracChangeset for help on using the changeset viewer.