Browse Source

Merge pull request #425 from dinoboards/dean-ez80-4

ez80: fix for FPLEDS to ensure 16 bit I/O
master
Wayne Warthen 1 year ago
committed by GitHub
parent
commit
bba9c5e26b
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      Source/HBIOS/ez80instr.inc
  2. 6
      Source/HBIOS/ez80rtc.asm
  3. 6
      Source/HBIOS/ez80systmr.asm
  4. 24
      Source/HBIOS/ez80uart.asm
  5. 1
      Source/HBIOS/hbios.asm

2
Source/HBIOS/ez80instr.inc

@ -102,7 +102,7 @@
#DEFINE LDBCMM.LIL(Mmn) \ #DEFINE LDBCMM.LIL(Mmn) \
#defcont \ .DB $5B #defcont \ .DB $5B
#defcont \ LD BC, Mmn
#defcont \ LD BC, Mmn & $FFFF
#defcont \ .DB (Mmn >> 16) & $FF #defcont \ .DB (Mmn >> 16) & $FF
#DEFINE SBCHLBC.LIL \ #DEFINE SBCHLBC.LIL \

6
Source/HBIOS/ez80rtc.asm

@ -18,13 +18,15 @@ EZ80RTC_INIT:
RET NZ ; IF ALREADY ACTIVE, ABORT RET NZ ; IF ALREADY ACTIVE, ABORT
CALL NEWLINE ; FORMATTING CALL NEWLINE ; FORMATTING
PRTS("EZ80 RTC: POWERED $")
CALL PRTSTRD
.TEXT "EZ80 RTC: POWERED $"
EZ80_RTC_INIT() EZ80_RTC_INIT()
JR Z, RTC_POWERED JR Z, RTC_POWERED
PUSH AF PUSH AF
PRTS("NOT POWERED$")
CALL PRTSTRD
.TEXT "NOT POWERED$"
POP AF POP AF
RET RET

6
Source/HBIOS/ez80systmr.asm

@ -14,7 +14,8 @@
#IF (EZ80TIMER == EZ80TMR_INT) #IF (EZ80TIMER == EZ80TMR_INT)
EZ80_TMR_INIT: EZ80_TMR_INIT:
CALL NEWLINE ; FORMATTING CALL NEWLINE ; FORMATTING
PRTS("EZ80 TIMER: INTERRUPTS ENABLED$")
CALL PRTSTRD
.TEXT "EZ80 TIMER: INTERRUPTS ENABLED$"
LD HL,EZ80_TMR_INT ; GET INT VECTOR LD HL,EZ80_TMR_INT ; GET INT VECTOR
CALL HB_ADDIM1 ; ADD TO IM1 CALL LIST CALL HB_ADDIM1 ; ADD TO IM1 CALL LIST
@ -34,7 +35,8 @@ EZ80_TMR_INT:
EZ80_TMR_INIT: EZ80_TMR_INIT:
CALL NEWLINE ; FORMATTING CALL NEWLINE ; FORMATTING
PRTS("EZ80 TIMER: FIRMWARE$")
CALL PRTSTRD
.TEXT "EZ80 TIMER: FIRMWARE$"
RET RET
; ----------------------------------------------- ; -----------------------------------------------
; Implementation of HBIOS SYS TIMER functions to ; Implementation of HBIOS SYS TIMER functions to

24
Source/HBIOS/ez80uart.asm

