X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f From: Rugxulo Newsgroups: comp.os.msdos.djgpp Subject: Re: GAS ".code16" and DJASM quirks ... Date: Tue, 10 Nov 2009 19:35:33 -0800 (PST) Organization: http://groups.google.com Lines: 74 Message-ID: References: <0008cd2e-63c9-43cb-82d4-11aece7c209f AT c3g2000yqd DOT googlegroups DOT com> <200911100429 DOT nAA4T6BM021619 AT envy DOT delorie DOT com> <200911102010 DOT nAAKAxKI006111 AT envy DOT delorie DOT com> NNTP-Posting-Host: 65.13.115.246 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1257910533 28942 127.0.0.1 (11 Nov 2009 03:35:33 GMT) X-Complaints-To: groups-abuse AT google DOT com NNTP-Posting-Date: Wed, 11 Nov 2009 03:35:33 +0000 (UTC) Complaints-To: groups-abuse AT google DOT com Injection-Info: v30g2000yqm.googlegroups.com; posting-host=65.13.115.246; posting-account=p5rsXQoAAAB8KPnVlgg9E_vlm2dvVhfO User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729),gzip(gfe),gzip(gfe) To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Hi, On Nov 10, 2:10=A0pm, DJ Delorie wrote: > > If you want to continue the fine tradition of making it meet your > needs, go ahead :-) Okay, this hack below seems to work (even though I swear I am not a C programmer): =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D *** tony_y.bk1 Tue Nov 10 17:37:22 2009 --- tony.y Tue Nov 10 21:26:58 2009 *************** *** 2335,2340 **** --- 2335,2341 ---- { int c, c2, i, oldc; struct opcode *opp, op; + char str[33], str2[33]; do { c =3D fgetc(infile); *************** *** 2454,2460 **** } #else ungetc(c, infile); ! fscanf(infile, "%i", &(yylval.i)); #endif sprintf(last_token, "%d", yylval.i); return NUMBER; --- 2455,2473 ---- } #else ungetc(c, infile); ! ! fscanf(infile, "%[0-9a-fA-FhHxX]",str); ! ! if (str[strlen(str)-1] =3D=3D 'h' || str[strlen(str)-1] =3D=3D 'H') ! { ! str[strlen(str)-1]=3D'\0'; ! strcpy(str2,"0x"); ! strcat(str2,str); ! strcpy(str,str2); ! } ! sscanf(str, "%i", &(yylval.i)); ! ! #endif sprintf(last_token, "%d", yylval.i); return NUMBER; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D And here's the simplest example (modified HELLO.ASM) although a bigger example, BEFI.COM using "0x100" or "100h" style both assemble to the exact same .COM, matching CRC32. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D .type "com" .org 0x100 ; origin for .COM program mov dx, msg ; point DX to message mov ah, 0x9 ; DOS print string function int 21h mov ax, 4c00h ; DOS exit with errorlevel int 0x21 msg: .db "hello, world\r\n$" =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D