home *** CD-ROM | disk | FTP | other *** search
Text File | 1984-04-29 | 17.5 KB | 1,311 lines |
-
- ;********************************************************
- ;* *
- ;* Program to do BIG banners in a 12x7 matrix *
- ;* ----------------------------------------- *
- ;* Barrie Hall , 4th November 1982 *
- ;* Macro-80 format for a Z80 CPU. *
- ;* *
- ;* *
- ;* Features: *
- ;* - Full 96 characters. *
- ;* - 12x7 matrix. *
- ;* - Lower case DESCENDERS. *
- ;* - Command tail OR Interactive mode. *
- ;* *
- ;* This program prints banners on the CP/M console. *
- ;* To get the banner on your printer, use ^P before *
- ;* you use BANNER. *
- ;* The characters are stored as a series of 9 bytes *
- ;* which represent a 9x7 matrix, this matrix is shifted*
- ;* down three rows for lower case descenders, if there *
- ;* are no descending chars in the current line, the *
- ;* program does three line feeds. *
- ;* For most chars, the fill charcater used is the *
- ;* actual char itself, BUT some ('!"(){}[]/) chars are *
- ;* illegible so the program will use an X IFF the char *
- ;* appears in the lookup table at the end of the prog. *
- ;* *
- ;* If you type: *
- ;* A>banner hello fred *
- ;* ,the program will print the banner, HELLO FRED, in *
- ;* upper case on the console, (CP/M translates all char*
- ;* in its command line to UPPER CASE. *
- ;* If you type: *
- ;* A>banner *
- ;* ,the program will give a prompt (>), now you can *
- ;* up to a thousand characters and as many lines as you *
- ;* at up to 15 chars a line (limit with 15" paper). *
- ;* When you have finished your message, type '\' on a *
- ;* line by it's self (i.e. >\ ). The program will banner*
- ;* print the lines you have typed in. *
- ;* *
- ;* Barrie Hall, 15th Nov 82 *
- ;* *
- ;* Please send bugs, comments, abuse etc to: *
- ;* *
- ;* Sydney RCPM on (02)997-1836 *
- ;* OR verabally on (02)80-2200 *
- ;* *
- ;* All commercial rights reservered by author. *
- ;* (c) 1982 *
- ;* *
- ;********************************************************
-
- aseg
- .z80
- org 0100h
- lines equ 12
- fdos equ 0005h
- fcb equ 005ch
- fcbcr equ fcb+32
- cmdbuf equ 80h ;cpm command line tail
- true equ 0
- false equ not true ;a lie???
- cr equ 0dh
- lf equ 0ah
-
- ;This routine prints the CP/M command tail as a 9x7 banner
- ;on the console OR gets lines from console and buffer them
- ;up until we get a \ on a line by itself.
-
- ; The format is 9 lines by 7 columns, the columns are the
- ;Bits in the byte, each byte represents a line of the char.
- ; SO we scan a byte for each char in each line.
- ld (stack),sp
- ld sp,dtem ;space for stack
- ;dont print leading spaces in the command tail
- ld a,(cmdbuf) ;length byte
- cp 0
- jr z,inter1 ;no command line, give prom
- add a,81h ;address of last+1 char
- ld h,0
- ld l,a
- ld (hl),00 ;so prog terminates!!
- ld hl,cmdbuf+1
- nxtf:: ld a,(hl)
- inc hl
- cp ' '
- jr z,nxtf
- cp 09h
- jr z,nxtf
- cp 00h
- jp z,gsys ;no message
- dec hl
- ld (messg),hl
- call bigchar
- ld sp,(stack) ;restore stack and
- ret ;go to the CCP.
- ;interactive mode, give a prompt and read a line, store
- ;it in the buffer and get another line from the console.
- ;if the first char on the line is slosh '\', go and print
- ;the buffer in banner format and return to CP/M.
-
-
- inter1::
- ld hl,bffer
- ld (bptr),hl
- inter2::
- call crlf
- dff:: ld e,'>'
- call cout
- ld a,15 ;max char with 130 columns
- ld (80h),a
- ld de,80h
- call lchin
- ld a,(81h)
- ld b,a
- cp 0
- jr z,inter2 ;no chars typed...
- ;move what was typed to the main buffer and zero terminate
- ;it.
- ld a,(82h)
- cp '\' ;terminate??
- jr z,prt44 ;go and print the buffer
- ld a,b
- ld de,(bptr) ;get pointer to main text
- push de ;buffer..save for later
- push af ;set up block move
- ld c,a ;length
- ld b,0
- ld hl,82h ;first byte of text
- ldir ;block move to the main buffer
- pop af
- pop hl
- ld c,a
- ld b,0
- add hl,bc ;update buffer pointer
- ld (hl),0 ;zero terminate
- inc hl
- ld (bptr),hl
- jr inter2 ;do again
-
- prt44::
- ld hl,(bptr)
- ld (hl),0ffh ;message terminate
- ;now, print a line at a time , when there is an 0ffh after
- ;a zero(end of line), return to CP/M
- ld hl,bffer
- nxmss1::
- ld (messg),hl
- push hl
- call bigchar ;do one line.
- pop hl
- zrlp:: ld a,(hl)
- inc hl
- cp 0
- jr nz,zrlp
- ld a,(hl)
- cp 0ffh
- jr nz,nxmss1
- ;else exit to cpm
- ld sp,(stack)
- ret
-
- bigchar::
- ; this routine prints out the banner line
- ;using the data table. The chars come from the CP/M
- ;command tail OR the interactive data buffer.
-
- ld a,false
- ld (desflg),a
- ld b,0 ;line ZERO
- netlin::
- ld ix,(messg)
- nxtchr::
- ld a,(ix)
- inc ix
- cp 00
- jr z,nxtln
- cp ' '
- jr z,spce
- cp 09h
- jr z,spce
- push bc
- ;check for lower case descenders
- ;g,j,p,q,y
- cp 'g'
- jr z,des
- cp 'j'
- jr z,des
- cp 'p'
- jr z,des
- cp 'q'
- jr z,des
- cp 'y'
- jr z,des
- ld d,a
- ld a,b
- cp 9
- jr c,nwrs
- ld a,(desflg)
- cp true
- jr nz,ext11 ;no descenders
- jr spps ;do some lf's and leave.
- nwrs:: ld a,d
- bopo:: call biglne
- aftr::
- pop bc
- jr nxtchr
- des::
- ;set descenders this line flag
- ;and print 7 spaces if line < 3
- ld d,a
- ld a,true
- ld (desflg),a
- ld a,b
- sub 3
- cp 0
- ld b,a
- jp m,spps
- ld a,d
- jr bopo
- spps::
- ld e,' '
- ld b,9
- spss1::
- call cout
- djnz spss1
- jr aftr
-
- nxtln::
- inc b
- ld a,b
- cp lines ;12 lines
- jr z,gsys
- call crlf
- jr netlin
-
- spce::
- push bc
- ld b,9
- spc11::
- ld e,' '
- call cout
- djnz spc11
- pop bc
- jr nxtchr
-
- ext11::
- ;do 3 crslfs and go to CP/M
- pop bc
- ld b,3
- lflop::
- call crlf
- djnz lflop
- gsys::
- ld e,cr
- call cout
- ret
-
-
- biglne::
- ;this routine prints out line N of char in A reg on the
- ;console
-
- ;work out mask for matrix from 01 to 80
- ld (chr),a
- sub 21h
- ret m
- ;line number is passed in B reg
- ;multiply A by 9 to get offset, add base address
- ;9A can be up to 1192 (lots) so use 16 bit arith
- ld l,a
- ld h,0
- push hl
- pop de
- add hl,hl ;x2
- add hl,hl ;x4
- add hl,hl ;x8
- add hl,de ;+1=9
- ld de,graf ;add table offset
- add hl,de
- ld c,b ;byte offset THIS LINE
- ld b,0
- add hl,bc ;got address of byte for this line
- ;now move the AND mask through the LINE byte and print
- ;out the chars and spaces.
- ld a,(hl) ;byte for line number B.
- ld d,a ;remeber A reg
- ld b,7
- ld c,40h ;initial mask
- chrpp::
- ld a,d
- push hl
- push bc
- and c
- jr z,blk
- ld a,(chr) ;decide between an 'X'
- ld hl,lup1
- ld b,lup2-lup1 ;length of look up table
- lupps::
- cp (hl)
- inc hl
- jr z,xxss ;its in table of bad print chrs
- djnz lupps
- ;not in table print it verbatim (hope not!)
- ld e,a
- call cout ;matrix fill char.
- ljj:: pop bc
- pop hl
- srl c
- djnz chrpp
- ld e,' ' ;inter..
- call cout ;character..
- call cout ;spacing..
- ret
- xxss::
- ld e,'X'
- call cout
- jr ljj
- blk::
- ld e,' '
- call cout
- jr ljj
-
- ;cpm routines
-
- crlf: ld e,0ah
- call cout
- ld e,0dh
- call cout
- ret
- ;
- cout: push bc
- push de
- push hl
- ld c,2
- jr cpm
- ;
- chin: push bc
- push de
- push hl
- ld c,1
- jr cpm
- ;
- lchin:: push bc
- push de
- push hl
- ld c,10
- jr cpm
-
-
- pmess:: push bc
- push de
- push hl
- ld c,9
- jr cpm
-
- open:: push bc
- push de
- push hl
- ld c,15 ;open cp/m file code
- jr cpm
-
- read:: push bc
- push de
- push hl
- ld c,20 ;read cp/m file code.
- jr cpm
-
-
- setdma::
- push bc
- push de
- push hl
- ld c,26 ;set dma address code.
- jr cpm
-
- cpm:: call fdos ;go to cp/m
- pop hl ;restore all registers pushed
- pop de
- pop bc
- ret ;back to the main program
-
- ;table for the Banner characters....
- graf::
- ;1 byte per line - 9 lines per character
-
- ;!
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0
- db 0
- db 0001000b
- db 0001000b
- ;"
- db 0100100b
- db 0100100b
- db 0100100b
- db 0,0,0,0,0,0
- ;#
- db 0010100b
- db 0010100b
- db 0010100b
- db 1111111b
- db 0010100b
- db 1111111b
- db 0010100b
- db 0010100b
- db 0010100b
- ;$
- db 0001000b
- db 0111111b
- db 1001000b
- db 1001000b
- db 0111110b
- db 0001001b
- db 0001001b
- db 1111110b
- db 0001000b
- ;%
- db 0100000b
- db 1010001b
- db 0100010b
- db 0000100b
- db 0001000b
- db 0010000b
- db 0100010b
- db 1000101b
- db 0000010b
- ;&
- db 0111000b
- db 1000100b
- db 1000100b
- db 0101000b
- db 0010000b
- db 0101001b
- db 1000110b
- db 1000110b
- db 0111001b
- ;'
- db 0001100b
- db 0001100b
- db 0001000b
- db 0010000b
- db 0,0,0,0,0
- ;(
- db 0000100b
- db 0001000b
- db 0010000b
- db 0010000b
- db 0010000b
- db 0010000b
- db 0010000b
- db 0001000b
- db 0000100b
- ;)
- db 0010000b
- db 0001000b
- db 0000100b
- db 0000100b
- db 0000100b
- db 0000100b
- db 0000100b
- db 0001000b
- db 0010000b
- ;*
- db 0001000b
- db 1001001b
- db 0101010b
- db 0011100b
- db 1111111b
- db 0011100b
- db 0101010b
- db 1001001b
- db 0001000b
- ;+
- db 0
- db 0001000b
- db 0001000b
- db 0001000b
- db 1111111b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0
- ;,
- db 0,0,0,0
- db 0011000b
- db 0011000b
- db 0010000b
- db 0100000b
- db 0
- ;-
- db 0,0,0,0
- db 1111111b
- db 0,0,0,0
- ;.
- db 0,0,0,0,0,0,0
- db 0011000b
- db 0011000b
- ;/
- db 0
- db 0000001b
- db 0000010b
- db 0000100b
- db 0001000b
- db 0010000b
- db 0100000b
- db 1000000b
- db 0
- ;0
- db 0111110b
- db 1000001b
- db 1000011b
- db 1000101b
- db 1001001b
- db 1010001b
- db 1100001b
- db 1000001b
- db 0111110b
- ;1
- db 0001000b
- db 0011000b
- db 0101000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0111110b
- ;2
- db 0111110b
- db 1000001b
- db 0000001b
- db 0000010b
- db 0011100b
- db 0100000b
- db 1000000b
- db 1000000b
- db 1111111b
- ;3
- db 0111110b
- db 1000001b
- db 0000001b
- db 0000001b
- db 0011110b
- db 0000001b
- db 0000001b
- db 1000001b
- db 0111110b
- ;4
- db 0000010b
- db 0000110b
- db 0001010b
- db 0010010b
- db 0100010b
- db 1000010b
- db 1111111b
- db 0000010b
- db 0000010b
- ;5
- db 1111111b
- db 1000000b
- db 1000000b
- db 1111100b
- db 0000010b
- db 0000001b
- db 0000001b
- db 1000010b
- db 0111100b
- ;6
- db 0011110b
- db 0100000b
- db 1000000b
- db 1000000b
- db 1111110b
- db 1000001b
- db 1000001b
- db 1000001b
- db 0111110b
- ;7
- db 1111111b
- db 1000001b
- db 0000010b
- db 0000100b
- db 0001000b
- db 0010000b
- db 0010000b
- db 0010000b
- db 0010000b
- ;8
- db 0111110b
- db 1000001b
- db 1000001b
- db 1000001b
- db 0111110b
- db 1000001b
- db 1000001b
- db 1000001b
- db 0111110b
- ;9
- db 0111110b
- db 1000001b
- db 1000001b
- db 1000001b
- db 0111111b
- db 0000001b
- db 0000001b
- db 0000010b
- db 0111100b
- ;:
- db 0
- db 0
- db 0
- db 0011000b
- db 0011000b
- db 0
- db 0
- db 0011000b
- db 0011000b
- ;;
- db 0011000b
- db 0011000b
- db 0
- db 0
- db 0011000b
- db 0011000b
- db 0010000b
- db 0100000b
- db 0
- ;<
- db 0000100b
- db 0001000b
- db 0010000b
- db 0100000b
- db 1000000b
- db 0100000b
- db 0010000b
- db 0001000b
- db 0000100b
- ;=
- db 0,0,0
- db 0111110b
- db 0
- db 0111110b
- db 0,0,0
- ;>
- db 0010000b
- db 0001000b
- db 0000100b
- db 0000010b
- db 0000001b
- db 0000010b
- db 0000100b
- db 0001000b
- db 0010000b
- ;?
- db 0011110b
- db 0100001b
- db 0100001b
- db 0000001b
- db 0000110b
- db 0001000b
- db 0001000b
- db 0
- db 0001000b
- ;@
- db 0011110b
- db 0100001b
- db 1001101b
- db 1010101b
- db 1010101b
- db 1011110b
- db 1000000b
- db 0100000b
- db 0011110b
- ;A
- db 0011100b
- db 0100010b
- db 1000001b
- db 1000001b
- db 1000001b
- db 1111111b
- db 1000001b
- db 1000001b
- db 1000001b
- ;B
- db 1111110b
- db 0100001b
- db 0100001b
- db 0100001b
- db 0111110b
- db 0100001b
- db 0100001b
- db 0100001b
- db 1111110b
- ;C
- db 0011110b
- db 0100001b
- db 1000000b
- db 1000000b
- db 1000000b
- db 1000000b
- db 1000000b
- db 0100001b
- db 0011110b
- ;D
- db 1111100b
- db 0100010b
- db 0100001b
- db 0100001b
- db 0100001b
- db 0100001b
- db 0100001b
- db 0100010b
- db 1111100b
- ;E
- db 1111111b
- db 1000000b
- db 1000000b
- db 1000000b
- db 1111000b
- db 1000000b
- db 1000000b
- db 1000000b
- db 1111111b
- ;F
- db 1111111b
- db 1000000b
- db 1000000b
- db 1000000b
- db 1111000b
- db 1000000b
- db 1000000b
- db 1000000b
- db 1000000b
- ;G
- db 0011110b
- db 0100001b
- db 1000000b
- db 1000000b
- db 1000000b
- db 1001111b
- db 1000001b
- db 0100001b
- db 0011110b
- ;H
- db 1000001b
- db 1000001b
- db 1000001b
- db 1000001b
- db 1111111b
- db 1000001b
- db 1000001b
- db 1000001b
- db 1000001b
- ;I
- db 0111110b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0111110b
- ;J
- db 0011111b
- db 0000100b
- db 0000100b
- db 0000100b
- db 0000100b
- db 0000100b
- db 0000100b
- db 1000100b
- db 0111000b
- ;K
- db 1000001b
- db 1000010b
- db 1000100b
- db 1001000b
- db 1010000b
- db 1101000b
- db 1000100b
- db 1000010b
- db 1000001b
- ;L
- db 1000000b
- db 1000000b
- db 1000000b
- db 1000000b
- db 1000000b
- db 1000000b
- db 1000000b
- db 1000000b
- db 1111111b
- ;M
- db 1000001b
- db 1100011b
- db 1010101b
- db 1001001b
- db 1001001b
- db 1000001b
- db 1000001b
- db 1000001b
- db 1000001b
- ;N
- db 1000001b
- db 1100001b
- db 1010001b
- db 1001001b
- db 1000101b
- db 1000011b
- db 1000001b
- db 1000001b
- db 1000001b
- ;O
- db 0011100b
- db 0100010b
- db 1000001b
- db 1000001b
- db 1000001b
- db 1000001b
- db 1000001b
- db 0100010b
- db 0011100b
- ;P
- db 1111110b
- db 1000001b
- db 1000001b
- db 1000001b
- db 1111110b
- db 1000000b
- db 1000000b
- db 1000000b
- db 1000000b
- ;Q
- db 0011100b
- db 0100010b
- db 1000001b
- db 1000001b
- db 1000001b
- db 1001001b
- db 1000101b
- db 0100010b
- db 0011101b
- ;R
- db 1111110b
- db 1000001b
- db 1000001b
- db 1000001b
- db 1111110b
- db 1001000b
- db 1000100b
- db 1000010b
- db 1000001b
- ;S
- db 0111110b
- db 1000001b
- db 1000000b
- db 1000000b
- db 0111110b
- db 0000001b
- db 0000001b
- db 1000001b
- db 0111110b
- ;T
- db 1111111b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- ;U
- db 1000001b
- db 1000001b
- db 1000001b
- db 1000001b
- db 1000001b
- db 1000001b
- db 1000001b
- db 1000001b
- db 0111110b
- ;V
- db 1000001b
- db 1000001b
- db 1000001b
- db 0100010b
- db 0100010b
- db 0010100b
- db 0010100b
- db 0001000b
- db 0001000b
- ;W
- db 1000001b
- db 1000001b
- db 1000001b
- db 1000001b
- db 1001001b
- db 1001001b
- db 1010101b
- db 1100011b
- db 1000001b
- ;X
- db 1000001b
- db 1000001b
- db 0100010b
- db 0010100b
- db 0001000b
- db 0010100b
- db 0100010b
- db 1000001b
- db 1000001b
- ;Y
- db 1000001b
- db 1000001b
- db 0100010b
- db 0010100b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- ;Z
- db 1111111b
- db 0000001b
- db 0000010b
- db 0000100b
- db 0001000b
- db 0010000b
- db 0100000b
- db 1000000b
- db 1111111b
-
-
- ;[
- db 0111100b
- db 0100000b
- db 0100000b
- db 0100000b
- db 0100000b
- db 0100000b
- db 0100000b
- db 0100000b
- db 0111100b
- ;\
- db 0000000b
- db 1000000b
- db 0100000b
- db 0010000b
- db 0001000b
- db 0000100b
- db 0000010b
- db 0000001b
- db 0000000b
- ;]
- db 0111100b
- db 0000100b
- db 0000100b
- db 0000100b
- db 0000100b
- db 0000100b
- db 0000100b
- db 0000100b
- db 0111100b
- ;^
- db 0001000b
- db 0010100b
- db 0100010b
- db 1000001b
- db 0
- db 0
- db 0
- db 0
- db 0
- ;_
- db 0,0,0,0,0,0,0,0
- db 1111111b
- ;`
- db 0011000b
- db 0011000b
- db 0001000b
- db 0000100b
- db 0,0,0,0,0
- ;a
- db 0
- db 0
- db 0
- db 0111100b
- db 0000010b
- db 0111110b
- db 1000010b
- db 1000010b
- db 0111101b
- ;b
- db 1000000b
- db 1000000b
- db 1000000b
- db 1011100b
- db 1100010b
- db 1000010b
- db 1000010b
- db 1100010b
- db 1011100b
- ;c
- db 0
- db 0
- db 0
- db 0111100b
- db 1000010b
- db 1000000b
- db 1000000b
- db 1000010b
- db 0111100b
- ;d
- db 0000010b
- db 0000010b
- db 0000010b
- db 0111010b
- db 1000110b
- db 1000010b
- db 1000010b
- db 1000110b
- db 0111010b
- ;e
- db 0
- db 0
- db 0
- db 0111100b
- db 1000010b
- db 1111110b
- db 1000000b
- db 1000000b
- db 0111100b
- ;f
- db 0001100b
- db 0010010b
- db 0010000b
- db 0010000b
- db 1111100b
- db 0010000b
- db 0010000b
- db 0010000b
- db 0010000b
- ;g
- db 0111010b
- db 1000110b
- db 1000010b
- db 1000110b
- db 0111010b
- db 0000010b
- db 0000010b
- db 1000010b
- db 0111100b
- ;h
- db 1000000b
- db 1000000b
- db 1000000b
- db 1011100b
- db 1100010b
- db 1000010b
- db 1000010b
- db 1000010b
- db 1000010b
- ;i
- db 0
- db 0001000b
- db 0
- db 0011000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0011100b
- ;j
- db 0000110b
- db 0000010b
- db 0000010b
- db 0000010b
- db 0000010b
- db 0000010b
- db 0000010b
- db 0100010b
- db 0011100b
- ;k
- db 1000000b
- db 1000000b
- db 1000000b
- db 1000100b
- db 1001000b
- db 1010000b
- db 1101000b
- db 1000100b
- db 1000010b
- ;l
- db 0011000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0001000b
- db 0011100b
- ;m
- db 0
- db 0
- db 0
- db 1110110b
- db 1001001b
- db 1001001b
- db 1001001b
- db 1001001b
- db 1001001b
- ;n
- db 0
- db 0
- db 0
- db 1011100b
- db 1100010b
- db 1000010b
- db 1000010b
- db 1000010b
- db 1000010b
- ;o
- db 0
- db 0
- db 0
- db 0111100b
- db 1000010b
- db 1000010b
- db 1000010b
- db 1000010b
- db 0111100b
- ;p
- db 1011100b
- db 1100010b
- db 1000010b
- db 1000010b
- db 1100010b
- db 1011100b
- db 1000000b
- db 1000000b
- db 1000000b
- ;q
- db 0111010b
- db 1000110b
- db 1000010b
- db 1000010b
- db 1000110b
- db 0111010b
- db 0000010b
- db 0000010b
- db 0000011b
- ;r
- db 0
- db 0
- db 0
- db 1011100b
- db 1100010b
- db 1000000b
- db 1000000b
- db 1000000b
- db 1000000b
- ;s
- db 0
- db 0
- db 0
- db 0111100b
- db 1000010b
- db 0110000b
- db 0001100b
- db 1000010b
- db 0111100b
- ;t
- db 0
- db 0010000b
- db 0010000b
- db 1111100b
- db 0010000b
- db 0010000b
- db 0010000b
- db 0010010b
- db 0001100b
- ;u
- db 0
- db 0
- db 0
- db 1000010b
- db 1000010b
- db 1000010b
- db 1000010b
- db 1000110b
- db 0111010b
- ;v
- db 0
- db 0
- db 0
- db 1000001b
- db 1000001b
- db 1000001b
- db 0100010b
- db 0010100b
- db 0001000b
- ;w
- db 0
- db 0
- db 0
- db 1000001b
- db 1001001b
- db 1001001b
- db 1001001b
- db 1001001b
- db 0110110b
- ;x
- db 0
- db 0
- db 0
- db 1000010b
- db 0100100b
- db 0011000b
- db 0011000b
- db 0100100b
- db 1000010b
- ;y
- db 1000010b
- db 1000010b
- db 1000010b
- db 1000010b
- db 1000110b
- db 0111010b
- db 0000010b
- db 1000010b
- db 0111100b
- ;z
- db 0
- db 0
- db 0
- db 1111110b
- db 0000100b
- db 0001000b
- db 0010000b
- db 0100000b
- db 1111110b
- ;{
- db 0001110b
- db 0010000b
- db 0010000b
- db 0010000b
- db 0100000b
- db 0010000b
- db 0010000b
- db 0010000b
- db 0001110b
- ;|
- db 0001000b
- db 0001000b
- db 0001000b
- db 0
- db 0
- db 0001000b
- db 0001000b
- db 0001000b
- db 0
- ;}
- db 0111000b
- db 0000100b
- db 0000100b
- db 0000100b
- db 0000010b
- db 0000100b
- db 0000100b
- db 0000100b
- db 0111000b
- ;~
- db 0110000b
- db 1001001b
- db 0000110b
- db 0,0,0,0,0,0
-
- ;THE END
- db 0
- db 0
- db 0
- ;these are chars which dont show up very well if they are
- ;typed in the banner as themselves, SO we use an 'X' to
- ;make up the matrix instead.
- lup1:: db '!','"','%','.',';',',','/','\','`','*'
- db '(',')','~','^','|',':',27h,'-','='
- ;dummy label
- lup2::
- messg::
- dw 0080h
- stack:: dw 0000h ;temp for CCP stack pointer
- chr:: db 0
- desflg::
- db false
- bptr:: dw bffer
- bffer:: ds 1000
- dtem equ $+64 ;stack space
- end
-
-
-