Reference Section
_cget_script {
float xloc, yloc;
_cput_str("\n\rInput X,Y coordinates: ");
_cget_script(126,__FLOAT_P _Nolimit _2 _Calign _SKPCHR ","
__FLOAT_P _Nolimit _2 _Calign, &xloc, &yloc);
...
}
#include <inline.h>
{
char msg[] = "\n\rInput X,Y coordinates: ";
char xy_script[] = __FLOAT_P _Nolimit _2 _Calign_Exp
_SKPCHR ","
__FLOAT_P _Nolimit _2 _Calign_Exp;
float xloc, yloc;
float *xy_params[2];
pushss
pop es /* ES=SS (param list on stack) */
xy_params[0] = &xloc;
xy_params[1] = &yloc;/* load param list w/pointers */
xy_read:
lea si,msg /* SI = offset of message */
cput_str(); /* display message */
lea si,xy_script/* SI = offset of script */
lea di,xy_params/* DI = offset of param list */
mov cx,126 /* CX = maximum chars to read */
cget_script(); /* read x,y coordinates */
je ok
ja again
jmp xy_read /* error, invalid input */
again: /* error, insufficient input */
jmp xy_read
ok: /* successful, continue */
...
}
Source file _SIOCGET.ASM
ASM equivâ
{
float xloc = 12.70, yloc = -34.0;
...
_cput_script("\n\rX co-ordinate: "__FLOAT_P _8 _2_Fix
_Ralign _REP _12 " "
"\n\rY co-ordinate: "__FLOAT_P _8 _2_Fix
_Ralign, &xloc, &yloc);
...
}
#include <inline.h>
{
float xloc = 12.70, yloc = -34.0;
float *xy_params[2];
char xy_script[] = "\n\rX co-ordinate: "__FLOAT_P _8 _2_Fix
_Ralign _REP _12 " "
"\n\rY co-ordinate: "__FLOAT_P _8 _2_Fix
_Ralign;
...
xy_params[0] = &xloc;
xy_params[1] = &yloc;/* load param list w/ptrs */
pushss
pop es /* ES = SS (param on stack) */
lea si,xy_script/* DS:SI -> script string */
lea di,xy_params/* ES:DI -> parameter list */
cput_script(); /* display x,y coordinates */
...
}
Source file _SIOCPUT.ASM
ASM equivâ
{
float xloc, yloc;
...
_put_str("\n\rInput X,Y coordinates: ");
_get_script(__FLOAT_P _Nolimit _2 _Calign_Exp _SKPCHR ","
__FLOAT_P _Nolimit _2 _Calign_Exp, &xloc, &yloc);
...
}
#include"inline.h"
{
char str[] = "\n\rInput X,Y coordinates: ";
char xy_script[] = __FLOAT_P _Nolimit _2 _Calign_Exp
_SKPCHR ","
__FLOAT_P _Nolimit _2 _Calign_Exp;
float xloc, yloc;
float *xy_params[2];
...
xy_params[0] = &xloc;
xy_params[1] = &yloc;/* load list w/ptrs */
xy_read:
lea si,str /* SI -> message */
put_str();
lea si,xy_script /* SI -> script string */
lea di,xy_params /* DI -> parameter list */
mov cx,126 /* CX = max num of input chars */
get_script(); /* read x,y coordinates */
je ok
ja again
jmp xy_read /* error, invalid input */
again: /* error, insufficient input */
jmp xy_read
ok: /* successful, continue */
...
}
Source file _SIODGET.ASM ASM equiv GET_SCRIPT
{
float xloc, yloc;
int count;
_put_str("\n\rInput X,Y coordinates: ");
_hget_script(0, &count, __FLOAT_P _Nolimit _2 _Calign
_SKPCHR ","
__FLOAT_P _Nolimit _2 _Calign, &xloc, &yloc);
...
}
#include <script.h>
{
char *str;
char xy_script[] = __FLOAT_P _Nolimit _2 _Calign_Exp
_SKPCHR ","
__FLOAT_P _Nolimit _2 _Calign_Exp;
float xloc, yloc;
float *xy_params[2];
xy_params[0] = &xloc;
xy_params[1] = &yloc;/* load param list w/ptrs */
xy_read:
str = "\n\rInput X,Y coordinates: ";
mov si,str /* SI = offset of str */
cput_str(); /* display prompt */
lea si,xy_script /* SI = offset of xy_script */
lea di,xy_params/* DI = offset param list */
xor bx,bx /* BX = handle of STDIN */
hget_script(); /* read x,y coordinates,
CX = num char written */
je ok
ja again
jmp xy_read /* error, invalid input */
again: /* error, insufficient input */
jmpxy_read
ok: /* successful, continue */
...
}
Source file _SIOHGET.ASM ASM equiv HGET_SCRIPT
{
int count;
float xloc = 12.70, yloc = -34.0;
_hput_script(1, &count, "\n\rX co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign _REP _12 " "
"\n\rY co-ordinate: "__FLOAT_P _8 _2_Fix
_Ralign, &xloc, &yloc);
/* output x,y coordinates to STDOUT */
...
}
#include <script.h>
{
char xy_script[] = "\n\rX co-ordinate: "__FLOAT_P _8 _2_Fix
_Ralign _REP _12
"\n\rY co-ordinate: "__FLOAT_P _8 _2_Fix
_Ralign;
float xloc = 12.70, yloc = -34.0;
float *xy_params[2];
xy_params[0] = &xloc;
xy_params[1] = &yloc;/* load param list w/ptrs */
mov bx,1 /* BX = standard out */
pushss
pop es /* ES = SS (params on stack) */
lea si,xy_script/* SI = offset script string */
lea di,xy_params/* DI = offset of param list */
hput_script(); /* output x,y coordinates,
CX = num char written */
...
}
Source file _SIOHPUT.ASM ASM equiv HPUT_SCRIPT
{
float xloc = 12.70, yloc = -34.0;
_put_script("\n\rX co-ordinate: "__FLOAT_P _8 _2_Fix _Ralign
_REP _12 " "
"\n\rY co-ordinate: "__FLOAT_P _8 _2_Fix _Ralign,
&xloc, &yloc);
...
}
#include <inline.h>
{
char xy_script[] = "\n\rX co-ordinate: "__FLOAT_P _8 _2_Fix
_Ralign _REP _12 " "
"\n\rY co-ordinate: "__FLOAT_P _8 _2_Fix
_Ralign;
float xloc = 12.70, yloc = -34.0;
float *xy_params[2];
xy_params[0] = &xloc;
xy_params[1] = &yloc;/* load parameter list w/ptrs */
pushss
pop es /* ES=SS (param list on stack) */
lea si,xy_script /* SI = offset of script */
lea di,xy_params /* DI = offset of param list */
put_script(); /* output x,y coordinates */
...
}
Source file _SIODPUT.ASM ASM equiv PUT_SCRIPT
{
int count;
float xloc, yloc;
_sget_script(&count," 1.234 , 1.32342 ",
__FLOAT_P _Nolimit _2 _Calign_Exp
_SKPCHR ","
__FLOAT_P _Nolimit _2 _Calign_Exp,
&xloc, &yloc);
...
}
#include <inline.h>
{
char *str;
char xy_script[] = __FLOAT_P _Nolimit _2 _Calign_Exp
_SKPCHR ","
__FLOAT_P _Nolimit _2 _Calign_Exp;
float xloc, yloc;
float *xy_params[2];
...
xy_params[0] = &xloc;
xy_params[1] = &yloc;/* load parameter list w/ptrs */
str = "1.234,1.655";/* string to convert */
mov ax,str
mov bx,ss /* BX:AX -> string */
pushss
pop es /* ES=DS (param list on stack) */
lea si,xy_script /* SI = offset script string */
lea di,xy_params /* DI = offset param list */
sget_script(); /* read x,y coordinates,
CX = num char written */
...
}
Source file _SIOSGET.ASM ASM equiv SGET_SCRIPT
{
char buffer[126];
int count;
float xloc = 12.70, yloc = -34.0;
_sput_script(sizeof(buffer),&count,buffer,"\n\rX co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign _REP _12 " "
"\n\rY co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign, &xloc, &yloc);
/* output result to buffer */
...
}
#include <inline.h>
{
float xloc = 12.70, yloc = -34.0;
float *xy_params[2];
char buffer[126];
char xy_script[] = "\n\rX co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign _REP _12 " "
"\n\rY co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign;
...
xy_params[0] = &xloc;
xy_params[1] = &yloc;
mov cx,126 /* CX = size of buffer */
mov bx,ss
lea ax,buffer /* BX:AX -> output buffer */
pushss
pop es /* ES=SS (params on stack) */
lea si,xy_script /* SI -> script string */
lea di,xy_params /* DI -> parameter list */
sput_script(); /* output result to buffer */
...
}
Source file _SIOSPUT.ASM ASM equiv SPUT_SCRIPT
float num;
struct {
float *xloc;
float yloc;
} params = {&num, -34.0};
...
{
_cput_str("\n\rInput X,Y coordinates: ");
_vcget_script(126,__FLOAT_P _Nolimit _2 _Calign
_SKPCHR ","
__FLOAT _Nolimit _2 _Calign, &params);
...
}
#include <include.h>
float xloc, yloc;
float *xy_params[2] = {&xloc, &yloc};
...
{
char *str = "\n\rInput X,Y coordinates: ";
char *xy_script = __FLOAT_P _Nolimit _2 _Calign_Exp
_SKPCHR ","
__FLOAT_P _Nolimit _2 _Calign_Exp;
mov cx,126
xy_read:
lea si,str /* SI -> message */
cput_str();
lea si,xy_script/* SI -> script string */
mov di,xy_params/* DI -> parameter list */
vcget_script(); /* read x,y coordinates */
je ok
ja again
jmp xy_read /* error, invalid input */
again:... /* error, insufficient input */
jmp xy_read
ok:... /* successful, continue */
}
Source file _SIOVCGT.ASM ASM equiv CGET_SCRIPT
float num = 12.70;
struct {
float *xloc;
float yloc;
} params = {&num, -34.0};
...
{
_vcput_script("\n\rX co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign
_REP _12 " "
"\n\rY co-ordinate: "
__FLOAT _8 _2_Fix _Ralign, &params);
...
}
#include <inline.h>
float xloc = 12.70, yloc = -34.0;
float *xy_params[2] = {&xloc, &yloc};
{
char *xy_script = "\n\rX co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign _REP _12 " "
\n\rY co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign;
pushds
pop es /* ES=DS */
lea si,xy_script /* SI = offset of script */
mov di,xy_params /* DI = offset of param list */
vcput_script(); /* display x,y coordinates */
...
}
Source file _SIOVCPT.ASM ASM equiv CPUT_SCRIPT
float num;
struct {
float *xloc;
float yloc;
} params = {&num};
...
{
_put_str("\n\rInput X,Y coordinates: ");
_vget_script(126,__FLOAT_P _Nolimit _2 _Calign_Exp
_SKPCHR ","
__FLOAT _Nolimit _2 _Calign_Exp, &params);
...
}
#include <inline.h>
float xloc, yloc;
float *xy_params[2] = {&xloc, &yloc};
...
{
char str[] = "\n\rInput X,Y coordinates: ";
char xy_script[] = __FLOAT_P _Nolimit _2 _Calign_Exp
_SKPCHR ","
__FLOAT_P _Nolimit _2 _Calign_Exp;
...
pushes
pop ds
mov cx,126 /* CX = max num of input chars */
xy_read:
lea si,str /* SI -> message */
put_str();
lea si,xy_script/* SI = offset of script */
mov di,xy_params /* DI = offset of params list */
vget_script(); /* read x,y coordinates */
je ok
ja again
jmp xy_read /* error, invalid input */
again: /* error, insufficient input */
jmp xy_read
ok:... /* successful, continue */
}
Source file _SIOVDGT.ASM ASM equiv GET_SCRIPT
float num;
struct {
float *xloc;
float yloc;
} params = {&num};
...
{
int count;
_vhget_script(handle, &count,
__FLOAT_P _Nolimit _2 _Calign
_SKPCHR ","
__FLOAT _Nolimit _2 _Calign, &params);
...
}
#include <inline.h>
float xloc, yloc;
float *xy_params[2] = {&xloc, &yloc};
{
char xy_script[] = __FLOAT_P _Nolimit _2 _Calign_Exp
_SKPCHR ","
__FLOAT_P _Nolimit _2 _Calign_Exp;
int handle;/* specify handle of device to read */
...
pushds
pop es /* ES = DS */
xy_read:
lea si,xy_script /* SI -> script string */
mov di,xy_params /* DI -> parameter list */
mov bx,handle/* BX = DOS file handle */
vhget_script(); /* read x,y coordinates,
CX = num char read */
je ok
ja again
... /* error, invalid input */
jmp xy_read
again:/* error, insufficient input */
jmpxy_read
ok:... /* successful, continue */
}
Source file _SIOVHGT.ASM ASM equiv HGET_SCRIPT
float num = 12.70;
struct {
float *xloc;
float yloc;
} params = {&num, -34.0};
...
{
int count;
_vhput_script(1,&count,"\n\rX co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign
_REP _12 " "
"\n\rY co-ordinate: "
__FLOAT _8 _2_Fix _Ralign, &params);
/* output x,y coordinates to STDOUT */
...
}
#include <inline.h>
float xloc = 12.70, yloc = -34.0;
float *xy_params[2] = {&xloc, &yloc};
...
{
char xy_script[] = "\n\rX co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign _REP _12
\n\rY co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign;
...
mov bx,1 /* BX = standard out */
pushds
pop es /* ES = DS */
lea si,xy_script/* SI = offset script string */
mov di,xy_param/* DI = offset param list */
vhput_script(); /* output x,y coordinates,
CX = num char written */
...
}
Source file _SOIVHPT.ASM ASM equiv HPUT_SCRIPT
float num = 12.70;
struct {
float *xloc;
float yloc;
} params = {&num, -34.0};
...
{
_vput_script("\n\rX co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign
_REP _12 " "
"\n\rY co-ordinate: "
__FLOAT _8 _2_Fix _Ralign, &params);
...
}
#include <inline.h>
float xloc = 12.70, yloc = -34.0;
float *xy_params[2] = {&xloc, &yloc};
...
{
char xy_script[] = "\n\rX co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign _REP _12 " "
\n\rY co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign;
...
pushds
pop es /* ES=DS (params on stack) */
lea si,xy_script /* SI = offset script string */
mov di,xy_params /* DI = offset param list */
vput_script(); /* output x,y coordinates */
...
}
Source file _SIOVDPT.ASM ASM equiv PUT_SCRIPT
float num;
struct {
float *xloc;
float yloc;
} params = {&num};
...
{
int count;
_vsget_script(&count, "1.2345, 12.34"
__FLOAT_P _Nolimit _2 _Calign_Exp
_SKPCHR ","
__FLOAT _Nolimit _2 _Calign_Exp, &params);
...
}
#include <inline.h>
float xloc, yloc;
float *xy_params[2];
...
{
char instr[] = "1.234, 1.655";
char xy_script[] = __FLOAT_P _Nolimit _2 _Calign_Exp
_SKPCHR ","
__FLOAT_P _Nolimit _2 _Calign_Exp;
...
lea ax,instr
mov bx,ss /* BX:AX -> string */
pushds
pop es /* DS=SS (params on stack) */
lea si,xy_script/* SI = offset script string */
mov di,xy_params /* DI = offset param list */
vsget_script(); /* read x,y coordinates,
CX = num char read */
...
}
Source file _SIOVSGT.ASM ASM equiv SGET_SCRIPT
float num = 12.70;
struct param_list {
float *xloc;
float yloc;
} params = {&num, -34.0};
...
{
int count;
char buffer[126];
_vsput_script(&count, sizeof(buffer), buffer,
"\n\rX co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign _REP _12 " "
"\n\rY co-ordinate: "
__FLOAT _8 _2_Fix _Ralign, &params);
/* output result to buffer */
...
}
#include <inline.h>
float xloc = 12.70, yloc = -34.0;
float *xy_params[] = {&xloc, &yloc};
{
char buffer[126];
char xy_script[] = "\n\rX co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign _REP _12 " "
\n\rY co-ordinate: "
__FLOAT_P _8 _2_Fix _Ralign;
...
mov cx,126 /* CX = size of buffer */
mov bx,ss
lea ax,buffer /* BX:AX -> output buffer */
pushss
pop es /* ES=SS (params on stack) */
lea si,xy_script /* SI = offset script string */
lea di,xy_params /* DI = offset param list */
vsput_script(); /* output result to buffer,
CX = num char written */
...
}
Source file _SIOVSPT.ASM ASM equiv SPUT_SCRIPT