6502-OS/system/system.h65

85 lines
1.8 KiB
Plaintext

;;********************************************************************************
;; @file
;; @brief System header
;; @ingroup system
;; @details
;; Variables for the current hardware setup
;;********************************************************************************
.ifndef INCLUDE_SYSTEM
INCLUDE_SYSTEM = 1
;;********************************************************************************
;; @page system_stuff More System stuff
;; @subsubsection ram_reserved Reserved RAM addresses
;; - 00-0f - free use (Z0-Z15)
;; - 10-1f - arguments / return values (ARG0-ARG15)
;; - 20-ff - free
;; - 0100 - 01FF Stack
;; - 0200,0201 keypad keybuffer write/read pointer
;; - 0202-02ff keypad keybuffer
;; - 0300 lcd character counter
;; @ingroup system
;;********************************************************************************
.include "io_W65C22.h65"
.include "utility.h65"
.importzp Z0,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z10,Z11,Z12,Z13,Z14,Z15
.importzp ARG0,ARG1,ARG2,ARG3,ARG4,ARG5,ARG6,ARG7,ARG8,ARG9,ARG10,ARG11,ARG12,ARG13,ARG14,ARG15
; Z0 = $0
; Z1 = $1
; Z2 = $2
; Z3 = $3
; Z4 = $4
; Z5 = $5
; Z6 = $6
; Z7 = $7
; Z8 = $8
; Z9 = $9
; Z10 = $a
; Z11 = $b
; Z12 = $c
; Z13 = $d
; Z14 = $e
; Z15 = $f
; ; ARGUMENTS
; ; a,x,y can also be used
; ARG0 = $10
; ARG1 = $11
; ARG2 = $12
; ARG3 = $13
; ARG4 = $14
; ARG5 = $15
; ARG6 = $16
; ARG7 = $17
; ARG8 = $18
; ARG9 = $19
; ARG10 = $1a
; ARG11 = $1b
; ARG12 = $1c
; ARG13 = $1d
; ARG14 = $1e
; ARG15 = $1f
; RETURN VALUE
.segment "VIA1"
; IO1: .res 16
IO1 = $6000
.segment "VIA2"
; IO2: .res 16
IO2 = $7000
; charmappings for the lcd
; .charmap 'ü', $F5
; .charmap 'Ü', $F5
; .charmap 'ö', $EF
; .charmap 'Ö', $EF
; .charmap 'ä', $E1
; .charmap 'Ä', $E1
; .charmap 'ß', $E2
.endif ; include guard