BBS: Inland Empire Archive Date: 06-19-92 (21:28) Number: 962 From: MATT HART Refer#: NONE To: JEFF FREEMAN Recvd: NO Subj: Tasm Or Masm? Conf: (2) Quik_Bas
JF> techinical -- just this. Can TASM be called from QB - or do I need to
JF> go with MASM?
MASM is easier. It includes scripts for BASIC that include
conventions for using variable names to pass parameters
rather than having to set them up manually as in TASM.
Like this:
CALL MyRoutine(Variable%)
In MASM, Variable% could be received with:
.MODEL MEDIUM, BASIC
.CODE
MyRoutine PROC Variable:Word
MOV BX,Variable ; Address of Variable in BX
MOV AX,[BX] ; AX now has the value of Variable
Alternately, you can use:
CALL MyRoutine(BYVAL Variable%)
if you don't need to pass anything back. It's faster.
MyRoutine PROC Variable:Word
MOV AX,Variable ; AX has value of Var directly
With most any other assembler, you must get parameters from
the stack. This may not be good code, but you'll get the
idea. I did this at first with MASM, till I learned better!
MyRoutine PROC
PUSH BP
PUSH SP
MOV BX,[BP+4] ; Address of Variable
MOV AX,[BX]
POP SP
POP BP
Also, when you return from TASM, you must pop the variables
off the stack manually:
RET 2
With MASM, you always just use
RET
It knows how many parameters there were based on the
parameter list at the top of the program. You can pass
BYVAL to the TASM routine too, and save the MOV AX,[BX]
step.
I'd definitely recommend MASM. I code using Brief and have
set up macros to load the hypertext quickhelp program (the
one in the QuickBASIC IDE) based on a keyword or without
one. So even though I don't code in the environment, I
still have access to the same help stuff - but it combines
all the QB help, BC and LINK, MASM, memory areas, system
interrupts, you name it!
---
* Origin: Midnight Micro! V.32/REL (918)451-3306 (1:170/600)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET