PE> I have changed it slightly with 3.1, here is the diff...
PE> 112,123c112
PE> < IFDEF PASCAL
PE> < .model tpascal
PE> < ;
PE> < extrn prefixseg: word
PE> < ;
PE> < ptrsize = 1
PE> < ELSE
PE> < IFNDEF MODL
PE> < .model small,c
PE> < ELSE
PE> < % .model MODL,c
PE> < ENDIF
PE> -+-
>> .model large,c
PE> 128d116
PE> < ENDIF
rc> I presume this is meant to be processed by a machine, but I managed to
I don't know about that.
rc> work out what you meant. Delete all the "<" lines and
add the ">" line,
rc> right?
You've never seen a diff listing before? It's pretty standard.
FREQ "GNUDIFF.ZIP" if you want the diff program that I use. You
are sort of correct in your interpretation. It basically means:
"" -
this is what is in
the new file. It's meant for human consumption more than anything
else.
rc>> I presume you'd use /DMODL=large spawn
PE> I'm just going "wasm spawn.asm". I think I've already changed all
PE> that crap to get around that model and pascal stuff.
rc> Does compiling with the switches change any error messages?
I just tried, with the command as above, and no, nothing changed.
I'll insert the command line options in case you meant for me to
try something else...
Usage: wasm [options] asm_file [options] [{at}env_var]
Options: ( /option is also supported )
-{0,1,2,3,4,5}{p}{r,s}
-0 8086 instructions
-1 80186 instructions
-2 80286 instructions
-3 80386 instructions
-4 80486 instructions
-5 pentium instructions
add p protect mode
add r register calling conventions
add s stack calling conventions
ie: /2 /3s /4pr /5p
-bt= set the build target to
-c disable outputting of data in code records
-d[=text] define text macro
-d1 line number debugging support
-e stop reading ASM file at END directive
-e set error limit number
-fe= set error file name
-fo= set object file name
-fi= force to be included
-fpc calls to floating-point library
-fpi inline 80x87 instructions with emulation
-fpi87 inline 80x87 instructions
-fp0 floating-point for 8087
-fp2 floating-point for 287
-fp3 floating-point for 387
-fp5 floating-point for Pentium
-i= add directory to list of include directories
-j or -s force signed types to be used for signed values
-m{t,s,m,c,l,h,f} memory model:
(Tiny, Small, Medium, Compact, Large, Huge, Flat)
-nd= set data segment name
-nm= set module name
-nt= set name of text segment
-o allow C form of octal constants
-zq or -q operate quietly
-? or -h print this message
-w set warning level number
-we treat all warnings as errors
rc> I won't be able to tell you exactly, because I know fuck all about
rc> MASM. I can try, though.
Or whatever you think "standard assembler" should have done, anyway.
PE> spawn.asm(197): Error! E149: This instruction is not supported
rc> I think I got my diff slightly wrong; line 197 is the
"msize" line in
rc> my "modified" source, but I would guess that
"addr" is the problem line due
rc> to a reserved keyword. Change globally to something else, like
"addr1"
Done.
PE> spawn.asm(251): Error! E102: Operator is expected
PE> spawn.asm(251): Error! E081: Offset cannot be smaller than WORD size
rc> expar db TYPE exec_block dup (?) ; exec-parameter-block
rc> What the fuck is this? TYPE? Hmmm. I think this means reserve exec_block structure> bytes. From around line 159:
If you don't know what "TYPE" is, presumably that means it isn't
standard assembler?
rc> The size of the structure is 14 bytes. So, try this on line 251:
rc> expar db 14 dup (?) ; exec-parameter-block
rc> Just as a workaround. If that works then we'll see about another way to
rc> figure out the size of the structure.
Yes, that has fixed the problem. Before I go and change all the
others, can you tell me of the proper way to get the structure
size in masm/wasm?
rc> Same fucking problem. Surely you must have noticed this yourself Paul,
rc> you're not that stupid are you? ;-) I would guess that assigning the value
I noticed the problem, but I didn't know what the proper solution
was. Like I say, Watcom just says "We are MASM-compatible, and we
DON'T teach you how to program in MASM".
PE> spawn.asm(298): Error! E102: Operator is expected
PE> spawn.asm(298): Error! E065: Invalid instruction operands
PE> spawn.asm(299): Error! E102: Operator is expected
PE> spawn.asm(299): Error! E065: Invalid instruction operands
rc> mov ax,lmem lprep.first_mcb
rc> mov bx,lmem lcurrdesc.addr
rc> lmem equ
rc> WASM may be literally replacing "lmem" with the text
string ""
rc> when it should be "ds:"
rc> First, try changing "" in the line above
(about line 235) to "ds:"
Yes, that worked. Does anyone know for sure whether or not this is
acceptible to MASM?
spawn.asm(259): Error! E102: Operator is expected
spawn.asm(259): Error! E081: Offset cannot be smaller than WORD size
spawn.asm(260): Error! E102: Operator is expected
spawn.asm(260): Error! E081: Offset cannot be smaller than WORD size
spawn.asm(261): Error! E102: Operator is expected
spawn.asm(261): Error! E081: Offset cannot be smaller than WORD size
spawn.asm(268): Error! E102: Operator is expected
spawn.asm(269): Error! E102: Operator is expected
spawn.asm(638): Error! E102: Operator is expected
spawn.asm(638): Error! E065: Invalid instruction operands
spawn.asm(639): Error! E073: Immediate data out of range
spawn.asm(692): Error! E073: Immediate data out of range
spawn.asm(694): Error! E148: Invalid operand size for instruction
spawn.asm(705): Error! E102: Operator is expected
spawn.asm(705): Error! E065: Invalid instruction operands
spawn.asm(708): Error! E073: Immediate data out of range
spawn.asm(709): Error! E073: Immediate data out of range
spawn.asm(711): Error! E148: Invalid operand size for instruction
spawn.asm(724): Error! E148: Invalid operand size for instruction
spawn.asm(729): Error! E148: Invalid operand size for instruction
spawn.asm(742):
@EOT:
---
* Origin: X (3:711/934.9)
|