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.
84 lines
2.4 KiB
84 lines
2.4 KiB
;************************************************************************ |
|
; 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 |
|
|
|
|
|
|