--------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: F3300006Date: 02/28/98 From: JAN WAGEMAKERS Time: 10:02am \/To: HIDASI JOZSEF (Read 1 times) Subj: INT 15h (himem source code) Hello Hidasi, Hidasi Jozsef wrote to Jan Wagemakers : JW>> INT 15 - SYSTEM - COPY EXTENDED MEMORY JW>> AH = 87h JW>> CX = number of words to copy (max 8000h) JW>> ES:SI -> global descriptor table (see #0403) JW>> Return: CF set on error HJ> Oh that's fine. but there are two problems: HJ> - I don't know why but my BIOS don't like this and always returns a HJ> CF?! HJ> - Many BIOSes don't support this, or probably they use an other HJ> funcction, however maybe I missed something... :-) Is there a Memory Manager loaded? Because EMS and XMS-managers _disable_ this function. HJ> BTW>> Where are you writeing from? I live in Belgium. Have a nice day Hidasi. - Jan Wagemakers - --- FEddy 1.1 via ifcico / Debian GNU Linux * Origin: Someone somewhere (2:292/854.19) --------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: F3400000Date: 03/01/98 From: FERNANDO ARIEL GONT Time: 05:27am \/To: BRIAN MCCLOUD (Read 1 times) Subj: micro-ops Hullo Brian McCloud, hope you are having a nice day!! 12-Feb-98 04:43:00, Brian McCloud wrote to Fernando Ariel Gont Subject: micro-ops BM> DG>But you will never find the micro-code anywhere legal, unless BM> you have lots DG>of money to give to Intel :) BM> I found a large PDF doc. file from Intel that might have it... BM> However it'll take me some time to d/l it, then sift through it BM> (over 1.5 MB). What's its name? -=> Yours sincerely, Fernando Ariel Gont <=- e-mail: FGont@siscor.bibnal.edu.ar e-mail "Good Stuff!" _*Magazine*_ : gstuff@siscor.bibnal.edu.ar FidoNet: 4:900/470.10 Sk-Network (Argentina): Murdock's Point (200:201/300.27) --- Terminate 5.00 UnReg(138) * Origin: The interdimensional point (4:900/470.10) --------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: F3D00000Date: 02/28/98 From: PETER MAGNUSSON Time: 12:05pm \/To: HIDASI JOZSEF (Read 1 times) Subj: himem source code HJ> Thanx for the file, but there's a BIG problem, i couldn't HJ> unpack it HJ> because of I haven't that kind of unpacker... :-((( Sorry man. I just posted it from SWAG, I don't got the unpacker either. Ask around or try searching for it on the internet... HJ> BTW> What programming languages do you "speak"? HJ> I speak Pascal (for Win), ASM (286), C (Just a little HJ> bit...)... /me speaks pretty well: Pascal ASM (8088 and above) /me speaks but not very well: C/C++ (really bad at it because I allways prefere the orignal [pascal] instead of the immitations [c, c++]) Javascript (but not very well because I really dislike all the sites which use to much scripts and graphics. Only makes them bad...) VBA (well, the one language that really sucks, but what can I say, if you get paid to make VBA macro's as summerjob, you don't start complaining "hey, Basic is no real language!") Well, I really don't think it's so important what languages you speak (or rather, write!) because you can learn other languages really fast when you have know one. Example: I was asked to make VBA macros for my employer. "I don't know VBA!" "Well learn!" One day later I had allready finnished several of the macros... Another example is a friend who was thinking about getting a job that including network admin and being webmaster. He had to learn Java and some other things to get the job. A few days later he was there knowing it well enough to get the job. If you know one good HLL (like C, C++ or Pascal) and one LLL (like 8088 assembly) I think you are ready for anything. What you don't know you can learn *very* fast, [peter] --- FMail 1.02 * Origin: Server*7GB* D0S.0S2.WiN USR33600 0300-13564 (2:203/253) --------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: F3E00000Date: 03/05/98 From: CHRISTIAN IVERSEN Time: 02:50pm \/To: ALL (Read 1 times) Subj: Memory Access Hi! :) I wan't to know wheater or not it is possible to write 3 bytes to memory without for example moving on byte and one word? If No then what is the fastest? Read One byte and write one DWord Write one byte and Write one Word Which of these are fastest? --- Terminate 4.00 * Origin: (2:238/52.112) --------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: F3E00001Date: 03/05/98 From: DAVE MCDONOUGH Time: 08:17pm \/To: PETER MAGNUSSON (Read 1 times) Subj: himem source code PM> If you know one good HLL (like C, C++ or Pascal) and one LLL (like PM> 8088 assembly) I think you are ready for anything. What you don't PM> know you can learn *very* fast, I agree with you there. After putzing around in QBASIC for longer than I'd like to admit, I picked up C++ very quickly, followed by Pascal (though I think C++ is a lot better). I don't know much assembler at all. That's why I read this base.. just to pick up what I can. I need a book so bad that it hurts.. ... kjhf7u2sfgywh - HEY, get the cat off my computer! --- Bink/Max/GE 1.20 Pro * Origin: Analytical Engine CBCS [440] 942-3876 (1:157/554) --------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: F3E00002Date: 03/05/98 From: DARRYL GREGORASH Time: 10:41pm \/To: CHRISTIAN IVERSEN (Read 1 times) Subj: Memory Access Replying to a message of Christian Iversen to All: CI> Hi! :) CI> I wan't to know wheater or not it is possible to write 3 CI> bytes to memory without for example moving on byte and one word? If the data field is 3 bytes long, that is the only way; if it is a double word, then use a 32-bit register, and write a double word, eg: mov dword ptr location, eax --- FleetStreet 1.21 NR * Origin: BIG BANG Burger Bar: Regina SK Canada (1:140/86) --------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: F3E00003Date: 03/05/98 From: STUART GEORGE Time: 02:34pm \/To: HIDASI JOZSEF (Read 1 times) Subj: himem source code [ Hidasi Jozsef muttered to Jan Wagemakers ] HJ> Oh that's fine. but there are two problems: HJ> - I don't know why but my BIOS don't like this and always returns a HJ> CF?! - Many BIOSes don't support this, or probably they use an other HJ> funcction, however maybe I missed something... :-) if oyu have a memory manager of any sort, int 15h will be reduced to return 0k memory as the mem man takes it all in order to work correctly. its also part of the bios and all bios' should support it. -df : Juukinzoku Game Development http://acm.vt.edu/~dpark/juukinzoku --- FMail/386 1.20+ * Origin: Comms Barrier BBS +61.3.9585.1112, +61.3.9583.6119 (3:632/533) --------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: F3E00004Date: 03/03/98 From: FERNANDO ARIEL GONT Time: 04:28am \/To: ALL (Read 1 times) Subj: Programming the SB Hullo All , hope you are having a nice day!! I simply want to let the input from the microphone get out from the SB's speakers... But I've turned the speaker on programming the DSP, and set all the volumes correctly (I think), but there's no sound... Could any of you please help me? Thanks in advance! :) -=> Yours sincerely, Fernando Ariel Gont <=- e-mail: FGont@siscor.bibnal.edu.ar e-mail "Good Stuff!" _*Magazine*_ : gstuff@siscor.bibnal.edu.ar FidoNet: 4:900/470.10 Sk-Network (Argentina): Murdock's Point (200:201/300.27) --- Terminate 5.00 UnReg(140) * Origin: This point doesn't suck!! (4:900/470.10) --------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: F3E00005Date: 03/05/98 From: FERNANDO ARIEL GONT Time: 05:34am \/To: ALL (Read 1 times) Subj: Vertical retrace / sprites Hullo All , hope you are having a nice day!! Well, I made three routines to use sprites: One of them saves a block of pixels to a buffer. Other puts the sprite on the screen. And the other restores the contents of a buffer on the screen. To avoid "snow" (or "flicker"), I waited for the vertical retrace. I read that there are two "techniques" to do it: One: %%% * Wait until bit 3 of port 3dah is 1 * Then wait until the bit 3 of port 3dah is 0h * Now, you can work "safely" with the video memory. Two: %%% * Wait until the bit 3 of port 3dah is 0h * Now, you can work "safely" with the video memory. Well, and I have read that the difference between them is that in the first one you're sure that you'll begin working on the screen just after the vertical retrace has begun. In the second one, it's possible that you'll get "caught", and there might be "snow" (or "flicker") on the screen. At first, I used the first method, but it was too slow on my P120. Then, I used the second method, but I get "snow" (or "flicker") on the screen.... What should I do? In the next three messages I'll post the three routines I've made. Just a few comments: They work in a very similar way. "putsprite" reads each of the sprite's pixels, and if they aren't equal to 00h, they are copied to the video memory. "saveblock" will get the x and y coordinates, and the number of rows and columns, and will copy this block to a buffer specified by the user. "restoreblock" does the opposite: it copies the contents of a buffer to the video memory. Note: I only use *byte* moves and *not* word or dword moves, because the routine is intended to work on any size of sprite. The format of the sprite is quite simple: a matrix of 32*32 bytes, each of them is the color code of the pixel. That means that the first byte of the sprite will hold the color code of its first pixel, and the last byte will hold the color code of the last pixel of it. In fact, it needn't be a 32*32 matrix, as I've made the routine to work on any size of sprite (up to 256*256 (256 colors)). If you want me to post an example of the sprite, just ask me.... I wish you criticized my code, so that I could improve it.... -=> Yours sincerely, Fernando Ariel Gont <=- e-mail: FGont@siscor.bibnal.edu.ar e-mail "Good Stuff!" _*Magazine*_ : gstuff@siscor.bibnal.edu.ar FidoNet: 4:900/470.10 Sk-Network (Argentina): Murdock's Point (200:201/300.27) --- Terminate 5.00 UnReg(142) * Origin: This point doesn't suck!! (4:900/470.10) --------------- FIDO MESSAGE AREA==> TOPIC: 145 ASSEMBLY LANG. Ref: F3E00006Date: 03/05/98 From: FERNANDO ARIEL GONT Time: 05:53am \/To: ALL (Read 1 times) Subj: putsprit.asm Hullo All , hope you are having a nice day!! /* (PUTSPRIT.ASM) putsprite proc public ;************************************** ; On entry: ; cx= y coordinate ; dx= x coordinate ; bl= columns ; bh= rows ; ds:si= pointer to sprite ; ************************************* MODECOLUMNS equ 320 ; Preserve the contents of the registers. push ax push bx push cx push dx push bp ; es= video memory segment mov ax, 0a000h mov es, ax ; Here I calculate a number that'll be added to di, so that the beginning ; of the next row will be pointed mov bp, MODECOLUMNS mov ax, bx and ax, 11111111b sub bp, ax ; Now I calculate the value di will hold. (Its the address of first ; pixel where the sprite will be put) push dx mov ax, MODECOLUMNS mul cx pop dx add ax, dx mov di, ax ; cld, so that the index registers will be incremented. cld xor cx, cx mov cl, bh ; Wait for vertical retrace. mov dx, 3dah waitfor1: in al, dx and al, 8 jz waitfor1 waitfor0: in al, dx and al, 8 jnz waitfor0 ; These nestled loops puts the sprite on the screen. ; the inner loop is based on the number of columns of the sprite. ; The outter is based on the number of rows. loophere: push cx mov cl, bl putrow: push cx lodsb inc di cmp al, 00h jz nextrow dec di stosb nextrow: pop cx loop putrow add di, bp pop cx loop loophere ; Restore the contents of the registers. pop bp pop dx pop cx pop bx pop ax ret putsprite endp */ -=> Yours sincerely, Fernando Ariel Gont <=- e-mail: FGont@siscor.bibnal.edu.ar e-mail "Good Stuff!" _*Magazine*_ : gstuff@siscor.bibnal.edu.ar FidoNet: 4:900/470.10 Sk-Network (Argentina): Murdock's Point (200:201/300.27) --- Terminate 5.00 UnReg(142) * Origin: In memoriam Kurdt Cobain (1967-1994) (4:900/470.10)