X-Google-Language: ENGLISH,ASCII X-Google-Thread: 105a39,d48796261300908b,start X-Google-Attributes: gid105a39,public X-Google-Thread: 111659,d48796261300908b,start X-Google-Attributes: gid111659,public X-Google-Thread: 11507b,d48796261300908b,start X-Google-Attributes: gid11507b,public X-Google-Thread: 113e84,d48796261300908b,start X-Google-Attributes: gid113e84,public X-Google-Thread: 100a3b,d48796261300908b,start X-Google-Attributes: gid100a3b,public X-Google-Thread: fa148,d48796261300908b,start X-Google-Attributes: gidfa148,public X-Google-Thread: f996b,d48796261300908b,start X-Google-Attributes: gidf996b,public X-Google-Thread: 10bb54,d48796261300908b,start X-Google-Attributes: gid10bb54,public From: rybread@cshore.com (Rybread Celsius) Subject: Beyond Lost 1/1 Date: 1997/02/01 Message-ID: <5cvt4v$t0f@beast.connix.com> X-Deja-AN: 213745094 organization: Connix - The Connecticut Internet Exchange newsgroups: alt.2600,alt.philosophy,comp.lang.pascal.borland,alt.ascii-art,alt.fan.cult-dead-cow,alt.slack,alt.punk,rec.games.video.atari,alt.zines "We fight a battle [-------------------------] everyday & everyday ] -=Beyond Lost=- [ rybread@anok4u2.org we loose, but keep [ Number One ] www.connix.com/~rybread/ on fighting. We suck." ] "Teenage Angst Is Shit" [ beyond.html [-------------------------] What Is It? -=====================================--=====================================- If you don't know, then ask your mom and dad. Seriously. This is an e-zine for lots (lost) of different peoples. Those in the 203 scene will prolly like it or at least be able to gulp it down. Haquers, Doodle Boys, Lepers and even an occasional Warez D00d will find a moment of nice-nice in this vanilla dome. Have fun. -unix--kills--windows--dead--unix--kills--windows--dead--unix--kills--window-- Table of Contents: What is it? Table of Contents Editorial "Why `Beyond Lost': Beyond Angst" by Rybread UNI(X)fying DOS with the letter C++ by Khelbin THRST3: Using your Text Video RAM for Perverse "ANSI" Practices (Pascal Code UUENCODED) by The Hac Ripped ASCII of the Month by Rybread Interview with a Cyberlawyer: Dorsey Morrow Jr Why ASCII Strips Don't Work by Rybread Points 2 Ponder by The Masked Avacado 2600 in 203: January by Khelbin "Poor Little Aculard" a Poem About The Lame by Spy Tech Tips from Khelbin Review of cDc's 97 t-filez by Rybread Philosophy with Khelbin CONTEST: Ode to Atari Programmers Classical Children's Lit. The Minutes of 203 Next Issue and Other Notes Masthead Editorial: I came to a realization after my much troubled and depressed freshman year: Teenagers suck. What I mean is that for all are bitching, whining and "experimenting" nothing good comes from it. So the next time teenage angst came looking for me, I told it to go to hell. It told me to get lost. Now I'm beyond lost. Wasn't that poetic? Looking back at that last paragraph makes me again think of teenagers and my intolerable hatred for them, most possibly because I am one. I hate what I wrote, not the content but the style. Too bad it's mine. Enough self- reflection. Emotion is something that I seem to lack, except in sporadic bits of pain and pleasure that happen during a moment. During a moment may sound like the present but is most defiantly the past. A tough idea to fathom? Maybe. I don't get depressed anymore for than 5 seconds at a time, it succumbs to this new feeling of hollowness, which I identify with being beyond lost. Will I always be lost? That�s the very reason I hate teenagers with all there, "My parents are divorced", "I shoot up heroin", "All my friends suck", whineologies. Teenage angst should never be pitied, it should raise anger. The thing is that 99.99% of what most teenagers do is totally pointless and doesn't make a difference and they�ll denounce most of their choices and beliefs once they are "grown up". When your beyond lost, it takes so much effort just to get to the point of simply being lost, but you'll prolly get out of it as soon as you conform or grow-up. As if there is a difference. Hmm. I reflect back at what I wrote and realize that this idea is just too much for me to put down in words at this moment, but it is most defiantly real. Too make it simple: I've seen the world, and man in particular, through my own tainted view and have acknowledged it as such. I don't find anything at the root level of mankind to be "there" enough for me to show more emotion or expression then one can muster from the expansion of the moment. Nothing makes me really happy or sad, no extremes. I miss the extremes. Perhaps being hollow or empty is a form of depression, but if this is so, there is most defiantly a schism going on between them and modern man. If your empty your not depressed, I swear. It can be confused with depression but it lies in its own glorious realm of pain. One last example. A friend of mine, whom I believe is also beyond lost, had an abortion. Boohoo, right? Not really. To get it out of the way, no I'm not the father you yucky minded people. Was this a sob story? No. The pity people gave her, she used either as survival, playing off it, or totally dismissed it. I did not pity her after the first moment of my knowledge. Moments can be dangerous. We named the fetus and played games with it and made jokes, and not to cover up uneasiness, but because we did. That's are identity, more true in public charades then we can feel in are solitude. Then she had the abortion and it was other, she didn't cry and I believe it when she says she doesn't harbor any hidden sadness agenda [Sadness Agenda? Sounds like a Smashing Bumpkins song!] or whatnot. I never felt bad about it or the games, it was occupation in a dull world. I miss the extremes. I did feel bad however, I think I did anyway. I didn't feel bad about what I had done, I felt bad about how I should of felt for what I have done. So I emulated the pain, or the "feeling bad". Well, emulation is used a lot, and very well in are race, defiantly to a potion where most are ignorant of it. What I did above most people do, but hide it so much. I define emulation as artificial means to getting the real thing or a reasonable facsimile. We don't love, hate, shame, or anything anymore, except during those dangerous moments that soon leave. We emulate are emotions, we are becoming machines. You shouldn't make fun of people who practice self-mutilation, pain is a very real thing and it can make a moment linger, a very hard trick to do. Cause when the moment fades your left with a memory, that can be fuel for the emulation process, but itself a very poor imitation. So in summary, most are already beyond lost but find their way back in the falsehood of familiarity known as conformity. The rebellion gene, like a match, bursts into a furious uproar for a short time, the teenage years, and quickly dies down with only a few cherry embers left. A few can keep lighting matches, and these are the people that don't exist. Well, enough philosophy for right now. So what will Beyond Lost be about? I'd like to make into an omniscene e-zine for 203/860. So that means, humor, computer stuff, phracking, music, art, and coding. Just remember who you are and how much it hurts to be a thinking machine, if you let yourself really think. Pain be good gumbo. :) Rybread Celsius aka The Child aka DayEight "So many handles, such a little memory!" """""""""""" -----------------------------------="""""""""""" <--- Toothbrush UNI(X)fying DOS with the letter C++| by Khelbin" -----------------------------------="""""""""""" I know some people have been asking about running UNIX but they don't want to give up DOS and they say they can't find WABI or SoftWindows and they don't have money to pay for those programs and blah blahabalah... Well here's another alternative. Go to http://cccsat.sorostm.ro/pub/simtelnet/gnu/gnuish/ms_sh and you can get a unix-like shell for DOS and some unix-like programs that run in DOS. It's nothing compared to real unix but maybe it's a place to start. Also, I wrote a cheesy little lpr program in C. It works find on my printer but I seriously doubt it would be great for the masses (I wrote it cuz there was no lpr in those unix-like utilities). Well, here it is if you want: #include #include void prn(char *argv); void frmt_pg(void); int main(int argc, char *argv[]) { if(!(argc == 2 || argc == 3)) { printf("\nUsage: lpr [-e] \n"); exit(1); } /* I should have used pointer notation to throw off any new C programmers :) */ if(argv[1][0] == '-') { prn(argv[2]); fputc('\x0C',stdprn); } else prn(argv[1]); return 0; } void prn(char *argv) { FILE *fptr; char buff[81]; int lcnt=0; if( (fptr = fopen(argv,"r")) == NULL) { printf("\nCould not open file %s\n",argv); exit(1); } frmt_pg(); while( fgets(buff, 80, fptr) != NULL) { fputs(buff, stdprn); putc('\r',stdprn); if(++lcnt == 58) { n_pg(); lcnt = 0; } } fclose(fptr); } void frmt_pg(void) { int i,j; for(j=0;j<4;j++) { for(i=0;i<81;i++) fputc(' ',stdprn); fputc('\r',stdprn); } } void n_pg(void) { int i,j; for(j=0;j<4;j++) { for(i=0;i<81;i++) fputc(' ',stdprn); fputc('\r',stdprn); } frmt_pg(); } Feal free to modify it. I wrote it in 5 minutes and then debugged it in another 5 minutes so I'm sure it's nothing great. The n_pg() and frmt_pg() functions do a little formatting that's probably specific to my printer. I'm not sure.. I really don't know much about printers since I've only had one for about three weeks now but if you print something more than one page on mine, when it starts printing on the next page, it loses about 2 lines of text (this is when doing a simple "type > PRN". Here's something that goes good with that little notice about UNIX utilities under DOS: In continuing with making DOS look more UNIX-like (really, get the shell and utilities I told you about if you can't give up DOS), here is a man program for DOS which I whipped up. This time it took me even less time and I'm not a great coder so I'm sure there's improvements but it works. #include #include #include #include /* Change this to the path to your man pages */ #define MANPATH "c:\\usr\\local\\man\\" /* Change this to the extensions on your man pages */ #define MANEXT ".man" void main(int argc, char *argv[]) { FILE *fptr; char count=0; char buff[81] = MANPATH; char *file_ext = MANEXT; if(argc != 2) { printf("\nUsage: man \n"); exit(1); } strcat(buff,argv[1]); strcat(buff,file_ext); if( (fptr=fopen(buff,"r")) == NULL) { printf("\nman: no man entry for %s\n",argv[1]); exit(1); } while( (fgets(buff, 80, fptr)) != NULL) { fputs(buff,stdout); if(++count == 21) { printf("\n--More\n"); count = 0; if(getch() == 'q') exit(0); } } } If you have access to a UNIX box, you can borrow their man pages. Unfortunately, if you do a "man > " you will get a bunch of escape codes in there. You can easily circumvent this by piping it through col. Exmaple: man diff | col -b > dif.man. You'll probably want to put in linefeeds for dos too right now. On connix the program to do this is called bsd2dos and most boxes have some type of program to do this. Here's a finalized example so you don't get pissed because you have to think: man diff | col -b | bsd2dos > diff.man If you know sed, you can filter the control shiz out that way too. Also, through Altavista, I have been able to find a version of Awk, gzip, gunzip, vi, uuencode, uudecode, and sed for DOS. [The version of C I got also comes with the god of Unix commands, grep!] Pretty soon your computer will be quite mutated. oh, the MS-SHELL I mentioned can be very usefull although it does have one bug that I discovered. When exiting my TC++ IDE, my computer will hang. Also, batch programs run a lot slower and if there is a directory with tons of files, the ls program sucks. Nevertheless, it has many advantages also and you can easily just type exit and you're back in DOS. /* rm2.c compile with "gcc -o rm2 rm2.c" I know this is quite lame but it could come in handy for someone who would like to delete a file which they have write access to and is owned by another user and resides in a world writeable directory with the sticky bit enabled (like /tmp). It actually doesn't delete a file, but resets the file to 0 bytes, destroying any data previously in the file. Note: File deletion is based on the current directories permission, not the files mode itself. In this aspect, the sticky bit is useful for files with correct permissions. */ #include #define MAX 80 /* increase for large filenames */ int main(int argc, char *argv[]) { FILE *fptr; if(argc != 2) { printf("\nUseage: rm2 \n\n"); exit(1); } if( (fptr = fopen(argv[1],"w")) == NULL) { printf("\nCannot remove file %s\n\n",argv[1]); exit(1); } printf("\nFile %s has been destroyed\n\n",argv[1]); } /* Oh yea, I forgot that you could just do a wc -l on the file, vi it, and then just ndd it and then save it (where n is the number of lines wc reported). oh well.. if you're in this area code you probably don't gno how to use vi anyways and would prolly just pico it and then block the whole file and kill the block and then save so I guess this would save you a lot of time after all. [Isn't he cute folks?] The lesson to learn here is that the sticky-bit is not some god-like permission that will keep your files safe. Vorrect file permissions should always be present. Not that this hasn't been known for some time but rybread needed more stuff for his e-mag and I wasn't about to let that space be filled with ANSI art or shit like that! :) [ANSI? Never, though maybe an ASCII...] */ --- /* Ok, so I was sick of not generating any good code for you and just getting something that "worked" so heres an addition to that shell for DOS that I'd say *is* good code and optimized. Since cls isn't a DOS executable, when you load up the UNIX shell for DOS, you have no way to clear the screen. The utilities package don't have a clear program either so I wrote this one. I know it'd be easier to use the clrscr() function but I think this might run faster than that. Anyways, I was bored and felt like I had to stop writing rinky-dink code */ #include #include void main(void) { union REGS regs; register i; int far *vramptr; vramptr = (int far *)0xB8000000; /* change to 0xB0000000 if you have a */ /* text-only monitor */ for(i=0;i<2000;i++) *(vramptr + i) = 0x0700; regs.h.ah = 2; regs.h.dl = 0; regs.h.dh = 0; regs.h.bh = 0; int86(0x10,®s,®s); } -khelbin / 9x email: khelbin@connix.com [NOTE: uuencoded files at the end of this version of the tutorial!] ------------------------------------------------------------------------------ ��� � � ��� � � ���� ���� �� �� (oooh, that � ��� �� ���� ���� � ��� BGI look!) � � � ��� � � � � ��� �� ��������۲�� ������۲��������۲��۲���������۲�� ���������۲�����۲�����۲�� ����۲���۲������۲���۲��������۲�۲����۲����۲�����۲�����۲������۱���۲�� ��������۲������۲�����۲�����۲���۲����۲����۲�����۲�����۲����۲��۲�۲�� ����۲�۲�� �����������۲�����۲���۲����۲����۲�����۲�����۲����۲�����۲�� ����۲���۲�����۲�����۲�����۲���۲���������۲�� ���������۲�����۲�����۲�� �������۲�����۲���۲���������۲�� ��������۲���������۲����������������۲�� �����۲�� ����۲���۲�����۲���۲� ����۲�����۲�� ����۲������۲�� �����۲������۲���۲���������۲�� ����۲���������۲�����۲������۲�� ����۲�����۲���۲�����۲���۲�����۱����۲�����۲�� ����۲������۲�� �������۲�� �������۲����������۲�� ��������۲����������۲��������۲���۲�� tutorial! ------------------------------------------------------------------------------ Covering everything and nothing concerning programming and classic true hacking completely at random. ------------------------------------------------------------------------------ -=- Episode 3 -=- Using your Text Video RAM for Perverse "ANSI" Practices (or, using the VGA card to scroll big pictures) -=- 01-27-97 08:21pm -=- ------------------------------------------------------------------------------ This crap AGAIN?? Doesn't he LEARN not to write these things? Nope. Anyways, here's sort of a continuation of our last little jaunt into programming land. This time, we'll go over using the 64k of text mode video memory in everyones video card to do some good old fashioned scroll'n. Consider this: This is video memory at $B800... �� ����������������������Ŀ ķ One Ķ � PAGE 0 � �� 4000 bytes, or ONE 80x25 text screen 80x50 � ����������������������Ĵ Ľ text � � PAGE 1 � Page 0 starts at $B800:0000 screen �� ����������������������Ĵ Page 0 ends at $B800:3FFF 8000 bytes � PAGE 2 � Page 1 starts at $B800:4000 ����������������������Ĵ " 1 ends at $B800:7FFF � PAGE 3 � " 2 starts at $B800:8000 ����������������������Ĵ and so on... � � | and so on... | (There should be 16 of these pages...or � � 8...I forget...find out for yourself...) (4000 bytes for an 80x25? Yup. 2 bytes per character...char and attribute...((80*25)*2)...) Building on what we learned last time, we can stow our binary text image at $B800:0000, since VGA text modes are, under normal conditions, defaulting to page 0... Every 100% compatable VGA card can move it's internal "where do I start" pointer to wherever you want in the $B800 segment...this is how we do our scrolling...we can take an 80x100 ANSI, and use the pseudo-socially-acceptable TheDraw program to convert that bastard ANSI into binary format...you should have a 16000 byte binary dump now. BINOBJ that bastard, move the image with a swift "move(@yourimagehere^, mem[$B800:0000], 16000)" to the jaw...from here, you need to access the video offset register. Code to do this is included in BIGBOOTY.PAS, of course. It's straightforward assembler...don't get too confused now. We sync to the VSYNC in there to smooth things out...I'd recommend NOT including it in there, and sticking it in manually, but hey, thats YOUR perogative. You feed the register (or the procedure in this case) an OFFSET into the video ram...so, if we wanted to flip between page 0 and page 1, we can do this: setoffset(4000); {page 1} setoffset(0); {page 0} You can do some nifty tricks with just that for some cheap high-speed text mode animations...double buffered text mode game...not to shabby...try it. NOW....GODDAMN YOU!! WRITE IT!!! COME ON!! ABUSE ME!!!!!!! WHAAAAAAAAAAAAAAAA............. Anyways...to SCROLL downward, we can do this: {------------} var y:byte; begin put_that_bitch_ansi_into_video_memory; for y:=0 to 99 do setoffset(y*80); end. {------------} And off it goes...kind of makes a tear fall into my beer......*sigh*...oh well... So...in the end: EXAMINE THE PROCEDURE...it's mostly assembler...KNOW WHY IT WORKS...and for GOD SAKES STOP TOUCHING ME THERE! -- The Hac hac203@geocities.com 01-27-97 08:44pm L EEE TTTTT TTTTT H H EEE CCC O DD EEE Begin L E-- T T HHH E-- C O O D D E-- Begin LLLL EEE T T H H EEE CCC O DD EEE Begin -----BIGBOOTY.PAS---[START]------------------------8<-------------------- { We'll load an 80x100 text block and pan from the top to the bottom.... Feel free to gimp this code for your own uses. -- TAD } var y :word; {��������������������������������������������������������������������������} procedure bigansi; External; {$L BIGANSI.OBJ} {Our "ANSI"...} {��������������������������������������������������������������������������} {This waits for a vertical retrace to reduce snow on the screen and perform a simple timing function..."makes things smooth"} Procedure VSinc; Assembler; Asm mov DX, 3DAh @@l1: In AL, DX And AL, 08h jnz @@l1 @@l2: In AL, DX And AL, 08h jz @@l2 End; {��������������������������������������������������������������������������} Procedure setoffset(Saddr : Word); VAR lb , hb :byte; Begin lb:=hi(saddr); hb:=lo(saddr); vsinc; ASM MOV DX,3D4H MOV AL,0DH MOV AH,[HB] OUT DX,AX MOV AL,0CH MOV AH,[LB] OUT DX,AX End; End; {��������������������������������������������������������������������������} Begin move(@bigansi^, mem[$B800:0], 16000); {move(@bigansi^, mem[segB800:0], 16000); for protected mode use} readln; {wait for some input} for y:=0 to 99 do begin setoffset(y*80); end; {scroll that puppy} setoffset(0); End. -----BIGBOOTY.PAS---[END]--------------------------8<-------------------- continued next message peace___anarchyfreedompunkinteractivefictionslackantiinfinityyellowoi!2o3. / -\--- Rotund \/ ! "Live long & | rybread@connix.com (/ ) Pigeon \00_| fuck off!!" |Its always after MidNite \o-o/ _||_ Riot Nrrrd | www.connix.com/~rybread