Browse Source

Merge pull request #218 from b1ackmai1er/dev

show baud rate in updater + other minors
pull/220/head
Wayne Warthen 5 years ago
committed by GitHub
parent
commit
a5b9cd4630
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 16
      Source/Doc/GettingStarted.md
  2. 2
      Source/HBIOS/duart.asm
  3. 125
      Source/HBIOS/updater.asm
  4. 6
      Source/HBIOS/util.asm

16
Source/Doc/GettingStarted.md

@ -214,13 +214,15 @@ unable to save files to disk devices.
The following ROM applications are available at the boot loader prompt:
| Application | |
| ----------- | -------------------------------------------------------------- |
| Monitor | Z80 system debug monitor w/ Intel Hex loader |
| Forth | Brad Rodriguez's ANSI compatible Forth language |
| Basic | Nascom 8K BASIC language |
| Tasty BASIC | Dimitri Theuling's Tiny BASIC implementation |
| Play | A simple video game (requires ANSI terminal emulation) |
| Application | |
| ----------- | -------------------------------------------------------------- |
| Monitor | Z80 system debug monitor w/ Intel Hex loader |
| Forth | Brad Rodriguez's ANSI compatible Forth language |
| Basic | Nascom 8K BASIC language |
| Tasty BASIC | Dimitri Theuling's Tiny BASIC implementation |
| Play | A simple video game (requires ANSI terminal emulation) |
| Network Boot | Boot through Wiznet MT011 device |
| Flash Update | Upload and flash a new ROMWBW image using xmodem |
In general, the command to exit these applications and restart the
system is `BYE`. The exceptions are the Monitor which uses `B` and

2
Source/HBIOS/duart.asm

@ -72,7 +72,7 @@
;
DUART_DEBUG .EQU FALSE
;
DUART_NONE .EQU 0 ; UNKNOWN OR NOT PRESETN
DUART_NONE .EQU 0 ; UNKNOWN OR NOT PRESENT
DUART_2681 .EQU 1 ; OLD '681 WITHOUT IVR/GPR
DUART_26C92 .EQU 2 ; '92 WITH MR0
DUART_XR88C681 .EQU 3 ; EXAR/MAXLINEAR CHIP WITH Z-MODE

125
Source/HBIOS/updater.asm

