NewsProductsSprinterSupportDownloadSprinter ForumAbout usLinksSite map Russian site

English
   >> Software programming for the computer Sprinter
Thread views: 93 View all threadsNext thread*Threaded Mode

dirtyfly
(stranger )
2002/03/06 04:39
Screen memory location on the sprinter Reply to this post

Hi all

Any one knows what adresses are the memory locations of the screen in sprinter ? for graphic modes and 256 color

thanks



Denis ParinovVIP
(Sprinter Team)
2002/03/06 18:59
Re: Screen memory location on the sprinter new [re: dirtyfly]Reply to this post


Today, Estex DSS support four screen modes:

text 40x32 with 16 colors (mode 02h);
text 80x32 with 16 colors (mode 03h);
graph 320x256 with 256 colors (mode 81h);
graph 640x256 with 16 colors (mode 82h);

The default mode for the DSS is 80x32 text mode, if your program need
another screen mode then you need to switch it by DSS function 50h
(SETVMOD). Also before switching you should ask DSS and save current screen
mode by function 51h (GETVMOD). And when you program will be ready to
finished, restore it by 50h (SETVMOD).

for example:


LD C,51h ;get screen mode
RST 10h
LD C,A ;move mode number to register C
PUSH BC ;and save to stack BC (B - active page, C - mode)
.
. ;your program
.

POP BC ;restore mode from stack
LD A,C ;move screen mode to register A
LD C,50h ;set screen mode
RST 10h
LD C,41h ;terminate program
RST 10h


DSS has some functions for outing symbols and strings at the text screen.
But for the graphic modes you need to write it yourself.

for example:

LD HL,STRING ;pointer to the string
LD C,5Ch ;outing string
RST 10h

STRING DB "Thank you for using my program..."
DB 13,10 ;CR and LF codes
DB 0 ;End of string


For painting at the graphic screen memory, you need to set one of three
memory frames 04000h-07FFFh, 08000h-0BFFFh, 0C000h-0FFFFh. It can be made
by set value 50h to the ports 0A2h, 0C2h or 0E2h. Don't forgot about STACK
place!

for example: if you want to set one point then routine for 81h mode will
look like:

; HL - x coord
; DE - y coord
IN A,(0E2h) ;read page number
LD C,A ;move it to C (save)
LD A,50h ;page of video RAM
OUT (0E2h),A ;set it to third frame 0C000-0FFFFh
LD A,E ;Y-coord (0...255)
OUT (89h),A ;set to Y-port
LD DE,0C000h ;frame address
ADD HL,DE ;add x-coord
LD A,255 ;point color (от 0 до 255) (index to palette)
LD (HL),A ;put pixel
LD A,C ;restore page number
OUT (0E2h) ;set it


It's all. Note: Before it, you need to set required colors at the
palette.
More information about it you can read in Sprinter architecture or ask us
here.





View all threadsNext thread*Threaded Mode
Jump to