-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathQSTRINGS.ASM
66 lines (47 loc) · 1.72 KB
/
QSTRINGS.ASM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
; Copyright 1990-2021, Jerome Shidel
; Released Under Mozilla Public License 2.0
; This project and related files are subject to the terms of the Mozilla Public
; License, v. 2.0. If a copy of the MPL was not distributed with this file, You
; can obtain one at http://mozilla.org/MPL/2.0/.
; QCrt 9.1
; For DOS, Nasm and Pascal 16-bit edition.
; This assembly language library uses the pascal calling convention. All calls
; are far calls. Data parameters passed to procedure and functions are pushed
; onto the stack in reverse order and are popped automatically by the function
; or procedure on their return. Simple function return values are usually set
; in AL, AX or in the DX:AX pair. DS, SS, SP, BP are preserved. However, the
; state of all other registers are not guaranteed. So, if calling this library
; from a language other than Pascal, such as from more assembly code, you must
; take care of preserving any registers and values you wish to retain yourself!
%idefine QCrt 9.1 - QStrings
%ifndef TargetOS
%idefine TargetOS DOS
%endif
%ifndef TargetCPU
%idefine TargetCPU 8086
%endif
%ifndef QDefines
%include "QDEFINES.INC"
%endif
%ifidni __OUTPUT_FORMAT__, bin
jmp SkipOverQStrings
%endif
; Internal Data Segment
section Section_DATA
%ifidn __OUTPUT_FORMAT__, obj
section Section_SHARED
%else
%endif
section Section_CODE
; ------------------- Internal Functions; Don't call them directly !!!!
; ------------------- Exported Functions
xfunction InitQStrings, boolean
mov al, TRUE
xret
xprocedure DoneQStrings
xret
SkipOverQStrings:
%ifidni __OUTPUT_FORMAT__, bin
%warning Auto-initialize QuickDOS routines.
pushcall InitQStrings
%endif