@ -214,7 +214,7 @@ MENULP: LD DE,$0000 ; ENSURE WE ARE STARTING
CP 'V' ; CHECK FOR
JP Z,OPTIONV ; VERIFY TOGGLE
;
CP 'X' ; CHECK FOR
CP 'Q' ; CHECK FOR
JP Z,FAILUX ; USER EXIT
;
CP 'R' ; CHECK FOR
@ -235,10 +235,10 @@ MENULP: LD DE,$0000 ; ENSURE WE ARE STARTING
CP '2' ; CALCULATE
JP Z,OPTION2 ; CRC 1024K FLASH
;
#IF (XFUDBG)
CP '3' ; CALCULATE
JP Z,OPTION3 ; CRC FLASH #2
;
#IF (XFUDBG)
CP 'T' ; TEST TIMEOUT
JP Z,OPTIONT ; LOOP
;
@ -572,20 +572,38 @@ PRTSTR0:LD A,(HL) ; PRINT MESSAGE POINTED TOP HL UNTIL 0
INC HL
JP PRTSTR0
;
PRTSTRD:LD A,(HL) ; PRINT MESSAGE POINTED TOP HL UNTIL $
CP '$' ; CHECK IF GOT IT?
RET Z ; IF MATCH RETURN TO CALLER
LD C,A
CALL CONOUT ; ELSE PRINT THE CHARACTER
INC HL
JP PRTSTRD
;
MENU: CALL COUTON
LD HL,msgConsole ; DISPLAY
CALL PRTSTR0 ; CONSOLE
LD A,(CONDEV) ; DEVICE
PUSH AF
ADD A,'0'
LD C,A
CALL CONOUT
LD C,' '
CALL CONOUT
POP AF
CALL DISPBAUD
;
LD HL,msgIODevice ; DISPLAY
CALL PRTSTR0 ; SERIAL
LD A,(SERDEV) ; DEVICE
PUSH AF
ADD A,'0'
LD C,A
CALL CONOUT
LD C,' '
CALL CONOUT
POP AF
CALL DISPBAUD
;
LD HL,msgWriteV ; DISPLAY
CALL PRTSTR0 ; VERIFY
@ -600,6 +618,36 @@ MENU1: CALL PRTSTR0
CALL PRTSTR0 ; MENU OPTIONS
RET
;
DISPBAUD:
PUSH AF
LD C,A
LD B,$06 ; GET
RST 08 ; DEVICE
LD A,C ; TYPE
POP BC
OR A ; EXIT IF
RET NZ ; NOT SERIAL
;
LD C,B ; GET
LD B,$05 ; DEVICE
RST 08 ; INFO
LD A,D
;
; CALL PRTHEXB
BIT 4,A ; CONVERT ; IF X > 15 X=(X-15)*2
JR Z,UNDER15 ; DEVICE ; ELSE X=(X*2)-1
AND %00001111 ; BAUD
INC A ; CODE TO
ADD A,A ; TABLE
JR WASOVER ; INDEX
UNDER15:AND %00001111
ADD A,A
DEC A
WASOVER:;CALL PRTHEXB
LD DE,BAUDTBL ; DISPLAY
CALL PRTIDXDEA ; BAUD RATE
RET
;
OPTIOND:CALL COUTON ; TURN ON OUTPUT
;
LD HL,msgConfirm ; CONFIRM
@ -1028,10 +1076,39 @@ CLEAR: DEC B
JP NZ,BYTELP
LD (CRC),DE
LD (CRC+2),HL
;
RET
;
;======================================================================
; PRINT THE nTH STRING IN A LIST OF STRINGS WHERE EACH IS TERMINATED BY $
; A REGISTER DEFINES THE nTH STRING IN THE LIST TO PRINT AND DE POINTS
; TO THE START OF THE STRING LIST.
;======================================================================
;
PRTIDXDEA:
PUSH BC
LD C,A ; INDEX COUNT
OR A
LD A,0
; LD (PRTIDXCNT),A ; RESET CHARACTER COUNT
PRTIDXDEA1:
JR Z,PRTIDXDEA3
PRTIDXDEA2:
LD A,(DE) ; LOOP UNIT
INC DE ; WE REACH
CP '$' ; END OF STRING
JR NZ,PRTIDXDEA2
DEC C ; AT STRING END. SO GO
JR PRTIDXDEA1 ; CHECK FOR INDEX MATCH
PRTIDXDEA3:
POP BC
EX DE,HL
CALL PRTSTRD ; FALL THROUGH TO WRITESTR
; RET
;
#INCLUDE "decode.asm"
;
;======================================================================
; CALCULATE BANK AND ADDRESS DATA FROM MEMORY ADDRESS
;
; ON ENTRY DE:HL CONTAINS 32 BIT MEMORY ADDRESS.
@ -1151,17 +1228,18 @@ msgIODevice: .DB CR,LF,"(S) Set Serial Device : ",0
msgWriteV: .DB CR,LF,"(V) Toggle Write Verify : ",0
msgBegin: .DB CR,LF,"(R) Reboot"
.DB CR,LF,"(U) Begin Update"
.DB CR,LF,"(X) Exit to Rom Loader"
.DB CR,LF,"(Q) Quit to Rom Loader"
.DB CR,LF,"(D) Duplicate Flash #1 to #2"
.DB CR,LF,"(1) CRC 512K Flash"
.DB CR,LF,"(2) CRC 1024K Flash"
.DB CR,LF,"(3) CRC Flash chip #2"
#IF (XFUDBG)
.DB CR,LF,"(H) Select half speed"
.DB CR,LF,"(T) Test timeout"
.DB CR,LF,"(F) Dump Debug Data"
.DB CR,LF,"(E) Erase Flash chip #1"
.DB CR,LF,"(Z) Erase Flash chip #2"
.DB CR,LF,"(3) CRC Flash chip #2"
#ENDIF
.DB CR,LF,CR,LF,"Select : ",0
msgSuccess: .DB CR,LF,CR,LF,"COMPLETED WITHOUT ERRORS ",CR,LF,0
@ -1210,6 +1288,43 @@ DEVICES:
.DW $3786 ; A29040B 7
LSTDEV: .EQU $
;
;======================================================================
; BOARD RATE TABLE
;======================================================================
;
BAUDTBL:.DB "75$" ; 0 0
.DB "150$" ; 1 1
.DB "225$" ; 2 16
.DB "300$" ; 3 2
.DB "450$" ; 4 17
.DB "600$" ; 5 3
.DB "900$" ; 6 18
.DB "1200$" ; 7 4
.DB "1800$" ; 8 19
.DB "2400$" ; 9 5
.DB "3600$" ; 10 20
.DB "4800$" ; 11 6
.DB "7200$" ; 12 21
.DB "9600$" ; 13 7
.DB "14400$" ; 14 22
.DB "19200$" ; 15 8
.DB "28800$" ; 16 23
.DB "38400$" ; 17 9
.DB "57600$" ; 18 24
.DB "76800$" ; 19 10
.DB "115200$" ; 20 25
.DB "153600$" ; 21 11
.DB "230400$" ; 22 26
.DB "307200$" ; 23 12
.DB "460800$" ; 24 27
.DB "614400$" ; 25 13
.DB "921600$" ; 26 28
.DB "1228800$" ; 27 14
.DB "1843200$" ; 28 29
.DB "2457600$" ; 29 15
.DB "3686400$" ; 30 30
.DB "7372800$" ; 31 16
;
sector4k: .EQU $ ; 32 PACKETS GET ACCUMULATED HERE BEFORE FLASHING
;
SLACK .EQU (UPD_END - $)

6
Source/HBIOS/util.asm

@ -359,9 +359,6 @@ PRTIDXDEA3:
; CALL WRITESTR ; FALL THROUGH TO WRITESTR
; RET
;
PRTIDXCNT:
.DB 0 ; CHARACTER COUNT
;
; OUTPUT A '$' TERMINATED STRING AT DE
;
WRITESTR:
@ -380,6 +377,9 @@ WRITESTR2:
POP AF
RET
;
PRTIDXCNT:
.DB 0 ; CHARACTER COUNT
;
;
;
TSTPT:

Loading…
Cancel
Save