77 lines
2.0 KiB
ArmAsm
77 lines
2.0 KiB
ArmAsm
; CHIBI PC-09 Prototype #1 Boot ROM -- BIOS Utilities
|
|
; Copyright (c) 2024-2025 Amber Zeller, Gale Faraday
|
|
; Licensed under MIT
|
|
|
|
INCLUDE "hardware.inc"
|
|
INCLUDE "serial.inc"
|
|
INCLUDE "version.inc"
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;
|
|
;; Memory Testing Routines
|
|
;;
|
|
;; This family of BIOS routines does not return, upon completion the CHIBI must
|
|
;; be reset.
|
|
;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
SECTION MEMTEST
|
|
|
|
EXPORT ROBIT
|
|
|
|
; RAM testing routine. Ported to 6809 from 6800, based on source for ROBIT-2 for
|
|
; MIKBUG.
|
|
ROBIT
|
|
ldx #STACK_TOP+1 ; bottom of testable SRAM, $0200
|
|
AGAIN@ ; Store 1 in memory
|
|
lda #1 ; Set [X] to 1
|
|
sta 0,x
|
|
cmpa 0,x ; If failed print out an error indicator
|
|
bne ERR@
|
|
NEXT@ ; Loop point for next address
|
|
asla ; Shift A and [X] left
|
|
asl 0,x
|
|
cmpa 0,x ; Compare A and [X]
|
|
bne ERR@
|
|
cmpa #$80 ; Only test up to $80
|
|
bne NEXT@ ; Loop if not $80
|
|
cmpx #$60FF ; Compare X to end of RAM
|
|
beq PASS@ ; Finish if we're at the end
|
|
leax 1,x ; Increment X
|
|
bra AGAIN@
|
|
ERR@ ; Write out error indicator
|
|
ldb #'X
|
|
jsr POUTCHAR
|
|
PASS@ ; Pass test
|
|
ldb #'P
|
|
jsr POUTCHAR
|
|
bra HALT
|
|
|
|
; Prints a message about completing a memory test prompting the user to reset
|
|
; then puts the MPU in a loop where it only responds to interrupts, effectively
|
|
; halting the CHIBI
|
|
HALT
|
|
PZSTR MSG_FINISH
|
|
LOOP@
|
|
sync
|
|
bra LOOP@
|
|
|
|
MSG_FINISH
|
|
fcc "Memory test finished! Please reset"
|
|
fcb $0D,$0A,$00
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;
|
|
;; CHIBI PC-09 Integrity Functions
|
|
;;
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
SECTION INTEGRITY
|
|
|
|
EXPORT PRINTVER
|
|
|
|
; Prints the ROM's version string
|
|
PRINTVER
|
|
PZSTR VERMSG
|
|
rts
|