--------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: EA100008Date: 05/31/97 From: MERVYN BALDWIN Time: 11:07am \/To: ALL (Read 2 times) Subj: Re: fade From: Mervyn Baldwin Subject: Re: fade Hello Barry, Sorry to say that this letter and code wasn't from me. I don't know (yet) whether it works - I'll try it later. So I don't know for sure that it IS the fadeup routine it looks like. [P.S. Tried it. Doesn't work! "Mine" does.] >Hello Mervyn, > >===cut=== >;FADE. From PC magV4#12p296. (UK Edition) >;Translated from DEBUG script to A86. >;Fades VGA screen. Recover by setting mode. >;posted by Mervyn Baldwin (vyn@abaldwin.demon.co.uk) 28-May-97 >;added keypress check and restore mode3 by Barry Block 29-May-97 >;removed delay loops and added fade in. B Block 29-May-97 > >mov dx,offset buf ;to hold reg values >call init_buf >mov dx,offset buf2 ;to save reg values >call init_buf >mov cx,40h > >L1: >push cx >mov cx,0C0h ;192 color registers? >mov si,offset buf > >L2: >cmp b[si],0 >je >L3 >dec b[si] > >L3: >inc si >loop L2 > >call set_regs etc.... Here's what I have. I guess it, like fade, came from Vic Oliver's column in PC Magazine. ;-------------------------------------------------------------- ;FADEUP. If screen has been faded out (FADE.8) ; will fade it up again. Faulty. D86, for example ; doesn't display unless MODE has been used. ;Don't understand what is happening at uncommented ; part of source. ;Fadeup is rather fast as it stands. MOV AH,3 ;Get cursor position & shape INT 010 PUSH DX ;save cursor position MOV AH,0F ;get AL=current display mode INT 010 OR AL,080 ;disable CLS XOR AH,AH ;set display mode=AL INT 010 MOV AX,01017 ;read block colour regs MOV CX,040 ;#blocks to read (from 0) MOV DX,offset buffer ;store results INT 010 POP DX ;get cursor position MOV AH,2 ;set cursor position INT 010 MOV DI,offset buffer2 ;fill buffer2 with zeros XOR AL,AL ; MOV CX,0C0 ; REP STOSB ; CALL setter MOV CX,040 L1: PUSH CX MOV CX,0C0 MOV SI,offset buffer L2: MOV AL,B[SI+0C0] CMP AL,B[SI] JAE >L3 INC B[SI+0C0] L3: INC SI LOOP L2 CALL delay CALL setter POP CX LOOP L1 exit: MOV AX,04C00 INT 021 delay: ;waits for vertical trace MOV DX,03DA ;status reg. RO. CRT controller L4: IN AL,DX TEST AL,8 ;loop until bit3 set then safe JE L4 ;to access for 1.25ms. RET setter: MOV AX,01012 ;set block of colour regs XOR BX,BX ;from reg 0 MOV CX,040 ;64 regs MOV DX,offset buffer2 ;store them here INT 010 RET buffer: db 0c0h dup(?) buffer2: ;-------------------------------------------------------------- >Wow! I had no idea the buffer was this big. It took hours for me to find >out what the problem was when this did not restore the screen correctly. >192 color registers * 64 something registers. I hope my version works better for you. >I have a lot to learn about vga. Don't we all? -- vyn@abaldwin.demon.co.uk | The home of Net 346 Services --- * Origin: (1:346/100) --------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: EA100009Date: 05/31/97 From: MERVYN BALDWIN Time: 11:37am \/To: ALL (Read 2 times) Subj: Re: Just a quick one :) From: Mervyn Baldwin Subject: Re: Just a quick one :) > >John meinte am 22.05.97 >zum Thema "Just a quick one :)": > >>How do I put the screen in 80x50 text mode with inline ASM on a TP7 program > >Try this one: > mov ax,1112h XOR BL,BL ;<----------------------- > int 10h > mov ax,4c00h > int 21h To be safe you need the xor bl,bl before the INT 10h and even then it'll only work if you are in 25x80 mode when you run it. Needs lots more work if in some other mode. These's a thread called 50 Lines (I think) where I have posted the code - but still some people seem to have trouble. -- vyn@abaldwin.demon.co.uk | The home of Net 346 Services --- * Origin: (1:346/100) --------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: EA100010Date: 05/31/97 From: MERVYN BALDWIN Time: 11:54am \/To: ALL (Read 2 times) Subj: Re: TIMER TUTORIAL From: Mervyn Baldwin Subject: Re: TIMER TUTORIAL Benjamin, > BLM> ...tutorial for the Programmable Interval Timer...? > MB> Can type you in some stuff from my notebooks if that'll help. > > Sounds like alot of work, we'll call that the last resort ok. etc.... >*If it's not worth doing, it's not worth doing well. EXACTLY!!! If you need it I'll do it. There's about 3 pages of handwritten notes. It'll take maybe an hour which might seem a lot to busy-folks but I'm retired and though I seem to have lots to do I can find time to help out a fellow pooterer if need be. So mail me if you need it. -- vyn@abaldwin.demon.co.uk | The home of Net 346 Services --- * Origin: (1:346/100) --------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: EA100011Date: 05/26/97 From: MARCOS VIANNA Time: 08:22pm \/To: ALL (Read 2 times) Subj: win32s13 Please... , can anyone send me by attach win32s1.3 or later ? pleeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeease :) E-mail: marcos.vianna@anglobbs.ccc.br thanx! ... Mulher adora discusso, mesmo que no saiba o que est discutindo. --- FMail/386 1.22 * Origin: Mosca BBS (Campinas, SP) +55 19 252 7891 (4:801/178) --------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: EA100012Date: 05/30/97 From: JERRY COFFIN Time: 06:22pm \/To: PHIL QUINTON (Read 2 times) Subj: Basic Intepreter Problem On (26 May 97) Phil Quinton wrote to All... PQ> First problem. How do I evaluate an expression. Ideas would be PQ> good. PQ> e.g. PQ> 10 A=20+10 PQ> I can remove the 10 and decode it from text and bung it somewhere. I PQ> can get the rest and store it. How do I go about decoding it. Do I PQ> first search for simbols such as = first, then pass the right hand PQ> side to a procedure that then searches for commands, finding the + as PQ> one and so passes the left and right hand sides to a procedure to a PQ> ADD procedure? Generally you do this with what's called a recursive descent parser. The general idea is that you have set of functions that are written with the same general structure as the precedence of the operators involved. I.e. you have a top level procedure that does the lowest level operations such as assignment. It calls lower level functions to get higher and higher precedence items until you get to the highest precedence item, which basically just reads in a variable name, a function name or a parenthesized expression. If it reads in a parenthesized expression, it calls the top level procedure to evaluate that, and then returns the value of the entire expression as a single item. Later, Jerry. ... The Universe is a figment of its own imagination. --- PPoint 1.90 * Origin: Point Pointedly Pointless (1:128/166.5) --------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: EA100013Date: 05/31/97 From: JERRY COFFIN Time: 09:37am \/To: TOM ST DENIS (Read 2 times) Subj: 3d Math On (29 May 97) Tom St Denis wrote to Jerry Coffin... JC> Hmm...tricky? How does an addition and possibly a subtraction JC> count as "tricky"? TS> Yeah, well you have to know the formulas... This is true. TS> Ah, gimme a break, I am in grade 9 math and I just started to learn TS> this stuff. Well now, in fairness when I was in ninth grade it would have qualified as closer to "magic" than merely tricky, at least to me... TS> (BTW, using a lookup table like that isn't the best, try a 32.32 fixed TS> point math...) That's one way of doing things. However, a lookup table IS generally faster. One possibility is to use a lookup table with linear interpolation to allow a comprimise between accuracy, speed, and lookup table size. Later, Jerry. ... The Universe is a figment of its own imagination. --- PPoint 1.90 * Origin: Point Pointedly Pointless (1:128/166.5) --------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: EA200000Date: 05/23/97 From: OSCAR RODRIGUEZ PARRA Time: 12:18pm \/To: BARRY BLOCK (Read 2 times) Subj: implode (cls) Hi Barry! BB> Hello all, I saw a shareware implode screen (cls) using way to many BB> bytes, so I tried to see what I could do. This is a first, maybe last BB> draft :-) BB> One problem is, a single timer tick is too long. BB> What else can I use as a timer so that the speed is the same on all BB> machines? The vertical u horizontal retrace of VGA registers. So you can use it to sync. the cls with the same time in all computers. If you want, I can tell you how you can do it. Saludos de Oscar. e-mail: orp@santuario.subred.org http://www.geocities.com/SiliconValley/Heights/1238/ --- FMail/386 1.02 * Origin: Dios existe, creedme. (2:341/44.17)