Re: USRx() and adding more parameters?

Sean Conner via Coco <coco-uNHYcr1XS/wmlAP/[email protected]>
Newsgroups gmane.comp.hardware.tandy.coco
Message-ID <[email protected]>
It was thus said that the Great Allen Huffman via Coco once stated:
> The BASIC ROM has the USR function:
> 
> DEF USR0=&H3F00
> 
> A=USR0(42)
> 
> It accepts one parameter.
> 
> Since it jumps from BASIC into the USR assembly, couldn’t that code just
> parse a “,” and more numbers, allowing it to accept whatever needed to be
> passed in?
> 
> A=USR0(1,2,3,4)

  Attached is another proof-of-concept.  This implements a USRn function
that draws a pattern (8x8, based on early Mac background patterns) on the
screen in a given area, and cycles through 38 such patterns when you hit a
key.  It works best in PMODEs 0, 2 or 4.  The critical line is:

	110 X=USR0(P),(65,49)-(190,142)

The first parameter is the pattern #, then a comma, then the upper left
corner, then the lower right corner of the area to draw the pattern, using
the code BASIC uses to parse the LINE command.  Looks weird, but it works.

  -spc


-- 
Coco mailing list
Coco-uNHYcr1XS/wmlAP/[email protected]
https://pairlist5.pair.net/mailman/listinfo/coco
pattern.bas (text/plain, 2.5 KB)
1 DATA50,120,189,179,237,16,131,0,38,16,36,54,174,88,73,88,73,88,73,195,126,208,31,1,52,16,189,178,109,189,147,143,158,189,156,195,35,8,220,195,30,16,159,189,221,195,158,191,156,197,35,8,220,197,30,16,159,191,221,197,150,182,129,4,39,4,4,190,4,196
2 DATA129,2,36,4,4,192,4,198,53,16,51,228,214,190,196,7,134,8,52,6,230,128,166,97,39,8,84,36,2,202,128,74,38,248,231,192,106,228,38,236,53,6,49,141,0,189,166,165,151,205,67,151,207,49,40,214,196,196,7,166,165,151,206,67,151,208,150,198,144,192,76
3 DATA151,209,220,195,147,189,195,0,1,221,210,158,186,150,185,214,192,61,48,139,214,190,84,84,84,58,214,190,196,7,79,211,210,16,131,0,8,46,15,150,205,154,206,151,205,67,151,207,220,210,221,214,32,13,214,190,196,7,231,226,198,8,224,224,79,221,214
4 DATA134,8,151,203,51,228,220,210,221,212,15,204,166,132,148,205,167,132,166,196,148,207,170,132,167,132,220,212,147,214,221,212,220,212,16,131,0,8,45,16,131,0,8,221,212,214,204,92,166,196,167,133,215,204,32,232,220,212,39,19,43,17,214,204,92,166
5 DATA133,148,206,167,133,166,196,148,208,170,133,167,133,214,185,58,51,65,10,209,39,6,10,203,38,170,32,162,50,104,57,0,128,192,224,240,248,252,254,127,63,31,15,7,3,1,0,0,0,0,0,0,0,0,0,34,0,136,0,34,0,136,0,34,136,34,136,34,136,34,136,85,170,85,170
6 DATA85,170,85,170,170,0,170,0,170,0,170,0,85,85,85,85,85,85,85,85,17,34,68,136,17,34,68,136,119,119,119,119,119,119,119,119,78,207,252,228,39,63,243,114,127,239,253,223,254,247,191,251,0,119,119,119,0,119,119,119,0,127,127,127,0,247,247,247,127
7 DATA255,255,255,255,255,255,255,127,191,223,255,253,251,247,255,125,187,198,187,125,254,254,254,7,139,221,184,112,232,221,142,170,95,191,191,170,245,251,251,223,175,119,119,119,119,250,253,255,128,128,158,158,158,158,128,255,255,255,255,255,255
8 DATA255,255,127,255,247,255,127,255,247,255,119,255,221,255,119,255,221,255,119,221,119,221,119,221,119,221,85,255,85,255,85,255,85,255,0,255,0,255,0,255,0,255,238,221,187,119,238,221,187,119,0,255,255,255,0,255,255,255,254,253,251,247,239,223
9 DATA191,127,85,255,127,255,119,255,127,255,0,127,127,127,127,127,127,127,247,227,221,62,127,254,253,251,119,235,221,190,119,255,85,255,191,95,255,255,251,245,255,255,252,123,183,207,243,253,254,254,127,127,190,193,247,247,235,28,239,223,171,85,0
10 DATA253,251,247,136,118,112,112,136,103,7,7,255,247,235,213,170,213,235,247
11 CLEAR200,32142:FORA=32143TO32767:READB:POKEA,B:NEXT:DEFUSR0=32143
100 PMODE4,1:SCREEN1,0:COLOR0,1:PCLS:P=0:LINE(64,48)-(191,143),PSET,B
110 X=USR0(P),(65,49)-(190,142)
120 A$=INKEY$:IFA$=""THEN120
130 P=P+1:IFP=38THENP=0
140 GOTO110
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.