Hi!
I'm something of a hobbyist and have lots of old museum-grade PC's about and wondered if I used only 8088 opcodes if I could use MASM32 to compile an asm program for them, and if I could avoid the non-flat memory-type model with 20 bit addressing that we all hated so much. If there's a modern tool that would do it, I'd like to attempt it.
(I also have the hp 200 pocket pc - which is why I ask)
Masm32 is for 32-bit computing while 8088 is for 16-bit. You would probably need to convert your 32-bit code to 16-bit where it's possible. There is no any modern tool to perform this task.
there are no tools to convert back and forth between 16-bit code and 32-bit code
there are just too many differences to handle
however, you can build 16-bit programs using ML.EXE and LINK16.EXE
Hi,
You can use MASM to create programs for the HP 200LX,
I do so. The version of MASM that comes with the MASM32
package will not run on a 16-bit machine, it requires a 32-bit
Windows. But it can create 16-bit programs that can then
be transfered to the 16-bit machine. A 16-bit X86 processer
only supports the 20-bit segment based addressing scheme.
Are you a member of the 200LX mailing list?
Regards,
Steve N.
if you want masm v 5.10, let me know
8) Thanks all. I don't wanna go this route. I didn't like the old addressing scheme. 's why I liked the original motorola and 6502 chips for asm.
I'm normally a strictly BASIC man.
Hi,
Well, if you use the "tiny" programming model using only
one segment you can ignore segments in the addressing.
My most complex asm program (in terms of lines of code)
still fits in one segment. So then your addressing is mostly
pretty simple.
i have written a number of tiny model programs that use more than one segment for data
segmented memory isn't all that bad, once you get the hang of it :P
During the 16-bit era, Borland provided nice IDEs for C\C++ and Pascal programming. Nice souvenirs.
Quote from: dedndave on November 16, 2012, 01:53:36 AM
i have written a number of tiny model programs that use more than one segment for data
segmented memory isn't all that bad, once you get the hang of it :P
Hi,
So have I. But if segments are scaring him off, he should
know that he can write programs without segment addressing.
I also wrote a program that had a data structure that was
addressed by adding a multiple of the array index to the segment
register and left the offset alone. Sort of a Python confuse a cat
program?
Cheers,
Steve N.
'scuse my closed mindedness, but C... Yetch... Choke choke...
Fortran I can stand... Maybe.
BUT--- Thank you guys for the Tiny model suggestion! 8) I don't write much large stuff in ASM because I'm an amateur.
So thank you very much!
So...
Model: Tiny
Cpu: 8088
What are the typical source code statements again???
here is a simple TINY model program...
upon entry, DS = CS = SS = ES = PSP segment
PSP:80h is where the command line tail length byte is, followed by the command line string, if any
the string is normally terminated with a carriage return
PSP:100h is the program entry point
there are various other data items in the PSP, as well
with TINY model programs, you own all available memory up to 9FFF:FFFF
the program, including the stack, data, and PSP, must fit into 64 Kb
.MODEL Tiny
OPTION CaseMap:None
;******************************************************************************
.CODE
;------------------------------------------------------------------------------
ORG 100h
_main PROC
;display the banner message
mov dx,offset s$Banner
mov ah,9
int 21h
;wait for a keypress and remove it from the buffer
mov ah,1
int 16h
mov ah,0
int 16h
;terminate program
mov ax,4C00h
int 21h
_main ENDP
;******************************************************************************
s$Banner db 'Hello World!',0Dh,0Ah,24h
;******************************************************************************
END _main
to assemble it, use the 16-bit linker...
\masm32\bin\ml /c MyProg.asm
\masm32\bin\Link16 /TINY MyProg.obj;
Thank you very much! Happy holidays!
8)
Aw. I don't have link16.exe (I do have the old MASM615 package)
Are you sure it isn't in \Masm32\bin\link16.exe ? If not, see attachment.
you probably did not install the masm32 package
also, link16 (16-bit) is sometimes named link563 (ver 5.63)
Must be because I use version Legacy9.
Thanks a bunch guys! I'm now all set if I need it!
:t
Now if I could only get DirectX7 or 8 to work in FreeBasic....
:(