You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
85 lines
2.4 KiB
85 lines
2.4 KiB
13 years ago
|
;************************************************************************
|
||
|
; example.s
|
||
|
;************************************************************************
|
||
|
|
||
|
.title z80sim Test
|
||
|
.module example
|
||
|
|
||
|
;************************************************************************
|
||
|
; Constants
|
||
|
;************************************************************************
|
||
|
|
||
|
STACKBASE == 0xFFFF
|
||
|
|
||
|
;************************************************************************
|
||
|
; Data
|
||
|
;************************************************************************
|
||
|
|
||
|
.area DATA (ABS,OVR)
|
||
|
.org 0x8000
|
||
|
hello:
|
||
|
.ascii "Hello, World!\n\0"
|
||
|
|
||
|
;************************************************************************
|
||
|
; Reset entry point
|
||
|
;************************************************************************
|
||
|
|
||
|
.area TEXT (ABS,OVR)
|
||
|
.org 0x0000
|
||
|
di ; Disable interrupts
|
||
|
ld SP, #STACKBASE ; Set stack pointer
|
||
|
im 1 ; Set interrupt mode 1
|
||
|
jp start ; jump to start of program
|
||
|
|
||
|
;************************************************************************
|
||
|
; Interrupt handler
|
||
|
;************************************************************************
|
||
|
|
||
|
.org 0x0038 ; Int mode 1
|
||
|
reti ; return from interrupt
|
||
|
|
||
|
;************************************************************************
|
||
|
; NMI interrupt handler
|
||
|
;************************************************************************
|
||
|
|
||
|
.org 0x0066
|
||
|
retn
|
||
|
|
||
|
;************************************************************************
|
||
|
; Start of program
|
||
|
;************************************************************************
|
||
|
|
||
|
.org 0x0100
|
||
|
start:
|
||
|
;ei ; Enable interrrupts
|
||
|
ld hl, #hello ; Say hello
|
||
|
call print
|
||
|
|
||
|
forever: ; Then stop execution
|
||
|
jp forever
|
||
|
|
||
|
;******************************************************************
|
||
|
; print *
|
||
|
; Funktion....: Sen tekst and data with serielport *
|
||
|
; Input.......: hl points at text start adr *
|
||
|
; Output......: Text to serielport *
|
||
|
; uses........: a,hl*
|
||
|
; call........: TX_BUSY tst 28-4-1994 *
|
||
|
;******************************************************************
|
||
|
|
||
|
print:
|
||
|
push af
|
||
|
loop:
|
||
|
ld a, (hl) ; Get character to print
|
||
|
cp #0 ; Null terminates the string
|
||
|
jp z, done
|
||
|
|
||
|
out (0xbe), a ; Send character
|
||
|
inc hl ; Increment to next character
|
||
|
jp loop ; Loop til done
|
||
|
done:
|
||
|
pop af
|
||
|
ret
|
||
|
|
||
|
|