Browse Source

Merge pull request #621 from b3rendsh/master

Update loader for MSX
pull/626/head
Wayne Warthen 4 months ago
committed by GitHub
parent
commit
1195a82ab9
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 1
      Doc/ChangeLog.txt
  2. 1
      Source/HBIOS/cfg_MASTER.asm
  3. 1
      Source/HBIOS/cfg_MSX.asm
  4. 7
      Source/HBIOS/ide.asm
  5. 20
      Source/MSX/msx-ldr.asm

1
Doc/ChangeLog.txt

@ -31,6 +31,7 @@ Version 3.6
- M?R: Update Timer app with "zero" option - M?R: Update Timer app with "zero" option
- HJB: Update PPIDE driver, add support for MSX BEER IDE interface - HJB: Update PPIDE driver, add support for MSX BEER IDE interface
- HJB: Added loader for MSX - HJB: Added loader for MSX
- HJB: Added IDE driver master media detect option
Version 3.5.1 Version 3.5.1
------------- -------------

1
Source/HBIOS/cfg_MASTER.asm

@ -338,6 +338,7 @@ RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4) RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4)
; ;
IDEENABLE .EQU FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) 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) 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 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] IDE0MODE .EQU IDEMODE_NONE ; IDE 0: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC|GIDE]

1
Source/HBIOS/cfg_MSX.asm

@ -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 RFENABLE .SET FALSE ; RF: ENABLE RAM FLOPPY DRIVER
; ;
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) 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) 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 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] IDE0MODE .SET IDEMODE_RC ; IDE 0: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC|GIDE]

7
Source/HBIOS/ide.asm

@ -610,8 +610,15 @@ IDE_DETECT:
;#IF (IDEMODE == IDEMODE_DIO) ;#IF (IDEMODE == IDEMODE_DIO)
;#ENDIF ;#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 XOR A ; SIGNAL SUCCESS
RET ; AND RETURN RET ; AND RETURN
#ENDIF
; ;
;============================================================================= ;=============================================================================
; DRIVER FUNCTION TABLE ; DRIVER FUNCTION TABLE

20
Source/MSX/msx-ldr.asm

@ -10,9 +10,12 @@
ROMWBW_SEG .equ 4 ; RomWBW boot segment 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 CHGCPU .equ $0180 ; changes CPU mode
P2_SEG .equ $f2c9 ; current segment page 2 (MSX-DOS 2)
P2_SEG .equ $f2c9 ; current segment page 2 (MSX-DOS 2)
CSRSW .equ $fca9 ; cursor on/off flag CSRSW .equ $fca9 ; cursor on/off flag
MNROM .equ $fcc1 ; main system rom slot
H_TIMI .equ $fd9f ; timer interrupt hook (vdp vsync) 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 dec a
jr nz,mtcount 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 ; select RomWBW bootloader bank and start RomWBW
di
ld a,ROMWBW_SEG ld a,ROMWBW_SEG
out ($fc),a out ($fc),a
inc a inc a

Loading…
Cancel
Save