home *** CD-ROM | disk | FTP | other *** search
-
- LF equ 0AH ;line feed
- CR equ 0DH ;carriage return
-
- BDOS equ 0005 ;jump to CP/M
-
- org 0100H
-
- X0100: jmp X013D
- porg: dw 0BBBBH ;program origin (even page)
- pend: dw 0EEEEH ;program end (even number of pages)
- hiya: db 'hello',CR,LF,'$'
- X013D: lxi sp,stak
- lhld pend
- xchg
- lhld porg
- mov a,e
- sub l
- mov l,a
- mov a,d
- sbb h
- mov h,a
- push h
- push h
- lxi d,hiya
- mvi c,09 ;(09) print buffer
- call 0005
- pop b
- lxi h,BDOS+2 ;end of memory
- mov a,m
- dcr a
- sub b
- mov d,a
- mvi e,00
- push d
- lhld porg
- shif: mov a,b
- ora c
- jz rloc
- dcx b
- mov a,m
- stax d
- inx d
- inx h
- jmp shif
-
- rloc: pop d
- pop b
- push h
- mov h,d
- relo: mov a,b
- ora c
- jz gogo
- dcx b
- mov a,e
- ani 07
- jnz rotl
- xthl
- mov a,m
- inx h
- xthl
- mov l,a
- rotl: mov a,l
- ral
- mov l,a
- jnc nmod
- ldax d
- add h
- stax d
- nmod: inx d
- jmp relo
-
- gogo: pop d
- mvi l,00
- pchl
-
- org 0200H
-
- stak: ds 0
-
- end
-