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.