Update to include Altair 8800 test.asm
This commit is contained in:
parent
c9205b6609
commit
80714dcbcf
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
||||
*.hex
|
||||
*.prn
|
73
src/altair8800/test.asm
Normal file
73
src/altair8800/test.asm
Normal file
@ -0,0 +1,73 @@
|
||||
; test.asm
|
||||
; Copyright (C) 2023 William R. Moore
|
||||
;
|
||||
; This program is free software: you can redistribute it and/or modify
|
||||
; it under the terms of the GNU General Public License as published by
|
||||
; the Free Software Foundation, either version 3 of the License, or
|
||||
; (at your option) any later version.
|
||||
;
|
||||
; This program is distributed in the hope that it will be useful,
|
||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
; GNU General Public License for more details.
|
||||
;
|
||||
; You should have received a copy of the GNU General Public License
|
||||
; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
;
|
||||
; Outputs to the LEDs whichever sense switch is flipped until no switches are flipped
|
||||
; in which case the program spits out Hello, world and exits.
|
||||
;
|
||||
; This serves no real purpose other than demonstrating concepts as a toy.
|
||||
|
||||
BDOS equ 0005h
|
||||
WRITESTR equ 09h
|
||||
WRITECHR equ 02h
|
||||
CONSTAT equ 0bh
|
||||
EOS equ 00h
|
||||
CR equ 0dh
|
||||
LF equ 0ah
|
||||
|
||||
org 0100h
|
||||
lxi h, 0
|
||||
mvi d, 080h
|
||||
|
||||
run:
|
||||
ldax d
|
||||
ldax d
|
||||
ldax d
|
||||
ldax d
|
||||
dad b
|
||||
jnc run
|
||||
in 0ffh
|
||||
mov d, a
|
||||
CPI 0
|
||||
jz print
|
||||
jmp run
|
||||
|
||||
print:
|
||||
push h
|
||||
push b
|
||||
mvi c, WRITESTR
|
||||
lxi d, cls
|
||||
call BDOS
|
||||
pop b
|
||||
pop h
|
||||
|
||||
push h
|
||||
push b
|
||||
lxi d, textstr
|
||||
mvi c, WRITESTR
|
||||
call BDOS
|
||||
pop b
|
||||
pop h
|
||||
jmp exit
|
||||
|
||||
exit:
|
||||
ret
|
||||
|
||||
|
||||
textstr: db CR, LF, 'Hello, world', CR, LF, 24H
|
||||
cls: db 1bh, '[2J$' ; ANSI clear screen: ESC [ 2 J
|
||||
home: db 1bh, '[H$' ; ANSI go to screen home: ESC [ H
|
||||
|
||||
end
|
Loading…
Reference in New Issue
Block a user