TIP: Click on subject to list as thread! ANSI
echo: z3_pascal
to: Peter Lavender
from: Ben Nolan
date: 1996-06-01 03:04:22
subject: Poetry-smooth scrolling

>   BN> Yeah, guess so.. I'll have a look for it and post it (it uses some of
>   BN> my routines i have in shared libs (my own) so I gotta extract them)
>   BN> 2nd Dowh.
>
> Thanks.. I appreciate the effort.. :)

Okay, I'll get to it. :)

>   >>   BN> Hope things go well for ya.
>   >> Indeed.. it's a rare girl that would appreciate the effort.. :)
>
>   BN> Yeah, that's what I've sadly decided. :( :)
>
> Oh I don't know now, I read in the paper about 3 weeks
> back, a girl was working at Sausage software (I think
> that's them) the did hotdog a html editor, anyway she's the
> resident whip on JAVA, and she has a comp sci degree..
>
> I'm sure she'd appreciate the effort.. after laughing at it.. :(

hahahaheheheheh... Yeah, prolly. :)

Here tis:
BIRDS.DAT is the text to be displayed in the format of a raw memory format
(up to 64k), I used a QBasic program to convert a text file to a BSV.


___-------------- begin fing ---------------------

/********************************************************************

 smooth scrolling in text mode, by Melon/DEMOBLAST, aka Ben Nolan

 use this wherever, but credit me and you'll have good luck with the
 opposite sex. :)

********************************************************************/

?include "FILE.H--"
?include "DEMOBLST.H--"
word virt1;

word line,row;
word textsize;

scrolldown()
word a,b;
{
a=12;
loop (a){
 textstart(row);
 row+=80;
 if (line>=15) line=0;
 b=15;
 loop (b){
  {at}WAITVSYNC();
  line++;
  pantext(line);
  }
 }
}


scrollup()
int a,b;
{
a=12;
loop (a){
 textstart(row);
 row-=80;
 if (line<=0) line=15;
 b=15;
 loop (b){
  {at}WAITVSYNC();
  line--;
  pantext(line);
  }
 }
}


part1()
word tog;
{
line=0;
  // line is the pan register (0-12)
  // row is the text start
textsize = readfile("birds.dat",virt1,0,64000);

copyfar(0xb800,0,virt1,7,textsize-8);


line=0;
row=0;

tog=0;

MAXKEYRATE();
do{

IF ({at}BIOSEKEYCHECK()!=0) AL={at}BIOSEREADKEY();

IF (AH==0x48) scrollup();

if (AH==0x50) scrolldown();

IF (AX==k_esc) tog=1;

}while (tog==0);
}

pantext(int offset)
 {
 DX=0x3d4;
 AL=8;
 $OUT DX,AL;

 AL=offset;
 $INC DX;
 $OUT DX,AL;
 }

textstart(int offset)
 {
 DX=0x3d4;
 AL=0xD;
 $OUT DX,AL;

 AX=offset;
 $INC DX;
 $OUT DX,AL;
 $DEC DX;

 AL=0xC;
 $OUT DX,AL;

 AX=offset;
 AL=AH;
 $INC DX;
 $OUT DX,AL;
 }

main(){
virt1=GETMEM(4096);
killgfx();
part1();
killgfx();
FREEMEM(virt1);
}



Later,
Melon
___
 þ JABBER v1.2 þ If at first you don't succeed, destroy all evidence that you tried.

--- Maximus 3.01
* Origin: Un Named BBS +644 235-8696 Official BBS of the MMCAC (3:771/1560)
SEEN-BY: 633/267 270
@PATH: 771/1560 160 772/20 712/624 517 515 711/808 50/99 635/544 727 633/267

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.