You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(31) |
Nov
(9) |
Dec
(5) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(6) |
Feb
(2) |
Mar
|
Apr
(2) |
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
2005 |
Jan
(8) |
Feb
|
Mar
(6) |
Apr
|
May
|
Jun
(3) |
Jul
(4) |
Aug
(2) |
Sep
(1) |
Oct
|
Nov
(4) |
Dec
(1) |
2006 |
Jan
(3) |
Feb
|
Mar
|
Apr
(5) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
(1) |
Nov
(4) |
Dec
|
2007 |
Jan
|
Feb
(4) |
Mar
(8) |
Apr
(7) |
May
(1) |
Jun
(6) |
Jul
(7) |
Aug
(26) |
Sep
(8) |
Oct
(14) |
Nov
(7) |
Dec
(4) |
2008 |
Jan
(5) |
Feb
(7) |
Mar
(31) |
Apr
(18) |
May
(1) |
Jun
(3) |
Jul
|
Aug
|
Sep
|
Oct
(10) |
Nov
(3) |
Dec
|
2009 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
(9) |
Jun
(8) |
Jul
(17) |
Aug
(24) |
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
(15) |
Nov
|
Dec
(5) |
2011 |
Jan
|
Feb
|
Mar
(5) |
Apr
|
May
(6) |
Jun
(2) |
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
(4) |
Dec
(1) |
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Frank K. <fbk...@co...> - 2003-12-07 02:51:08
|
Yeoh HS wrote: > Thanks very much for posting this code and the factorial program. :-) Well, at the rate you've been posting examples, I figured I ought to do *something* to contribute, and since we seemed to be into printing numbers... That routine would be better if it accepted a flag to use the comma or not - sometimes you don't want it. It really isn't useful very often, but it prints an impressively long string of digits... or maybe I'm just easily impressed... We haven't got too many subscribers to these lists yet - maybe we should "announce" 'em again - but we're developing a nice repository of Nasm examples. Better than anything that's been available before! Even the Nasm users who aren't aware of it yet thank you! Best, Frank |
From: Frank K. <fbk...@co...> - 2003-11-29 18:28:42
|
nmt wrote: > > I've seen here some codes to logoff from windows, but any source code > to shutdown any windows version platform; so that I wrote theses codes > that work in 9x, NT, 2000, XP (and suposse that run in 2003). > > http://mipagina.cantv.net/porrasgarcia/shutdown.zip > > Sorry by this style to write NASM codes, but is the easiest way that I > found to assemble programs using only NASM, without any linker. Very cool! But there's a bug in it! Being a die-hard dos-head, I actually *tried* the dos stub, and I got garbage before the "this program requires win32!" message. Stepping through it, I also noticed that the "call @w" generates the wrong address! We're executing the "!$" at the end of the data!!! I did this to it: stub: bits 16 ; <- call .@W db "This program only runs in win32!$" .@W pop dx push cs ; <- pop ds ; <- mov ah, 9 int 21h mov ah, 4ch int 21h ... ...and it seemed to work a little better. If anyone cares whether the dos stub works, these days... This particular program could benefit from a custom stub which actually reboots, instead of whining about not finding 'doze. I guess the "safest" way to reboot from dos is to emulate control-alt-delete(?). I can't lay my hands on an example of that code right at the moment, but I'm sure I can figure it out. I *did* come across a three-byte reboot example: pop sp inc sp push sp I don't think that's so safe, and it may not work on all systems, but it reboots my machine, and it sure is short :) Anyway, thanks for posting that, Numa (and for the Xwindows examples! - and gigathanks to Yeoh for the steady stream of examples!). This is really turning into a goldmine! Best, Frank |
From: Frank K. <fbk...@co...> - 2003-11-22 13:47:43
|
Frank Kotler wrote: > ... haven't tried the "or something" yet...) Well... it turns out I was looking at an example written for one version of the library and linking with another... and the names of the damn routines changed! (some standard library!) Just a first shot at it... Later, Frank |
From: Frank K. <fbk...@co...> - 2003-11-21 07:58:50
|
David hgb wrote: > First sorry for the other reply... look a little extrange with digest > 14 ... etc. > > I only rereply for keep the correct thread ;). Hi David (and all), Hehe! I knew what you were replying to, but that *is* a problem with the "digest" option... > Ok, I am not sure, but I use a 'mechanism' that let me know if a > function is internal to the file, or is external. > > for example I use: > > def Wnd, 4 > and do: > invoke Wnd, [.x],[.y],[.z], [.k] > > and will be expanded some like > push dword [.k] > ... > call Wnd > > and if I do this: > invoke MessageBox, NULL, str, title, MB_OK > will be some like: > push dword MB_OK > ... > extern MessageBox > call [MessageBox] > > > The trick is that def, make(or define) a Wnd_internal or some like that, > then invoke check for see if is definied, in the other case is external > function. Yup, that'll work. > What about to use a %ifdef and %ifid ??? I couldn't get those to do what I want... > I dont understand the porpuose of if used ... what is the objetive??? :S ;) Well, the "fundamental" include file for the HLA library functions is just a list of all the functions, declared "extrn" - "extern" for Nasm of course. Apparently Masm is okay with this, and only "really" makes 'em "extern" if they appear in the file. Fasm, however, gives a bloated executable if you do this, and Nasm seems to do the same. For Fasm, the workaround is: if used foo extrn foo end if for every function in the library. I thought maybe "%ifid" would do it - the manual says "if it exists and is a valid identifier...". But I seem to get my "extern foo" whether it's used or not... I decided to instead try an approach like you describe. I didn't re-use "invoke" (HLA is Pascal order, I think), but tried to write a "hlacall" macro. At the moment it doesn't do any pushing of parameters, but I'll probably try to make it like "invoke" or "sys_..." (I'm really not a big fan of trying to make asm look like a HLL, but there are times when it makes sense). But first I gotta make it work at all... I think I'm getting "extern foo" where I want it. I don't think I'm getting multiple "extern foo"s if I call it more than once - and I guess that wouldn't do any harm anyway. But the linker isn't finding any of this stuff! Error messages as if I'd left the library path off entirely. I may need "extern FOO" or "_FOO" or something... (those seem not to work... haven't tried the "or something" yet...) I haven't spent much time on this - it isn't something I'm tremendously interested in doing - just something to fool with. There are a couple reasons why someone might want to link with the HLA library: it's a pretty nice library, AND it's been ported to Linux (ports to BSD, QNX, and maybe Solaris seem likely). So "portable" code can be written that just needs to be re-assembled and re-linked to run on another OS. Of course, you can do this by linking with the C library, too - Dr. Carter's tutorial uses this method. The HLA library would just be another option. > Nice day or night. Yeah... I can't tell the difference. Have a nice Now :) Best, Frank |
From: <hg...@ya...> - 2003-11-20 15:00:48
|
First sorry for the other reply... look a little extrange with digest 14 ... etc. I only rereply for keep the correct thread ;). -------------------------------------------------------- Ok, I am not sure, but I use a 'mechanism' that let me know if a function is internal to the file, or is external. for example I use: def Wnd, 4 and do: invoke Wnd, [.x],[.y],[.z], [.k] and will be expanded some like push dword [.k] ... call Wnd and if I do this: invoke MessageBox, NULL, str, title, MB_OK will be some like: push dword MB_OK ... extern MessageBox call [MessageBox] The trick is that def, make(or define) a Wnd_internal or some like that, then invoke check for see if is definied, in the other case is external function. What about to use a %ifdef and %ifid ??? I dont understand the porpuose of if used ... what is the objetive??? :S ;) Nice day or night. --------------------------------- Do You Yahoo!? Yahoo! Net: La mejor conexión a internet y 25MB extra a tu correo por $100 al mes. |
From: <hg...@ya...> - 2003-11-20 14:59:05
|
Ok, I am not sure, but I use a 'mechanism' that let me know if a function is internal to the file, or is external. for example I use: def Wnd, 4 and do: invoke Wnd, [.x],[.y],[.z], [.k] and will be expanded some like push dword [.k] ... call Wnd and if I do this: invoke MessageBox, NULL, str, title, MB_OK will be some like: push dword MB_OK ... extern MessageBox call [MessageBox] The trick is that def, make(or define) a Wnd_internal or some like that, then invoke check for see if is definied, in the other case is external function. What about to use a %ifdef and %ifid ??? I dont understand the porpuose of if used ... what is the objetive??? :S ;) Nice day or night. --------------------------------- Do You Yahoo!? Yahoo! Net: La mejor conexión a internet y 25MB extra a tu correo por $100 al mes. |
From: Frank K. <fbk...@co...> - 2003-11-17 00:12:34
|
Randy Hyde has posted the following on alt.lang.asm... ------------------------------------- Odyssey, over at the Win32 ASM Community Board, has created an include file for FASM users that allows them to call many of the routines in the HLA Standard Library. I've posted an early version of this header file on Webster at http://webster.cs.ucr.edu/Page_AdvAsm/0_HLA4FASM.html FASM users might want to check this out. Those interested in helping out with this project might want to check out http://board.win32asmcommunity.net/showthread.php?s=&threadid=16040 It might also be a bit of a help to NASM users if someone were to do the same thing for NASM (I'd do it, but I'm a bit snowed under right now). Between the MASM and FASM header, skeleton, and demo files, it should be pretty obvious to any NASM programmer what needs to be done. For any FASM users looking for a project, the header file above is for Windows; a Linux version would be cool to have, too (then FASM users could more easily port programs between Windows and Linux, just like HLA). Cheers, Randy Hyde -------------------------------------- Now... I did a similar thing a while ago - ported the include files so we could call the old 16-bit UCR Standard Library from Nasm code... There appeared to be *zero* interest in such a thing. Still, include files for Nasm so we could call the HLA library might be a handy thing to have... The problem is that the Fasm files use a lot of "if used" constructs, like: macro EXTRN symbol,name { if used symbol if name eq extrn symbol else extrn name as symbol end if end if } or: if used AbortDoc extrn '__imp__AbortDoc@4' as AbortDoc:dword end if ... and I'm not sure how to do that in Nasm. "%ifid" seems not to do the trick. If we declare everything extern, whether it's used or not, it'll work, but results in a bloated executable. Anyone know how to do "if used" in Nasm? Best, Frank |
From: Frank K. <fbk...@co...> - 2003-11-11 06:28:13
|
Jonathan Mitelman wrote: > i need sone help in amorse ocees translator, > fron english to morse code in sound and signals > thanks Haven't you got your homework done *yet*? :) You don't tell us what part it is you need help with. Sounds? I suppose "signals" means a string of dots and dashes? Do you know how to do that part? It would be cool to emulate one of those signal lamps they use on ships - with the venetian blinds? - I suppose they don't use 'em any more... they got radio and stuff... maybe for "extra credit"... Or are you having trouble with the "translating" from ascii to Morse? You don't even tell us what OS. I suppose, obsolete as Morse Code is, probably CP/M would be appropriate :) In another post (Nasm forum?), you (someone... was it you?) mentioned "to run on 8086". I take that to mean dos... That's a horrible restraint! I took that to mean "no AT bios calls", so I used the 18.2/second timer tick for timing. Sounds like crap! Finer resolution would be nice (and it might help if I knew what the timing was *supposed* to be for Morse - I probably knew, once). Could arrange better resolution on an XT - calibrate a timing loop, or something. I didn't bother... I mentioned on the Nasm forum that I'd probably use the ascii code as a "biased" index into an array of addresses of "dot and dash strings". Thinking about the principle that the data ought to be arranged in a way that makes the code easy to write, I decided to not use a "bias" but use a table of all 256 possible ascii codes (actually, only the first 128 are ascii, but Morse includes some accented "international" characters - which I did not implement - I don't even know how to get international characters on my keyboard!). Most of the slots point to a dummy "invalid" string - which prints a '?', and "beeps some silence". Quite a bloated setup, but it seems to work... I just used int 29h for screen output - would be more useful if it output to stdout, I suppose. Then you could re-direct the output to a file, and write another program to read it and translate it back. "Holy Catfish, Captain Midnight! A secret decoder ring!" :) I think I mentioned on the Nasm forum that I've seen a program that outputs a series of "stick figure" cartoons representing a Midshipman waving semaphore flags around. I've got source for it, but it was an entry in an obfuscated C contest, so it isn't much help. Of course I've asked gcc for a ".s" file, and run that through "intel2gas". Not even close to figuring it out yet! I think I'd be better off to start from scratch and "clone" it... if I needed such a thing, that is... :) I should mention that this (Yahoo) mailing list was intended for Nasm developers - not for homework questions. It's pretty much dead now - development has moved to SourceForge, so it doesn't matter, but the "nasm-users" list at SourceForge is a better place to ask "how do I ..." questions about Nasm. I've cc'ed this there - they need the traffic :) Best, Frank P.S. Shall I include that C code too? Why not? I think it's cute. Forget where I found it - saved as "anderson.c" so I assume the author's name is Anderson... ; gets input from stdin, outputs "Morse code"... ; use as "morse<morse.txt" or just "morse" ; ("morse.txt" should end in ESC or EOF ; - or use cntrl-break to quit) ; nasm -f bin -o morse.com morse.asm org 100h cpu 8086 DIT_TIME equ 2 DAH_TIME equ 4 INT_TIME equ 4 SPACE_TIME equ 6 TONE_FREQ equ 2280 section .data morse_table: ; 0 -31 ; first 32 are control characters dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv ; 32 - 47 ; space ! " # $ % & ' dw mc_inv, mc_dot, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_apos ; ( ) * + , - . / dw mc_paren, mc_paren, mc_inv, mc_inv, mc_comma, mc_dash,mc_dot,mc_inv ; 48 - 57 ; numbers dw mc_0, mc_1, mc_2, mc_3, mc_4, mc_5, mc_6, mc_7, mc_8, mc_9 ; 58 - 64 ; : ; < = > ? @ dw mc_colon, mc_semi, mc_inv, mc_inv, mc_inv, mc_querry, mc_inv ; 65 - 90 ; upper case dw mc_A, mc_B, mc_C, mc_D, mc_E, mc_F, mc_G, mc_H, mc_I dw mc_J, mc_K, mc_L, mc_M, mc_N, mc_O, mc_P, mc_Q, mc_R dw mc_S, mc_T, mc_U, mc_V, mc_W, mc_X, mc_Y, mc_Z ; 91 - 96 ; [ \ ] ^ _ ` dw mc_paren, mc_inv, mc_paren, mc_inv, mc_uline, mc_apos ; 97 - 122 ; lower case dw mc_A, mc_B, mc_C, mc_D, mc_E, mc_F, mc_G, mc_H, mc_I dw mc_J, mc_K, mc_L, mc_M, mc_N, mc_O, mc_P, mc_Q, mc_R dw mc_S, mc_T, mc_U, mc_V, mc_W, mc_X, mc_Y, mc_Z ; 123 - 127 ; { | } ~ dw mc_paren, mc_inv, mc_paren, mc_inv ; 128 - 255 dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv dw mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv, mc_inv ; the "strings" mc_A db '.-', 0 mc_B db '-...', 0 mc_C db '-.-.', 0 mc_D db '-..', 0 mc_E db '.', 0 mc_F db '..-.', 0 mc_G db '--.', 0 mc_H db '....', 0 mc_I db '..', 0 mc_J db '.---', 0 mc_K db '-.-', 0 mc_L db '.-..', 0 mc_M db '--', 0 mc_N db '-.', 0 mc_O db '---', 0 mc_P db '.--.', 0 mc_Q db '--.-', 0 mc_R db '.-.', 0 mc_S db '...', 0 mc_T db '-', 0 mc_U db '..-', 0 mc_V db '...-', 0 mc_W db '.--', 0 mc_X db '-..-', 0 mc_Y db '-.--', 0 mc_Z db '--..', 0 mc_1 db '.----', 0 mc_2 db '..---', 0 mc_3 db '...--', 0 mc_4 db '....-', 0 mc_5 db '.....', 0 mc_6 db '-....', 0 mc_7 db '--...', 0 mc_8 db '---..', 0 mc_9 db '----.', 0 mc_0 db '-----', 0 mc_comma db '--..--', 0 ; comma mc_dot db '.-.-.-', 0 ; period mc_querry db '..--..', 0 ; question mark mc_semi db '-.-.-', 0 ; semicolon mc_colon db '---...', 0 ; colon mc_slash db '-..-.', 0 ; slash mc_dash db '-....-', 0 ; dash mc_apos db '.----.', 0 ; apostrophe mc_paren db '-.--.-', 0 ; parenthesis mc_uline db '..--.-', 0 ; underline mc_inv db '?', 0 ; "When in danger or in doubt, ; run in circles, scream and shout" ; internationalization is left as an excercise for the student :) %if 0 mc_Á db '.--.-', 0 ; A with accent mc_Ä db '.-.- ', 0 ; A with two dots mc_É db '..-..', 0 ; E with accent mc_Ñ db '--.--', 0 ; N with tilde mc_Ö db '---.', 0 ; O with two dots mc_Ü db '..--', 0 ; U with two dots %endif section .text ; set up PIT mov al, 10111110b ;.......|------ binary 16-bit counter ;....|||------- square wave generator ;..||---------- r/w bits 0-7, then 8-15 ;||------------ select timer 2 out 43h, al ; set frequncy on timer 2 mov ax, TONE_FREQ ; arbitrary frequency "C" out 42h, al ; low byte mov al, ah out 42h ,al ; high byte next_char: mov ah, 8 ; get stdin int 21h cmp al, 1Bh ; user hit ESC? jz egress cmp al, 1Ah ; eof? jz egress cmp al, 13 jz treat_as_space cmp al, 10 jz treat_as_space ; check for tab, too? cmp al, ' ' jnz not_space treat_as_space: mov al, ' ' ; print a space int 29h mov ax, SPACE_TIME call delay jmp short next_char not_space: xor ah, ah ; clear upper part add ax, ax ; double the index - it's a word array mov si, ax mov si, [morse_table + si] ; now si points to our string getbeep: lodsb ; get char from "morse string" or al, al ; end of string? jnz more_string mov al, ' ' ; print a space int 29h jmp short next_char ; get more input more_string: mov bx, DIT_TIME cmp al, '.' je beepit mov bx, DAH_TIME cmp al, '-' jz beepit cmp al, '?' jnz baddata ; what *is* it then??? int 29h ; an "invalid" character mov ax, SPACE_TIME ; print the "?" and call delay ; output some silence jmp next_char ; if we're here, typo in data! baddata: mov al, 'E' ; panic! int 29h jmp egress beepit: int 29h ; print '.' or '-' in al, 61h ; enable speaker or al, 00000011b ;.......|------- enable speaker on timer 2 gate ;......|-------- enable speaker data out 61h, al mov ax, bx ; leave it on this long call delay in al, 61h ; Turn Speaker OFF and al, 11111100b out 61h, al mov ax, INT_TIME ; pause before next '.' or '-' call delay jmp getbeep ; get next '.' or '-' egress: in al, 61h and al, 0FCh ; Turn Speaker OFF. Please. out 61h, al ret ;------------------ ;------------------ delay: ; for ax 18.2ths of a second push bx push ds xor bx, bx mov ds, bx mov bx, [46Ch] ; bios timer tick add bx, ax linger: cmp [46Ch], bx jnz linger pop ds pop bx ret ;-------------------- And here's the C code for that semaphore thing... And they say asm is hard to read! :) #include <stdio.h> char *T="IeJKLMaYQCE]jbZRskc[SldU^V\\X\\|/_<[<:90!\"$434-./2>]s", K[3][1000],*F,x,A,*M[2],*J,r[4],*g,N,Y,*Q,W,*k,q,D;X(){r [r [r[3]=M[1-(x&1)][*r=W,1],2]=*Q+2,1]=x+1+Y,*g++=((((x& 7) -1)>>1)-1)?*r:r[x>>3],(++x<*r)&&X();}E(){A||X(x=0,g =J ),x=7&(*T>>A*3),J[(x[F]-W-x)^A*7]=Q[x&3]^A*(*M)[2 +( x&1)],g=J+((x[k]-W)^A*7)-A,g[1]=(*M)[*g=M[T+=A ,1 ][x&1],x&1],(A^=1)&&(E(),J+=W);}l(){E(--q&&l () );}B(){*J&&B((D=*J,Q[2]<D&&D<k[1]&&(*g++=1 ), !(D-W&&D-9&&D-10&&D-13)&&(!*r&&(*g++=0) ,* r=1)||64<D&&D<91&&(*r=0,*g++=D-63)||D >= 97&&D<123&&(*r=0,*g++=D-95)||!(D-k[ 3] )&&(*r=0,*g++=12)||D>k[3]&&D<=k[ 1] -1&&(*r=0,*g++=D-47),J++));}j( ){ putchar(A);}b(){(j(A=(*K)[D* W+ r[2]*Y+x]),++x<Y)&&b();}t () {(j((b(D=q[g],x=0),A=W) ), ++q<(*(r+1)<Y?*(r+1): Y) )&&t();}R(){(A=(t( q= 0),'\n'),j(),++r [2 ]<N)&&R();}O() {( j((r[2]=0,R( )) ),r[1]-=q) && O(g-=-q) ;} C(){( J= gets (K [1]))&&C((B(g=K[2]),*r=!(!*r&&(*g++=0)),(*r)[r]=g-K[2],g=K[2 ],r[ 1]&& O()) );;} main (){C ((l( (J=( A=0) [K], A[M] =(F= (k=( M[!A ]=(Q =T+( q=(Y =(W= 32)- (N=4 )))) +N)+ 2)+7 )+7) ),Y= N<<( *r=! -A)) );;} |
From: Alexei A. F. <ale...@ma...> - 2003-11-05 06:44:40
|
There is nasm doc in Russian. I've seen it for sure. Will need to search for it if you want (maybe I even have some copy backed up). As for Spanish, well, if I knew it at least poorly enough to write technical docs in it, I'd do it. But for now my Spanish skills are little more than zilch, so far I've learned just a few words. Btw, does anyone have idea as to how to learn Spanish with the internet (what I did with English)? I mean, big Spanish-speaking newsgroups (like English-speaking alt.os.development, comp.lang.asm.x86, etc)? Get going! Alex ----- Original Message ----- From: "Frank Kotler" <fbk...@co...> To: "jose manuel" <roc...@ho...> Cc: <nas...@li...>; <nas...@li...> Sent: Tuesday, November 04, 2003 2:11 AM Subject: Re: [Nasm-devel] documentation in spanish please ;-) > jose manuel wrote: > > > HELLO!! > > > > I am a student from México, I would like to find documentation in > > spanish of nasm assembler, can you tell me where is it? or maybe you can > > tell me if sometime will be available in this url please... I just have > > documentation in inglish!!! > > There's some Spanish documentation included with David Lindauer's > "cc386" distribution (I don't know why he has it and we don't...). I > have just uploaded it to the "contibutions" area at SourceForge - the > "files" or "download" page... > > > I wanna practice in this assembler!!!!!!! don't forget to Latinos :-) > > Right. Netwide! We're not supposed to forget *anybody*! > > > God bless you and good luck!!! > > Same to you! > > > I hope I hope!!! > > We try... I've seen (might have, but I can't find it right now) docs in > Russian... If I come across it, I'll upload that, too. > > These docs are *not* up to date with the latest release! I don't think > the Russian version includes the instruction set reference. Hopefully, > it's "mostly correct" and will be some help. > > Ideally, docs ought to be available in various languages in Nasm's > ".src" format so that text, html, postscript, info, rtf, etc. versions > can be built (requires Perl) - The Spanish version I've got is text > only, the Russian version I saw seemed to be .html only. If anyone wants > to update Nasm documentation, or translate to another language, I can > help beat it into ".src" format, but I speak only English, so I can't > help with the translation. > > Best, > Frank > > > > > > ------------------------------------------------------- > This SF.net email is sponsored by: SF.net Giveback Program. > Does SourceForge.net help you be more productive? Does it > help you create better code? SHARE THE LOVE, and help us help > YOU! Click Here: http://sourceforge.net/donate/ > _______________________________________________ > Nasm-devel mailing list > Nas...@li... > https://lists.sourceforge.net/lists/listinfo/nasm-devel > |
From: Frank K. <fbk...@co...> - 2003-11-03 23:17:14
|
jose manuel wrote: > HELLO!! > > I am a student from México, I would like to find documentation in > spanish of nasm assembler, can you tell me where is it? or maybe you can > tell me if sometime will be available in this url please... I just have > documentation in inglish!!! There's some Spanish documentation included with David Lindauer's "cc386" distribution (I don't know why he has it and we don't...). I have just uploaded it to the "contibutions" area at SourceForge - the "files" or "download" page... > I wanna practice in this assembler!!!!!!! don't forget to Latinos :-) Right. Netwide! We're not supposed to forget *anybody*! > God bless you and good luck!!! Same to you! > I hope I hope!!! We try... I've seen (might have, but I can't find it right now) docs in Russian... If I come across it, I'll upload that, too. These docs are *not* up to date with the latest release! I don't think the Russian version includes the instruction set reference. Hopefully, it's "mostly correct" and will be some help. Ideally, docs ought to be available in various languages in Nasm's ".src" format so that text, html, postscript, info, rtf, etc. versions can be built (requires Perl) - The Spanish version I've got is text only, the Russian version I saw seemed to be .html only. If anyone wants to update Nasm documentation, or translate to another language, I can help beat it into ".src" format, but I speak only English, so I can't help with the translation. Best, Frank |
From: <ada...@t-...> - 2003-10-24 21:27:39
|
Hello In Linux I like to deal with hardware timers by NASM. Has somebody = experiance to handle this without killing the processes of the kernel? Michael Adam |
From: <ada...@t-...> - 2003-10-21 02:01:38
|
> Hi Michael, > > Sorry for the delay. Took a while before I got around to booting Linux > and fooling with this. I have *no* idea how to send data to a serial > port - "everything's a file", they say, maybe you can just open a file > and write bytes(???). (might even be able to redirect stdout to a serial > port?) >........ > Best, > Frank Hello Frank It is possible to blow a hole in the 'Protected mode' of Linux. I use the 'C function' called 'ioperm' to communicate with the serial port 0x2f8 the way like this: ....... push word 1 ;enable 'ioperm' push dword 8 ;8 bytes of the serial port register push dword port ;port adress call ioperm add esp, 10 ...... 'in' and 'out' to the serial port IC 16450 or similar ...... push word 0 ;disable 'ioperm' push dword 8 ;8 bytes of the serial port register push dword port ;port adress call ioperm add esp, 10 Michael Adam |
From: Frank K. <fbk...@co...> - 2003-10-19 13:50:27
|
Michael Adam topwis wrote: > Hallo > > >It would be a lot faster if you read a "buffer-full" and "fetch" bytes > from there to process, rather than reading one byte at a >time from the > file. > Please can I have an example in NASM for a Linux system? Hi Michael, Sorry for the delay. Took a while before I got around to booting Linux and fooling with this. I have *no* idea how to send data to a serial port - "everything's a file", they say, maybe you can just open a file and write bytes(???). (might even be able to redirect stdout to a serial port?) I'll attach both a "dos" and a "lin" version of the same file, in hopes of getting a readable version in the "mail", so we can discuss it, if anybody's interested. I'm sure there's *lots* of room for improvement. Best, Frank |
From: brutus <mad...@gm...> - 2003-10-17 13:37:31
|
hmm, i tried it under a win98se box and it works fine, just like you guys describe it. seems to be a xp thing. |
From: Frank K. <fbk...@co...> - 2003-10-17 03:37:40
|
win...@ya... wrote: > File : /ptmusica/iat_msg.zip > Uploaded by : ptmusica <ass...@cl...> > Description : no library :) ! Cool! Thanks, Pedro(?). That confirms what I suspected... Best, Frank |
From: Yeoh H. <ye...@ye...> - 2003-10-17 02:33:56
|
>Please can I have an example in NASM for a Linux system? >Michael Adam Hi, numit_or ( Numa Toretolero ) has some Linux examples: Xlib sample 1. http://mipagina.cantv.net/porrasgarcia/xl.tar.gz 2. GTK samples http://mipagina.cantv.net/porrasgarcia/gnometest.zip http://mipagina.cantv.net/porrasgarcia/gnometest.tar.gz Best Regards, Yeoh -- |
From: Yeoh H. <ye...@ye...> - 2003-10-17 02:19:51
|
----- Original Message ----- From: "brutus" <mad...@gm...> To: <nas...@li...> Sent: Friday, October 17, 2003 2:44 AM Subject: Re: [Nasm-users] winsock problem & strange errors > hey again. thanks for you comments. i've cleaned up the code a bit, put > all the stuff in the .bss seg into the .data seg and define all equ's so > i don't need the include file. i also include a welcome message box at > the beginning. > Hi Brutus, :-) Yes, the welcome message box is displayed. > the welcome box works for me but i still get the strange box when i get > the error message. hope someone can test the new code and tell me if it > works for him/her. if so please tell me which options/linker you use. > When nc was not running, the Error message box appears. Same as the last time, with caption, text and button. > i still get the "can't connect" error and don't know why but i first > want to get rid of the strange box before i explore this deeper. if > someone want's to test it, i could send you an echo-server (but it's in > perl) or you could use netcat[1]. simply type "nc -L -s 127.0.0.1 -p 7" > in the shell (cmd.exe). > When nc was running, no message box appears. The program exits quietly to DOS prompt. My batch file to compile and link is: nasmw -ic:/nasm/inc/ -fobj EchoClient.asm alink -c -oPE EchoClient.obj > thanks again and later... > brutus > > [1] http://brutus.dyndns.info/stuff/netcat11nt.zip > Hope this helps. :-) Best Regards, Yeoh -- |
From: Yeoh H. <ye...@ye...> - 2003-10-17 01:48:51
|
----- Original Message ----- From: "brutus" <mad...@gm...> To: <nas...@li...> Sent: Friday, October 17, 2003 2:24 AM Subject: Re: [Nasm-users] Mulitple versions of win32n.inc > so, as i know nothing about all those packages you mentioned, but will > satrt google soon, i'm interested which you will recommend. > > later > brutus Hi Brutus, :-) The packages can be downloaded from these sites: 1. Package by Sheroc is at: http://www.freewebs.com/remains/NASM32PACKAGE.exe From post at forum: http://sourceforge.net/forum/forum.php?thread_id=913933&forum_id=167168 <extract> Hey people, I have bundled a package of last NASM for win32 + Jibz XSTRUC macros + a WIN32N.INC ( 1,3 Megs, not Tamas Kaproncai´s, its a port of the known MASM32 WINDOWS.INC ) with quite a serious set of structs and equs ( based on XSTRUC macros )... Its a RAR SFX installer that sets up a ready to use layout, with a example and so on... </extract> 2. NaGoA is at: http://www.visual-assembler.pt.vu/ It's a big package, 6.69 Mb. I don't use its IDE and other tools so I had extracted the headers and support example files. Best Regards, :-) Yeoh -- |
From: Frank K. <fbk...@co...> - 2003-10-17 01:09:13
|
brutus wrote: > the welcome box works for me but i still get the strange box when i get > the error message. hope someone can test the new code and tell me if it > works for him/her. if so please tell me which options/linker you use. Both boxes look normal here. Options exactly as in the file. I *was* linking it with "path/to/alink/win32.lib", but find I don't have to - that's because you use the "IMPORT" lines, right? Linking with tlink32 (which often works identically with alink) gets me an invalid page fault, but that's a command line issue, I imagine. One difference is - I'm using Win98 - your mention of "cmd.exe" makes me think you're using NT/2k/XP(?). I don't know what difference that should make. Best, Frank |
From: brutus <mad...@gm...> - 2003-10-16 18:46:16
|
Yeoh HS wrote in Re: [Nasm-users] winsock problem & strange errors: > I tried to compile EchoClient.asm and got a type not defined. > The error is in line 60 > wsaData resb WSAdata_size ; stores data about WinSock > > I checked the definition of WSAdata in win32n.inc and found > that it is WSADATA. > So I changed this line to: > wsaData resb WSADATA_size ; stores data about WinSock > > After this EchoClient.asm compiles and links without any > problems. :-) WSAdata_size works for me since it is defined as WSAdata in my include file. This is the WIN32N.INC i used: Win32.inc for NASM 1999 version 0.06 by Tamas Kaproncai [to...@sz...] MD5: FF818A0C2C2D76E8F68D3DDA1E7676BD WIN32N.INC And WSAdata is defined as: STRUC WSAdata .wVersion RESW 1 .wHighVersion RESW 1 .szDescription RESB WSADESCRIPTION_LEN+1 .szSystemStatus RESB WSASYS_STATUS_LEN+1 .iMaxSockets RESW 1 .iMaxUdpDg RESW 1 .lpVendorInfo RESD 1 ENDSTRUC Yeoh HS wrote in [Nasm-users] Mulitple versions of win32n.inc: > My version is: > WINDOWS.INC for 32 bit NASM (Version 1.26e) Release 07 Jul 2003 ;; > This is the NASM(XSTRUCed) version of WINDOWS.INC by sheroc & Jibz ;; > > The other include file I have is nagoa.inc: > NAGOA.INC for NASM based on win32n.inc version 0.06 by Tamas Kaproncai [to...@sz...] > ================================================================= > by PedroGC version 2 ABRIL 2003 > > These two include files appear to be updated in 2003 so I think I'll stick > with these. Other "non-standard" macros, including my own, I think it's best > to put them in a separate file for inclusion. :-) mine seems older so i will probably end useing one of those you mentioned above. > I wish there were a de facto standard. It would make code sharing and > re-useability much easier. :-) i absolutely agree! but i'm clueless which one is to be used. i just want to use nasm from the commandline paired with whatever linker fit's. with as less tools and extra stuff added as possible. so, as i know nothing about all those packages you mentioned, but will satrt google soon, i'm interested which you will recommend. later brutus |
From: brutus <mad...@gm...> - 2003-10-16 18:46:10
|
Frank Kotler wrote: > Hi, Brutus! > > Thanks for joining us. I'm *way* over my head on this stuff, but > debugging code by clueless trial-and-error is something I'm gaining > experience at :) > >> brutus wrote: >> while debuging, OllyDbg[1] remarks that my entry point is outside the >> codesegment and complains about beeing outside the code segment when i >> set breakpoints. > > > Adding "class=code" to the segment declaration seems to fix this. I > added "flat", too. Dunno what it does, but it sounds cool :) I think > it's the "class=code" that fixed it. hmm, great! works for me too. as far as i understand it, the flat thing just makes sense in Os/2 programms (see below). if i used it, my code seg just becomes part of a group called flat. you can verify this if you look at the map files of your linker (use -m with alink to get it). the class=code options works, but i don't understand why. any hints someone? it *seems* to have nothing to do with the correct assembling/linking and don't *seem* to influence the prog. i think it's an OlyyDbg thing, maybe with the way OllyDbg decides if some segment is a code segment? if you uncheck DebugOptions/Security/"Warn when breakpoint is outside the code section" the warning won't get displayed anymore. here are some snippets i found in the nasm docs, that could clarify a bit: The Unix object formats, and the bin object format (but see section 6.1.3, all support the standardised section names .text, .data and .bss for the code, data and uninitialised-data sections. The obj format, by contrast, does not recognise these section names as being special, and indeed will strip off the leading period of any section name that has one. The obj format does not define any special segment names: you can call your segments anything you like. Typical names for segments in obj format files are CODE, DATA and BSS. The obj output format extends the SEGMENT (or SECTION) directive to allow you to specify various properties of the segment you are defining. This is done by appending extra qualifiers to the end of the segment-definition line. The available qualifiers are: * PRIVATE, PUBLIC, COMMON and STACK specify the combination characteristics of the segment. _PRIVATE_ segments do not get combined with any others by the linker; _PUBLIC_ and _STACK_ segments get concatenated together at link time; and _COMMON_ segments all get overlaid on top of each other rather than stuck end-to-end. * ALIGN _ALIGN_ is used, as shown above, to specify how many low bits of the segment start address must be forced to zero. The alignment value given may be any power of two from 1 to 4096; in reality, the only values supported are 1, 2, 4, 16, 256 and 4096, so if 8 is specified it will be rounded up to 16, and 32, 64 and 128 will all be rounded up to 256, and so on. Note that alignment to 4096-byte boundaries is a PharLap extension to the format and may not be supported by all linkers. * CLASS _CLASS_ can be used to specify the segment class; this feature indicates to the linker that segments of the same class should be placed near each other in the output file. The class name can be any word, e.g. CLASS=CODE. * OVERLAY _OVERLAY_, like _CLASS_, is specified with an arbitrary word as an argument, and provides overlay information to an overlay-capable linker. * USE Segments can be declared as _USE16_ or _USE32_, which has the effect of recording the choice in the object file and also ensuring that NASM's default assembly mode when assembling in that segment is 16-bit or 32-bit respectively. * FLAT When writing OS/2 object files, you should declare 32-bit segments as _FLAT_, which causes the default segment base for anything in the segment to be the special group _FLAT_, and also defines the group if it is not already defined. * ABSOLUTE The obj file format also allows segments to be declared as having a pre-defined absolute segment address, although no linkers are currently known to make sensible use of this feature; nevertheless, NASM allows you to declare a segment such as SEGMENT SCREEN ABSOLUTE=0xB800 if you need to. The _ABSOLUTE_ and _ALIGN_ keywords are mutually exclusive. NASM's default segment attributes are PUBLIC, ALIGN=1, no class, no overlay, and USE16. |
From: brutus <mad...@gm...> - 2003-10-16 18:46:08
|
hey again. thanks for you comments. i've cleaned up the code a bit, put all the stuff in the .bss seg into the .data seg and define all equ's so i don't need the include file. i also include a welcome message box at the beginning. the welcome box works for me but i still get the strange box when i get the error message. hope someone can test the new code and tell me if it works for him/her. if so please tell me which options/linker you use. i still get the "can't connect" error and don't know why but i first want to get rid of the strange box before i explore this deeper. if someone want's to test it, i could send you an echo-server (but it's in perl) or you could use netcat[1]. simply type "nc -L -s 127.0.0.1 -p 7" in the shell (cmd.exe). thanks again and later... brutus [1] http://brutus.dyndns.info/stuff/netcat11nt.zip |
From: <ada...@t-...> - 2003-10-16 08:37:54
|
Hallo >It would be a lot faster if you read a "buffer-full" and "fetch" bytes = from there to process, rather than reading one byte at a >time from the = file.=20 Please can I have an example in NASM for a Linux system? Michael Adam |
From: Yeoh H. <ye...@ye...> - 2003-10-16 06:20:35
|
Hi Frank, You're right. :-) There are several versions of win32n.inc. My version is: <extract> WINDOWS.INC for 32 bit NASM (Version 1.26e) Release 07 Jul 2003 ;; This is the NASM(XSTRUCed) version of WINDOWS.INC by sheroc & Jibz ;; </extract> The other include file I have is nagoa.inc: <extract> ; NAGOA.INC for NASM based on win32n.inc version 0.06 by Tamas Kaproncai [to...@sz...] ;================================================================= ; by PedroGC version 2 ABRIL 2003 </extract> These two include files appear to be updated in 2003 so I think I'll stick with these. Other "non-standard" macros, including my own, I think it's best to put them in a separate file for inclusion. :-) I wish there were a de facto standard. It would make code sharing and re-useability much easier. :-) Also, the build process can be different. In RadAsm, the build batch commands are set in RadAsm. For those who like to build at DOS command prompt level, the batch commands would be slightly different. In future, I think I'll add a build.bat to the zips so that the programs can also be built at DOS prompt. :-) Best Regards, Yeoh -- |
From: Frank K. <fbk...@co...> - 2003-10-16 04:18:23
|
Yeoh HS wrote: > I checked the definition of WSAdata in win32n.inc I've got three win32n.inc's here... this is something from "The_Owl" WIN32N INC 139,841 04-01-00 2:02p win32n.inc this is "Tomcat"s - I assume it's the one we want WIN32N INC 290,400 05-11-99 3:34p WIN32N.INC and this from "Gaz"s win32nasm package(?) WIN32N INC 1,029,613 07-07-03 2:52p win32n.inc I don't know if it's got anything to do with the case of WSAdata, but there's a potential problem looming here. I've got 13 "windows.inc"s, too, but mostly not for Nasm (one in Gaz's package). Only one "nagoa.inc" (well, another one in projects\toolbar - 3k), but it's a fairly old one - I'll bet if I downloaded the latest version, it would be different. And that's not including Sheroc's package... Maybe one of the things we could discuss on this list is which .inc is which, and which is best to use for what purpose. Gaz's package interests me, because it uses Nasm's "-f win32" format, rather than "-f obj". (and I liked some of his macros better than Tomcat's - which I think is what nagoa.inc is based on?) Needs a different linker to handle the MS COFF. I think the linker with LCC is supposed to work, and I've had some success with the ld from Cygwin, in addition to the MS product (which is included with the package). The website phoenix.gb.net seems to have died. You can get the "base pack" from Tomcat's site, but there's a larger package (looking at it... I guess the "base pack" has everything you need...). Anyway, I see potential problems if we try to assemble something that includes "some.inc" and we've got a file by the same name, but perhaps a "pre-bugfix" version... Is there a de facto standard for what you guys use? Best, Frank |