Browse Source
Merge pull request #621 from b3rendsh/master
Update loader for MSX
pull/626/head
Wayne Warthen
4 months ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with
24 additions and
6 deletions
-
Doc/ChangeLog.txt
-
Source/HBIOS/cfg_MASTER.asm
-
Source/HBIOS/cfg_MSX.asm
-
Source/HBIOS/ide.asm
-
Source/MSX/msx-ldr.asm
|
|
|
@ -31,6 +31,7 @@ Version 3.6 |
|
|
|
- M?R: Update Timer app with "zero" option |
|
|
|
- HJB: Update PPIDE driver, add support for MSX BEER IDE interface |
|
|
|
- HJB: Added loader for MSX |
|
|
|
- HJB: Added IDE driver master media detect option |
|
|
|
|
|
|
|
Version 3.5.1 |
|
|
|
------------- |
|
|
|
|
|
|
|
@ -338,6 +338,7 @@ RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER |
|
|
|
RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4) |
|
|
|
; |
|
|
|
IDEENABLE .EQU FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) |
|
|
|
IDEDETECTMEDIA .EQU FALSE ; IDE: PROBE FOR MEDIA IN MASTER UNIT, IF NOT DETECTED THEN DON'T ENABLE DRIVER |
|
|
|
IDETRACE .EQU 1 ; IDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) |
|
|
|
IDECNT .EQU 1 ; IDE: NUMBER OF IDE INTERFACES TO DETECT (1-3), 2 DRIVES EACH |
|
|
|
IDE0MODE .EQU IDEMODE_NONE ; IDE 0: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC|GIDE] |
|
|
|
|
|
|
|
@ -282,6 +282,7 @@ FD1TYPE .SET FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8] |
|
|
|
RFENABLE .SET FALSE ; RF: ENABLE RAM FLOPPY DRIVER |
|
|
|
; |
|
|
|
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) |
|
|
|
IDEDETECTMEDIA .SET TRUE ; IDE: PROBE FOR MEDIA IN MASTER UNIT, IF NOT DETECTED THEN DON'T ENABLE DRIVER |
|
|
|
IDETRACE .SET 1 ; IDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) |
|
|
|
IDECNT .SET 1 ; IDE: NUMBER OF IDE INTERFACES TO DETECT (1-3), 2 DRIVES EACH |
|
|
|
IDE0MODE .SET IDEMODE_RC ; IDE 0: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC|GIDE] |
|
|
|
|
|
|
|
@ -610,8 +610,15 @@ IDE_DETECT: |
|
|
|
;#IF (IDEMODE == IDEMODE_DIO) |
|
|
|
;#ENDIF |
|
|
|
; |
|
|
|
#IF (IDEDETECTMEDIA) |
|
|
|
; PROBE FOR MEDIA IN MASTER UNIT, IF NOT DETECTED THEN DON'T ENABLE DRIVER |
|
|
|
LD A,IDE_DRVMASTER |
|
|
|
LD (IDE_DRVHD),A |
|
|
|
JP IDE_PROBE |
|
|
|
#ELSE |
|
|
|
XOR A ; SIGNAL SUCCESS |
|
|
|
RET ; AND RETURN |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
;============================================================================= |
|
|
|
; DRIVER FUNCTION TABLE |
|
|
|
|
|
|
|
@ -10,9 +10,12 @@ |
|
|
|
|
|
|
|
ROMWBW_SEG .equ 4 ; RomWBW boot segment |
|
|
|
|
|
|
|
RDSLT .equ $000c ; read value of address in other slot |
|
|
|
CALSLT .equ $001c ; inter-slot call routine |
|
|
|
CHGCPU .equ $0180 ; changes CPU mode |
|
|
|
P2_SEG .equ $f2c9 ; current segment page 2 (MSX-DOS 2) |
|
|
|
CSRSW .equ $fca9 ; cursor on/off flag |
|
|
|
MNROM .equ $fcc1 ; main system rom slot |
|
|
|
H_TIMI .equ $fd9f ; timer interrupt hook (vdp vsync) |
|
|
|
|
|
|
|
; ------------------------------------------------------------------------------ |
|
|
|
@ -117,13 +120,18 @@ mtcount: call H_TIMI ; H.TIMI handler saves register AF |
|
|
|
dec a |
|
|
|
jr nz,mtcount |
|
|
|
|
|
|
|
; set CPU to Z80 mode |
|
|
|
ld a,(CHGCPU) |
|
|
|
cp $c3 |
|
|
|
ld a,$80 ; set Z80 mode + switch Turbo LED indicator |
|
|
|
call z,CHGCPU |
|
|
|
; set CPU to Z80 mode / turbo off |
|
|
|
ld hl,CHGCPU |
|
|
|
ld a,(MNROM) |
|
|
|
call RDSLT ; routine to change CPU mode exists in BIOS? |
|
|
|
cp $c3 ; z=yes |
|
|
|
ld a,$80 ; Z80 mode + switch Turbo LED indicator |
|
|
|
ld ix,CHGCPU ; change CPU routine |
|
|
|
ld iy,(MNROM-1) ; in main rom |
|
|
|
call z,CALSLT |
|
|
|
|
|
|
|
; select RomWBW bootloader bank and start RomWBW |
|
|
|
di |
|
|
|
ld a,ROMWBW_SEG |
|
|
|
out ($fc),a |
|
|
|
inc a |
|
|
|
|