mirror of https://github.com/wwarthen/RomWBW.git
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.
113 lines
1.8 KiB
113 lines
1.8 KiB
; printers.asm 12/25/2011 dwg -
|
|
|
|
; Copyright (C) 2011-2012 Douglas Goodall All Rights Reserved.
|
|
; For non-commercial use by N8VEM community
|
|
|
|
maclib portab
|
|
maclib cpmbdos
|
|
|
|
extrn hexref
|
|
|
|
cseg
|
|
|
|
public pr$h$nyb
|
|
pr$h$nyb:
|
|
enter
|
|
ani 15
|
|
lxi h,hexref
|
|
add l
|
|
mov l,a
|
|
mov e,m
|
|
mvi c,CWRITE
|
|
call BDOS
|
|
leave
|
|
ret
|
|
|
|
public pr$h$byte
|
|
pr$h$byte:
|
|
enter
|
|
push psw
|
|
rrc
|
|
rrc
|
|
rrc
|
|
rrc
|
|
call pr$h$nyb
|
|
pop psw
|
|
call pr$h$nyb
|
|
leave
|
|
ret
|
|
|
|
public pr$h$word
|
|
pr$h$word:
|
|
enter
|
|
push h
|
|
mov a,h
|
|
call pr$h$byte
|
|
pop h
|
|
mov a,l
|
|
call pr$h$byte
|
|
leave
|
|
ret
|
|
|
|
public pr$d$word
|
|
pr$d$word:
|
|
enter
|
|
call PDEC
|
|
leave
|
|
ret
|
|
|
|
; From the "99 Bottles of Beer" web page at
|
|
; http://99-bottles-of-beer.net/language-assembler-(8080-8085)-764.html
|
|
; adapted for use in RomWBW/Apps with rmac syntax
|
|
|
|
|
|
; PRINT HL AS A DECIMAL NUMBER (0-65535)
|
|
|
|
; public PDEC
|
|
public PDEC,PDEC1,PDEC2,PDEC3,PDEC4,PDEC5
|
|
PDEC: XRA A ; LEADING ZERO FLAG
|
|
STA PDEC5
|
|
LXI B, -10000
|
|
CALL PDEC1
|
|
LXI B, -1000
|
|
CALL PDEC1
|
|
LXI B, -100
|
|
CALL PDEC1
|
|
MVI C, -10
|
|
CALL PDEC1
|
|
MVI C, -1
|
|
MVI A, 0FFh ; IF NUMBER IS ZERO, THIS MAKES SURE
|
|
STA PDEC5 ; IT'S PRINTED
|
|
PDEC1: MVI A, '/' ; "0" - 1
|
|
PDEC2: INR A
|
|
DAD B
|
|
JC PDEC2
|
|
STA PDEC4 ; SUBTRACT BC FROM HL
|
|
MOV A, L
|
|
SBB C
|
|
MOV L, A
|
|
MOV A, H
|
|
SBB B
|
|
MOV H, A
|
|
LDA PDEC4
|
|
CPI '0' ; ZERO?
|
|
JNZ PDEC3
|
|
LDA PDEC5 ; ZERO FLAG SET?
|
|
CPI 0h
|
|
RZ ; COMMENT OUT TO PRINT LEADING ZEROS
|
|
PDEC3: LDA PDEC4
|
|
CONOUTA ; WAS "CALL PCHAR"
|
|
MVI A, 0FFh ; SET LEADING ZERO FLAG
|
|
STA PDEC5
|
|
RET
|
|
|
|
dseg
|
|
|
|
PDEC4: DB 0 ; TEMP FOR 16 BIT SUBTRACTION
|
|
PDEC5: DB 0 ; FLAG FOR LEADING ZEROS
|
|
|
|
END
|
|
|
|
; eof - printers.asm
|
|
|
|
|