Browse Source

Misc Cleanup

pull/80/head
Wayne Warthen 6 years ago
parent
commit
04f374a4da
  1. 2
      Doc/ChangeLog.txt
  2. 6
      Source/Apps/Timer.asm
  3. 1
      Source/HBIOS/cfg_ezz80.asm
  4. 1
      Source/HBIOS/cfg_mk4.asm
  5. 1
      Source/HBIOS/cfg_n8.asm
  6. 1
      Source/HBIOS/cfg_rcz180.asm
  7. 1
      Source/HBIOS/cfg_rcz80.asm
  8. 1
      Source/HBIOS/cfg_sbc.asm
  9. 1
      Source/HBIOS/cfg_scz180.asm
  10. 1
      Source/HBIOS/cfg_zeta.asm
  11. 1
      Source/HBIOS/cfg_zeta2.asm
  12. 17
      Source/HBIOS/dbgmon.asm
  13. 22
      Source/HBIOS/hbios.asm
  14. 4
      Source/HBIOS/std.asm

2
Doc/ChangeLog.txt

@ -28,7 +28,7 @@ Version 2.9.2
- WBW: Updated FAT to add MD and FORMAT commands - WBW: Updated FAT to add MD and FORMAT commands
- WBW: Add CP/M 3 (experimental) - WBW: Add CP/M 3 (experimental)
- M?T: Support Shift register SPI WIZNET for RC2014 - M?T: Support Shift register SPI WIZNET for RC2014
- WBW: Added seconds register in HBIOS
- P?S: Added seconds register in HBIOS
Version 2.9.1 Version 2.9.1
------------- -------------

6
Source/Apps/Timer.asm

@ -139,6 +139,10 @@ process1a:
ld c,bf_sysgetsecs ; SECONDS subfunction ld c,bf_sysgetsecs ; SECONDS subfunction
rst 08 ; call HBIOS, DE:HL := seconds value rst 08 ; call HBIOS, DE:HL := seconds value
call prthex32 ; display it call prthex32 ; display it
ld a,'.' ; fraction separator
call prtchr ; print it
ld a,c ; get fractional component
call prthex ; print it
ld de,strsec ; tag ld de,strsec ; tag
call prtstr ; display it call prtstr ; display it
; ;
@ -476,7 +480,7 @@ stack .equ $ ; stack top
; ;
; Messages ; Messages
; ;
msgban .db "TIMER v1.1, 8-Nov-2019",13,10
msgban .db "TIMER v1.1, 10-Nov-2019",13,10
.db "Copyright (C) 2019, Wayne Warthen, GNU GPL v3",0 .db "Copyright (C) 2019, Wayne Warthen, GNU GPL v3",0
msguse .db "Usage: TIMER [/C] [/?]",13,10 msguse .db "Usage: TIMER [/C] [/?]",13,10
.db " ex. TIMER (display current timer value)",13,10 .db " ex. TIMER (display current timer value)",13,10

1
Source/HBIOS/cfg_ezz80.asm

@ -23,6 +23,7 @@ BOOT_TIMEOUT .EQU 20 ; AUTO BOOT TIMEOUT IN SECONDS, 0 FOR IMMEDIATE BOOT
BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT
; ;
CPUOSC .EQU 10000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 10000000 ; CPU OSC FREQ IN MHZ
TICKSPERSEC .EQU 50 ; TICKS PER SECOND
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2 INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;

1
Source/HBIOS/cfg_mk4.asm

@ -23,6 +23,7 @@ BOOT_TIMEOUT .EQU 20 ; AUTO BOOT TIMEOUT IN SECONDS, 0 FOR IMMEDIATE BOOT
BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT
; ;
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
TICKSPERSEC .EQU 50 ; TICKS PER SECOND
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2 INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;

1
Source/HBIOS/cfg_n8.asm

@ -23,6 +23,7 @@ BOOT_TIMEOUT .EQU 20 ; AUTO BOOT TIMEOUT IN SECONDS, 0 FOR IMMEDIATE BOOT
BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT
; ;
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
TICKSPERSEC .EQU 50 ; TICKS PER SECOND
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2 INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;

1
Source/HBIOS/cfg_rcz180.asm

