forked from amberisvibin/chibi-pc09
50 lines
1.2 KiB
ArmAsm
50 lines
1.2 KiB
ArmAsm
; CHIBI PC-09 Prototype #1 Boot ROM -- Reset Handler
|
|
; Copyright (c) 2024-2025 Amber Zeller, Gale Faraday
|
|
; Licensed under MIT
|
|
|
|
INCLUDE "hardware.inc"
|
|
INCLUDE "serial.inc"
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;
|
|
;; Hardware Initialization Routines
|
|
;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
SECTION RESET
|
|
|
|
EXPORT RESET
|
|
|
|
RESET
|
|
|
|
CLRSTACK
|
|
; Initialize the system stack
|
|
lda #$00 ; Initialize A & X to zero out the stack
|
|
ldx #$0000
|
|
NEXT@
|
|
sta STACK_BOTTOM,x ; Write a zero and progress to the next byte
|
|
leax 1,x
|
|
cmpx #STACK_DEPTH ; See if we're at the top of the stack yet
|
|
blo NEXT@ ; Loop if we aren't at the end yet
|
|
lds #STACK_TOP ; Set S to top of newly cleared stack
|
|
|
|
SERINIT
|
|
; 8n1 Serial Enable DLAB
|
|
lda #UARTF_LCR_WLS|UARTF_LCR_DLAB
|
|
sta UART_LCR
|
|
; REVIEW: Potential endianness hiccough here
|
|
ldd #$0C00 ; Set divisor to 12 (9600 baud)
|
|
sta UART_DLM
|
|
stb UART_DLL
|
|
lda #(UARTF_LCR_WLS) ; 8n1 serial, disable DLAB
|
|
sta UART_LCR
|
|
lda #(UARTF_MCR_RTS) ; Enable Request-to-Send
|
|
sta UART_MCR
|
|
lda #'H ; send 'H'
|
|
sta UART_BUFR
|
|
|
|
WAIT
|
|
sync ; Wait for interrupts
|
|
nop
|
|
bra WAIT
|