Changeset 46 for trunk/BOOTCODE/SPECIAL
- Timestamp:
- Apr 12, 2014, 8:23:32 AM (12 years ago)
- Location:
- trunk/BOOTCODE/SPECIAL
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BOOTCODE/SPECIAL/F00K/BILLSUXX.ASM
r40 r46 34 34 MSHACK_ProcessPartTables Proc Near Uses ax dx di 35 35 ; Check Overall M$-Hack Enable 36 test [CFG_ExtPartitionMShack], 136 test byte ptr [CFG_ExtPartitionMShack], 1 37 37 jz MSHPPT_NoMShack 38 38 -
trunk/BOOTCODE/SPECIAL/FAT16.ASM
r40 r46 125 125 ; ES - Segment, where to read Cluster to 126 126 ; DI - Offset, where to read Cluster to 127 ; Out: DX - Cluster that follows this one, [ES:DI] filled out127 ; Out: DX - Cluster that follows this one, es:[DI] filled out 128 128 ; DI - Offset, adjusted 129 129 ; Destroyed: None -
trunk/BOOTCODE/SPECIAL/FX.ASM
r40 r46 52 52 FX_CalculateTables EndP 53 53 54 ; This routine will dump a color-table to ES: [DI]. Total of 96 bytes.54 ; This routine will dump a color-table to ES:es:[DI]. Total of 96 bytes. 55 55 ; In: AX - Color-Separator (RGB, per value 4 bit) 56 56 ; DI - Pointer to Buffer for Color-Table … … 112 112 ; so the screen will be generated there instead of the current page. 113 113 FX_StartScreen Proc Near 114 test CFG_CooperBars, 1114 test byte ptr [CFG_CooperBars], 1 115 115 jz FXSS_NoFX 116 mov VideoIO_Segment, VideoIO_Page2116 mov word ptr [VideoIO_Segment], VideoIO_Page2 117 117 FXSS_NoFX: 118 118 ret … … 123 123 ; copy the new screen to Page 0 and activate it. 124 124 FX_EndScreenLeft Proc Near 125 test CFG_CooperBars, 1125 test byte ptr [CFG_CooperBars], 1 126 126 jnz FXESL_Go 127 127 ret … … 137 137 mov ax, VideoIO_Page2 138 138 call VideoIO_RestoreFrom 139 mov VideoIO_Segment, VideoIO_Page0139 mov word ptr [VideoIO_Segment], VideoIO_Page0 140 140 call FX_EndScreenInternalCleanUp 141 141 popa … … 144 144 145 145 FX_ScrollScreenLeft Proc Near 146 mov FX_WideScrollerCurPos, 640147 mov FX_WideScrollerDirection, 0148 mov FX_WideScrollerAbsDirection, 0146 mov word ptr [FX_WideScrollerCurPos], 640 147 mov byte ptr [FX_WideScrollerDirection], 0 148 mov byte ptr [FX_WideScrollerAbsDirection], 0 149 149 call FX_EndScreenInternalGo 150 150 ret … … 152 152 153 153 FX_EndScreenRight Proc Near 154 test CFG_CooperBars, 1154 test byte ptr [CFG_CooperBars], 1 155 155 jnz FXESR_Go 156 156 ret … … 166 166 mov ax, VideoIO_Page2 167 167 call VideoIO_RestoreFrom 168 mov VideoIO_Segment, VideoIO_Page0168 mov word ptr [VideoIO_Segment], VideoIO_Page0 169 169 call FX_EndScreenInternalCleanUp 170 170 popa … … 173 173 174 174 FX_ScrollScreenRight Proc Near 175 mov FX_WideScrollerCurPos, 0176 mov FX_WideScrollerDirection, 1177 mov FX_WideScrollerAbsDirection, 1175 mov word ptr [FX_WideScrollerCurPos], 0 176 mov byte ptr [FX_WideScrollerDirection], 1 177 mov byte ptr [FX_WideScrollerAbsDirection], 1 178 178 call FX_EndScreenInternalGo 179 179 ret … … 181 181 182 182 FX_EndScreenInternalGo Proc Near 183 mov FX_WideScrollerSpeed, 1184 mov FX_WideScrollerSpeedState, 1185 mov FX_WideScrollerBounceSpeed, 25183 mov byte ptr [FX_WideScrollerSpeed], 1 184 mov byte ptr [FX_WideScrollerSpeedState], 1 185 mov byte ptr [FX_WideScrollerBounceSpeed], 25 186 186 ; Check, if this is 1st time call... 187 inc FX_UseCount188 cmp FX_UseCount, 1187 inc word ptr [FX_UseCount] 188 cmp word ptr [FX_UseCount], 1 189 189 jne FX_ES_NotFirstTime 190 mov FX_OverallTimer, 220191 mov FX_WideScrollerTimer, 93192 mov FX_CooperBarsTimer, 1190 mov word ptr [FX_OverallTimer], 220 191 mov word ptr [FX_WideScrollerTimer], 93 192 mov word ptr [FX_CooperBarsTimer], 1 193 193 jmp FX_ES_NowGoMagic 194 194 FX_ES_NotFirstTime: 195 mov FX_OverallTimer, 127196 mov FX_WideScrollerTimer, 1197 mov FX_CooperBarsTimer, -1; Disable coopers on further goes195 mov word ptr [FX_OverallTimer], 127 196 mov word ptr [FX_WideScrollerTimer], 1 197 mov word ptr [FX_CooperBarsTimer], -1 ; Disable coopers on further goes 198 198 FX_ES_NowGoMagic: 199 199 call FX_MakeMagicalStuff … … 275 275 jb FX_MCS_VerticalLoop 276 276 277 mov ax, FX_CooperBarsTimer277 mov ax, [FX_CooperBarsTimer] 278 278 dec ax 279 279 jnz FX_MMS_CooperBarsPending … … 282 282 mov ax, 1 283 283 FX_MMS_CooperBarsPending: 284 mov FX_CooperBarsTimer, ax285 286 mov ax, FX_WideScrollerTimer284 mov [FX_CooperBarsTimer], ax 285 286 mov ax, [FX_WideScrollerTimer] 287 287 dec ax 288 288 jnz FX_MMS_WideScrollerPending … … 290 290 mov ax, 1 291 291 FX_MMS_WideScrollerPending: 292 mov FX_WideScrollerTimer, ax293 294 dec FX_OverallTimer292 mov [FX_WideScrollerTimer], ax 293 294 dec word ptr [FX_OverallTimer] 295 295 jnz FX_MMS_RetraceLoop 296 296 ret … … 417 417 418 418 FX_CalculateWideScroller Proc Near 419 mov bx, FX_WideScrollerCurPos419 mov bx, [FX_WideScrollerCurPos] 420 420 ;movzx cx, FX_WideScrollerSpeed 421 mov cl, FX_WideScrollerSpeed421 mov cl, [FX_WideScrollerSpeed] 422 422 mov ch,0 423 423 424 test FX_WideScrollerAbsDirection, 1424 test byte ptr [FX_WideScrollerAbsDirection], 1 425 425 jnz FXCWS_RIGHT 426 426 jmp FXCWS_LEFT … … 428 428 ; ================================================== WideScroll: LEFT CALC 429 429 FXCWS_LEFT: 430 test FX_WideScrollerSpeedState, 1430 test byte ptr [FX_WideScrollerSpeedState], 1 431 431 jz FXCWS_LEFT_Bouncing 432 432 or bx, bx … … 437 437 or cx, cx 438 438 jnz FXCWS_DoSpeedThing 439 mov FX_WideScrollerSpeedState, 1440 mov FX_WideScrollerDirection, 0441 mov dl, FX_WideScrollerBounceSpeed439 mov byte ptr [FX_WideScrollerSpeedState], 1 440 mov byte ptr [FX_WideScrollerDirection], 0 441 mov dl, [FX_WideScrollerBounceSpeed] 442 442 shr dl,1 443 mov FX_WideScrollerBounceSpeed, dl443 mov [FX_WideScrollerBounceSpeed], dl 444 444 jmp FXCWS_DoSpeedThing 445 445 446 446 FXCWS_LEFT_BounceNOW: 447 mov cl, FX_WideScrollerBounceSpeed448 mov FX_WideScrollerSpeedState, 0449 mov FX_WideScrollerDirection, 1447 mov cl, [FX_WideScrollerBounceSpeed] 448 mov byte ptr [FX_WideScrollerSpeedState], 0 449 mov byte ptr [FX_WideScrollerDirection], 1 450 450 jmp FXCWS_DoSpeedThing 451 451 452 452 ; ================================================= WideScroll: RIGHT CALC 453 453 FXCWS_RIGHT: 454 test FX_WideScrollerSpeedState, 1454 test byte ptr [FX_WideScrollerSpeedState], 1 455 455 jz FXCWS_RIGHT_Bouncing 456 456 cmp bx, 640 ; 1280 … … 461 461 or cl, cl 462 462 jnz FXCWS_DoSpeedThing 463 mov FX_WideScrollerSpeedState, 1464 mov FX_WideScrollerDirection, 1465 mov dl, FX_WideScrollerBounceSpeed463 mov byte ptr [FX_WideScrollerSpeedState], 1 464 mov byte ptr [FX_WideScrollerDirection], 1 465 mov dl, [FX_WideScrollerBounceSpeed] 466 466 shr dl, 1 467 mov FX_WideScrollerBounceSpeed, dl467 mov [FX_WideScrollerBounceSpeed], dl 468 468 jmp FXCWS_DoSpeedThing 469 469 470 470 FXCWS_RIGHT_BounceNOW: 471 mov cl, FX_WideScrollerBounceSpeed472 mov FX_WideScrollerSpeedState, 0473 mov FX_WideScrollerDirection, 0471 mov cl, [FX_WideScrollerBounceSpeed] 472 mov byte ptr [FX_WideScrollerSpeedState], 0 473 mov byte ptr [FX_WideScrollerDirection], 0 474 474 jmp FXCWS_DoSpeedThing 475 475 476 476 ; ================================================= WideScroll: SPEED CALC 477 477 FXCWS_DoSpeedThing: 478 test FX_WideScrollerSpeedState, 1478 test byte ptr [FX_WideScrollerSpeedState], 1 479 479 jnz FXCWS_SpeedUp 480 480 FXCWS_SpeedDown: … … 493 493 FXCWS_WideScrollNOW: 494 494 xor ch, ch 495 test FX_WideScrollerDirection, 1495 test byte ptr [FX_WideScrollerDirection], 1 496 496 jnz FXCWS_ScrollRIGHT 497 497 sub bx, cx … … 508 508 mov bx, 640 ; 1280 509 509 FXCWS_NotToBig: 510 mov FX_WideScrollerCurPos, bx511 mov FX_WideScrollerSpeed, cl510 mov [FX_WideScrollerCurPos], bx 511 mov [FX_WideScrollerSpeed], cl 512 512 mov ax, 160 513 513 call FX_SetWideLength -
trunk/BOOTCODE/SPECIAL/LVM.ASM
r40 r46 85 85 LVM_GetSectorCRC EndP 86 86 87 ; Checks DS:[SI], if a valid LVM Signature is found (sets carry in that case)87 ; Checks ds:[SI], if a valid LVM Signature is found (sets carry in that case) 88 88 ; This does not check for valid LVM CRC (which also needs to be done) 89 89 ; In: DS:SI - Sector that needs to get checked... … … 91 91 ; Destroyed: None 92 92 LVM_CheckSectorSignature Proc Near 93 test [CFG_IgnoreLVM], 1 ; We are supposed to ignore LVM, so93 test byte ptr [CFG_IgnoreLVM], 1 ; We are supposed to ignore LVM, so 94 94 jnz LVMCSS_InvalidSignature ; any sector is bad! 95 cmp w ptr [si+LocLVM_SignatureStart], 5202h ; Rousseau: identify LVM sector95 cmp word ptr [si+LocLVM_SignatureStart], 5202h ; Rousseau: identify LVM sector 96 96 jne LVMCSS_InvalidSignature 97 cmp w ptr [si+LocLVM_SignatureStart+2], 'BM'97 cmp word ptr [si+LocLVM_SignatureStart+2], 'BM' 98 98 jne LVMCSS_InvalidSignature 99 cmp w ptr [si+LocLVM_SignatureStart+4], 'MP'99 cmp word ptr [si+LocLVM_SignatureStart+4], 'MP' 100 100 jne LVMCSS_InvalidSignature 101 cmp w ptr [si+LocLVM_SignatureStart+6], 'DF'101 cmp word ptr [si+LocLVM_SignatureStart+6], 'DF' 102 102 jne LVMCSS_InvalidSignature 103 103 stc … … 115 115 LVM_CheckSectorCRC Proc Near Uses ax dx 116 116 call LVM_GetSectorCRC 117 cmp ax, w ptr [si+LocLVM_CRC]117 cmp ax, word ptr [si+LocLVM_CRC] 118 118 jne LVMCSCRC_BadCRC 119 cmp dx, w ptr [si+LocLVM_CRC+2]119 cmp dx, word ptr [si+LocLVM_CRC+2] 120 120 jne LVMCSCRC_BadCRC 121 121 stc … … 133 133 LVM_UpdateSectorCRC Proc Near Uses ax dx 134 134 call LVM_GetSectorCRC 135 mov w ptr [si+LocLVM_CRC], ax136 mov w ptr [si+LocLVM_CRC+2], dx135 mov word ptr [si+LocLVM_CRC], ax 136 mov word ptr [si+LocLVM_CRC+2], dx 137 137 ret 138 138 LVM_UpdateSectorCRC EndP -
trunk/BOOTCODE/SPECIAL/SOUND.ASM
r30 r46 27 27 28 28 SOUND_PreBootMenu Proc Near Uses ax 29 test CFG_MakeSound, 129 test byte ptr [CFG_MakeSound], 1 30 30 jz SOUND_PreBootMenu_SkipSound 31 test StartSoundPlayed, 131 test byte ptr [StartSoundPlayed], 1 32 32 jnz SOUND_PreBootMenu_SkipSound 33 33 mov ax, 1500 … … 39 39 mov ax, 200 40 40 call SOUND_WaitToSilence 41 mov StartSoundPlayed, 141 mov byte ptr [StartSoundPlayed], 1 42 42 SOUND_PreBootMenu_SkipSound: 43 43 ret … … 45 45 46 46 SOUND_ExecuteBoot Proc Near Uses ax 47 test CFG_MakeSound, 147 test byte ptr [CFG_MakeSound], 1 48 48 jz SOUND_ExecuteBoot_SkipSound 49 49 mov ax, 2000
Note:
See TracChangeset
for help on using the changeset viewer.