@ -45,7 +45,8 @@ EZUART_PREINIT:
EZUART_INIT: EZUART_INIT:
CALL NEWLINE ; FORMATTING CALL NEWLINE ; FORMATTING
PRTS("EZ80 UART: UART0$")
CALL PRTSTRD
.TEXT "EZ80 UART: UART0$"
XOR A XOR A
RET RET
@ -224,18 +225,15 @@ EZUART_QUERY:
TRANSLATE(96000-67200, 01010b) ; BAUDRATE=76800 (BETWEEN 67201 AND 96000) TRANSLATE(96000-67200, 01010b) ; BAUDRATE=76800 (BETWEEN 67201 AND 96000)
TRANSLATE(134400-96000, 11001b) ; BAUDRATE=115200 (BETWEEN 96001 AND 134400) TRANSLATE(134400-96000, 11001b) ; BAUDRATE=115200 (BETWEEN 96001 AND 134400)
TRANSLATE(192000-134400, 01011b) ; BAUDRATE=153600 (BETWEEN 134401 AND 192000) TRANSLATE(192000-134400, 01011b) ; BAUDRATE=153600 (BETWEEN 134401 AND 192000)
;;;
;;; The following are causing "Unused data in MS byte of argument." errors
;;;
;;; TRANSLATE(268800-192000, 11010b) ; BAUDRATE=230400 (BETWEEN 192001 AND 268800)
;;; TRANSLATE(384000-268800, 01100b) ; BAUDRATE=307200 (BETWEEN 268801 AND 384000)
;;; TRANSLATE(537600-384000, 11011b) ; BAUDRATE=460800 (BETWEEN 384001 AND 537600)
;;; TRANSLATE(768000-537600, 01101b) ; BAUDRATE=614400 (BETWEEN 537601 AND 768000)
;;; TRANSLATE(1075200-768000, 11100b) ; BAUDRATE=921600 (BETWEEN 768001 AND 1075200)
;;; TRANSLATE(1536000-1075200, 01110b) ; BAUDRATE=1228800 (BETWEEN 1075201 AND 1536000)
;;; TRANSLATE(2150400-1536000, 11101b) ; BAUDRATE=1843200 (BETWEEN 1536001 AND 2150400)
;;; TRANSLATE(3072000-2150400, 01111b) ; BAUDRATE=2457600 (BETWEEN 2150401 AND 3072000)
;;; TRANSLATE(5529600-3072000, 11110b) ; BAUDRATE=3686400 (BETWEEN 3072001 AND 5529600)
TRANSLATE(268800-192000, 11010b) ; BAUDRATE=230400 (BETWEEN 192001 AND 268800)
TRANSLATE(384000-268800, 01100b) ; BAUDRATE=307200 (BETWEEN 268801 AND 384000)
TRANSLATE(537600-384000, 11011b) ; BAUDRATE=460800 (BETWEEN 384001 AND 537600)
TRANSLATE(768000-537600, 01101b) ; BAUDRATE=614400 (BETWEEN 537601 AND 768000)
TRANSLATE(1075200-768000, 11100b) ; BAUDRATE=921600 (BETWEEN 768001 AND 1075200)
TRANSLATE(1536000-1075200, 01110b) ; BAUDRATE=1228800 (BETWEEN 1075201 AND 1536000)
TRANSLATE(2150400-1536000, 11101b) ; BAUDRATE=1843200 (BETWEEN 1536001 AND 2150400)
TRANSLATE(3072000-2150400, 01111b) ; BAUDRATE=2457600 (BETWEEN 2150401 AND 3072000)
TRANSLATE(5529600-3072000, 11110b) ; BAUDRATE=3686400 (BETWEEN 3072001 AND 5529600)
LD D, 11111b ; BAUDRATE=7372800 (>=5529601) LD D, 11111b ; BAUDRATE=7372800 (>=5529601)
uart_query_end: uart_query_end:

1
Source/HBIOS/hbios.asm

@ -168,6 +168,7 @@ SUPCTS .EQU FALSE ; SUPPRESS CTS DURING HBIOS BOOT
#IF (FPLED_INV) #IF (FPLED_INV)
#DEFCONT \ XOR $FF ; INVERT BITS IF NEEDED #DEFCONT \ XOR $FF ; INVERT BITS IF NEEDED
#ENDIF #ENDIF
#DEFCONT \ EZ80_IO
#DEFCONT \ OUT (FPLED_IO),A #DEFCONT \ OUT (FPLED_IO),A
#DEFCONT \ POP AF #DEFCONT \ POP AF
#ELSE #ELSE

Loading…
Cancel
Save