@ -23,6 +23,7 @@ BOOT_TIMEOUT .EQU 20 ; AUTO BOOT TIMEOUT IN SECONDS, 0 FOR IMMEDIATE BOOT
BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT
; ;
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
TICKSPERSEC .EQU 50 ; TICKS PER SECOND
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2 INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;

1
Source/HBIOS/cfg_rcz80.asm

@ -23,6 +23,7 @@ BOOT_TIMEOUT .EQU 20 ; AUTO BOOT TIMEOUT IN SECONDS, 0 FOR IMMEDIATE BOOT
BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT
; ;
CPUOSC .EQU 7372800 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 7372800 ; CPU OSC FREQ IN MHZ
TICKSPERSEC .EQU 50 ; TICKS PER SECOND
INTMODE .EQU 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2 INTMODE .EQU 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;

1
Source/HBIOS/cfg_sbc.asm

@ -23,6 +23,7 @@ BOOT_TIMEOUT .EQU 20 ; AUTO BOOT TIMEOUT IN SECONDS, 0 FOR IMMEDIATE BOOT
BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT
; ;
CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ
TICKSPERSEC .EQU 50 ; TICKS PER SECOND
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2 INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;

1
Source/HBIOS/cfg_scz180.asm

@ -23,6 +23,7 @@ BOOT_TIMEOUT .EQU 20 ; AUTO BOOT TIMEOUT IN SECONDS, 0 FOR IMMEDIATE BOOT
BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT
; ;
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
TICKSPERSEC .EQU 50 ; TICKS PER SECOND
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2 INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;

1
Source/HBIOS/cfg_zeta.asm

@ -23,6 +23,7 @@ BOOT_TIMEOUT .EQU 20 ; AUTO BOOT TIMEOUT IN SECONDS, 0 FOR IMMEDIATE BOOT
BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT
; ;
CPUOSC .EQU 20000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 20000000 ; CPU OSC FREQ IN MHZ
TICKSPERSEC .EQU 50 ; TICKS PER SECOND
INTMODE .EQU 0 ; INTERRUPT MODE: 0=NONE, 1=MODE 1, 2=MODE 2 INTMODE .EQU 0 ; INTERRUPT MODE: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;

1
Source/HBIOS/cfg_zeta2.asm

@ -23,6 +23,7 @@ BOOT_TIMEOUT .EQU 20 ; AUTO BOOT TIMEOUT IN SECONDS, 0 FOR IMMEDIATE BOOT
BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT BOOT_DEFAULT .EQU 'Z' ; AUTO BOOT SELECTION TO INVOKE AT TIMEOUT
; ;
CPUOSC .EQU 20000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 20000000 ; CPU OSC FREQ IN MHZ
TICKSPERSEC .EQU 50 ; TICKS PER SECOND
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2 INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;

17
Source/HBIOS/dbgmon.asm

