Libraries
ZXNet echo conference «code.zx»
From Mihail Zharov → To All 11 April 2001
Hello All!
Then they started chatting about the subject.
I would suggest to start by settling the trail. p/n:
(IMHO, every library starts with them...)
;************************************************
;CALCULATE THE ADDRESS ON THE SCREEN BY COORDINATES
;SIGNAL(#0): X31, Y23
;************************************************
; in: h - X-coordinate (0-31)
; l - Y-coordinate (0-23)
;out: hl - address on screen
;************************************************
;CALCULATE THE ADDRESS ON THE SCREEN BY COORDINATES
;(#1): X255, Y23
;************************************************
; in: h - X-coordinate (0-255)
; l - Y-coordinate (0-23)
;out: hl - address on screen
;************************************************
;CALCULATE THE ADDRESS ON THE SCREEN BY PIXEL
;COORDINATES(#2): X255, Y191
;************************************************
; in: h - X-coordinate (0-255)
; l - Y-coordinate (0-191)
;out: hl - address on screen
;************************************************
;CALCULATE THE ADDRESS ON THE SCREEN ONE PIXEL BELOW
;************************************************
; in: hl - address on screen
;out: hl - address one pixel higher
;************************************************
;CALCULATE THE ADDRESS ON THE SCREEN ONE PIXEL HIGHER
;************************************************
; in: hl - address on screen
;out: hl - address one pixel higher
;************************************************
;CALCULATION OF ADDRESS IN SCREEN ATTRIBUTES BY
;COORDINATES OF THE PLACE:
;************************************************
; in: h - X-coordinate (0-31); l - Y-coordinate (0-23)
;out: hl - address in the attributes area
;************************************************
;CALCULATION OF ADDRESS IN SCREEN ATTRIBUTES BY
;ADDRESS ON SCREEN:
;************************************************
; in: hl - address on screen
;out: hl - address in the attributes area
Does anyone have any quick options? Share. The mouse is yours! ;-)
Happy connections, All...
From Wladimir Bulchukey → To Mihail Zharov 13 April 2001
Greetings, Mikhail!
11 Apr 01 20:15, Mihail Zharov -> All:
MZ> I would suggest to start by settling the trace. p/n:
MZ> (IMHO, any library starts with them...)
MZ> ;************************************************
MZ> ;CALCULATION OF ADDRESS ON SCREEN BY COORDINATES
MZ> ;SIGN(#0): X31, Y23
MZ> ;************************************************
MZ> ; in: h - X-coordinate (0-31)
MZ> ; l - Y-coordinate (0-23)
MZ> ;out: hl - address on screen
Well, let's just say, for the lazy :-)) there is a procedure in ROM: #0E9E.
Input: in the accumulator - Y coordinate in familiar places.
And for those who are not lazy :)) this cheat sheet will help
by video memory device:
H L
0 1 0 T T P P P S S S X X X X X
_____ ___ _____ _____ _________
TT - screen third number (from top to bottom; 0...2);
PPP - pixel number within the familiarity (from top to bottom; 0...7);
SSS - line number in familiar places in thirds (from top to bottom; 0...7);
XXXX - X coordinate in familiar places (from left to right; 0...31).
The task, therefore, comes down to selecting the bits of the specified elements
from XY coordinates and placing them in the required digits :) .
With the best -
Wlodek. mailto: wlblack@chat.ru http://www.wlodeks.boom.ru[ZX] [Golyanovo] [Radio "Retro" 72.92 MGc]
From Evgeny Goljakov → To Mihail Zharov 15 April 2001
Hello Mikhail.
Wed 11 Apr 01 Mihail Zharov -> All:
MZ> I would suggest to start by settling the trace. p/n:
I would like to first establish a single type of registration
MZ> Who has any quick options? Share.
This is what I want to put into the semantic basis of the library,
i.e. sorting algorithms that solve the same type of problem,
by speed/size.
Healthy competition among authors, periodic publication
in ZX-media encoder ratings, continuous improvement
algorithmic solutions and their implementations, and most importantly
skills of coders on ZX.
But first, I suggest the appearance of the header:
====source header mask====
Autr:Pushkin A.S./Extreme group 2:5050/3421.1
Date:01/01/2001
Name:suPerPrint(8*8)
Assm:STORM
Info:
The procedure for printing text in 8*8pix format,
according to familiarity, sometimes it formats C: (very rarely).
Size:100 bytes ;size of item before work (AsIs)
Memo:341 bytes ;size of p/n when working (install+buffers+vars)
Takt:80;86;93 takts ;it is advisable to indicate the range if
there are many options; otherwise everything (80;86;93)
IN:
A=character code
H=X [0-32]
L=Y [0-24]
OUT: -
Unpb: ;unpublished commands & hex-codes
LD HX,#NN = #fd3fNN ;undocumented commands and their HEX codes
LD LX,A = #dd32
SLS A = #CB6A
SLS B = #cb70
═════════I haven’t thought of the rest yet...Constructive statements with reasoning are desirable.
Thank you for your attention.
From Dmitriy Nesmachny → To Evgeny Goljakov 15 April 2001
Hello, Evgeny!
Sunday 15 Apr 2001 02:29:36, Evgeny Goljakov -> Mihail Zharov:
EG> But first, I suggest the appearance of the pp header:
EG> ====source header mask====
This is where you need to insert the line:
Syscode: #XXXX
which will be filled in automatically on the server and contain the path to
procedure. That is, the purpose of the procedure, let’s say we divide all procedures into 16
groups: mathematical, printer, modem, music, working with the screen, archiving,
and so on. These will be the most significant 4 bits of the partition code. Each of these sections
breaks into several more sections, these are lower bits, etc. it might
will be needed to process the request on the server. Or simply enter instead
line:
PATCH: SCREEN/PRINT/SYM32
EG> Autr:Pushkin A.S./Extreme group 2:5050/3421.1
EG> Date:01.01.2001
EG> Name:suPerPrint(8*8)
EG> Assm:STORM
EG> Info:
EG> Procedure for printing text in 8*8pix format
EG> according to familiarity, sometimes formats C: (very rarely).
EG> Size:100 bytes ;size of item before work (AsIs)
EG> Memo:341 bytes ;size when working
EG> (install+buffers+vars)Here it is necessary to describe the buffer: possible addresses (how to align),
the ability to use between calls to a procedure (for example, if it
the last control character is remembered (like AT, TAB, etc.), then between
calls to a procedure cannot use a buffer if the buffer contains
addresses of the beginning of screen lines, you cannot use a buffer, but you can use
to calculate the position on the screen, so you need to indicate that such a resource exists in
procedure, focus attention on it. And if in this buffer there is
the symbol is processed (doubling the thickness, tilting, something else
such), then nothing necessary is stored in the buffer and this buffer can be
use in some procedure that does not use printing. In general,
specify the range within which the buffer should remain untouched. Also
and with variables.
EG> Takt:80;86;93 takts ;it is advisable to indicate the range if
EG> there are many options; otherwise everything (80;86;93)
EG> IN:
EG> A=character code
EG> H=X [0-32]
EG> L=Y [0-24]
EG> OUT: -
EG> Unpb: ;unpublished commands & hex-codes
EG> LD HX,#NN = #fd3fNN ;undocumented commands and their HEX codesEG> LD LX,A = #dd32
EG> SLS A = #CB6A
EG> SLS B = #cb70
EG> ═════════I haven’t thought of the rest yet...
EG> Constructive statements with argumentation are desirable.
Well, I don’t know how I could...
Best regards, Dmitriy.