; 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