@ -42,6 +42,7 @@ BUFLEN .EQU 40 ; INPUT LINE LENGTH
UART_ENTRY: UART_ENTRY:
LD SP,MON_STACK ; SET THE STACK POINTER LD SP,MON_STACK ; SET THE STACK POINTER
EI ; INTS OK NOW EI ; INTS OK NOW
LD HL,UART_ENTRY ; RESTART ADDRESS
CALL INITIALIZE ; INITIALIZE SYSTEM CALL INITIALIZE ; INITIALIZE SYSTEM
LD HL,TXT_READY ; POINT AT TEXT LD HL,TXT_READY ; POINT AT TEXT
@ -108,9 +109,14 @@ SERIALCMDLOOP:
;__INITIALIZE_________________________________________________________________ ;__INITIALIZE_________________________________________________________________
; ;
; INITIALIZE SYSTEM ; INITIALIZE SYSTEM
; AT ENTRY, HL SHOULD HAVE ADDRESS OF DESIRED RESTART ADDRESS
;_____________________________________________________________________________ ;_____________________________________________________________________________
; ;
INITIALIZE: INITIALIZE:
LD A,$C3 ; JP OPCODE
LD (0),A ; STORE AT $0000
LD (1),HL ; STORE AT $0001
#IF (BIOS == BIOS_UNA) #IF (BIOS == BIOS_UNA)
; INSTALL UNA INVOCATION VECTOR FOR RST 08 ; INSTALL UNA INVOCATION VECTOR FOR RST 08
LD A,$C3 ; JP INSTRUCTION LD A,$C3 ; JP INSTRUCTION
@ -932,6 +938,7 @@ KY_PW .EQU KY_BK ; USE [BW] FOR [PW] (PORT WRITE)
DSKY_ENTRY: DSKY_ENTRY:
LD SP,MON_STACK ; SET THE STACK POINTER LD SP,MON_STACK ; SET THE STACK POINTER
EI ; INTS OK NOW EI ; INTS OK NOW
LD HL,DSKY_ENTRY ; RESTART ADDRESS
CALL INITIALIZE CALL INITIALIZE
; ;
;__FRONT_PANEL_STARTUP________________________________________________________ ;__FRONT_PANEL_STARTUP________________________________________________________
@ -1381,5 +1388,13 @@ MON_STACK .EQU $
.ECHO "DBGMON space remaining: " .ECHO "DBGMON space remaining: "
.ECHO SLACK .ECHO SLACK
.ECHO " bytes.\n" .ECHO " bytes.\n"
;
; DBGMON CURRENTLY OCCUPIES $F000-$FDFF BECAUSE THE
; HBIOS PROXY OCCUPIES $FE00-$FFFF. HOWEVER THE DBGMON
; IMAGE MUST OCCUPY A FULL $1000 BYTES IN THE ROM.
; BELOW WE JUST PAD OUT THE IMAGE BY $200 SO IT
; OCCUPIES THE FULL $1000 BYTES IN ROM.
;
.FILL $200,$00
;
.END .END

22
Source/HBIOS/hbios.asm

@ -2396,24 +2396,16 @@ SYS_GETTIMER:
; GET SECONDS ; GET SECONDS
; RETURNS: ; RETURNS:
; DE:HL: SECONDS VALUE (32 BIT) ; DE:HL: SECONDS VALUE (32 BIT)
; C TICKS OF TICKSPERSEC (8 BIT)
; C: NUM TICKS WITHIN CURRENT SECOND
; ;
SYS_GETSECS: SYS_GETSECS:
LD HL,HB_SECTCK
LD A,TICKSPERSEC
LD HL,HB_SECS
HB_DI HB_DI
SUB (HL)
INC HL ; NOW POINTING TO HB_SECS
LD C,(HL)
INC HL
LD B,(HL)
INC HL
LD E,(HL)
INC HL
LD D,(HL)
CALL LD32
LD A,(HB_SECTCK)
HB_EI HB_EI
LD L,C
LD H,B
NEG ; CONVERT DOWNCOUNTER TO UPCOUNTER
ADD A,TICKSPERSEC
LD C,A LD C,A
XOR A XOR A
RET RET
@ -2533,7 +2525,7 @@ SYS_SETTIMER:
; ;
; SET SECS ; SET SECS
; ON ENTRY: ; ON ENTRY:
; DE:HL: TIMER VALUE (32 BIT)
; DE:HL: SECONDS VALUE (32 BIT)
; ;
SYS_SETSECS: SYS_SETSECS:
LD BC,HB_SECS LD BC,HB_SECS

4
Source/HBIOS/std.asm

@ -371,8 +371,8 @@ CPM_ENT .EQU CBIOS_LOC ; CPM ENTRY POINT (IN CBIOS)
LDR_SIZ .EQU $0E00 LDR_SIZ .EQU $0E00
MON_LOC .EQU $C000 ; LOCATION OF MONITOR FOR RUNNING SYSTEM
MON_SIZ .EQU $1000 ; SIZE OF MONITOR BINARY IMAGE
MON_LOC .EQU $F000 ; LOCATION OF MONITOR FOR RUNNING SYSTEM
MON_SIZ .EQU $0E00 ; SIZE OF MONITOR BINARY IMAGE
MON_END .EQU MON_LOC + MON_SIZ ; END OF MONITOR MON_END .EQU MON_LOC + MON_SIZ ; END OF MONITOR
BAS_LOC .EQU $0200 ; NASCOM BASIC BAS_LOC .EQU $0200 ; NASCOM BASIC

Loading…
Cancel
Save