|
|
D1
|
QL date in seconds
|
D1
|
put queue or Null.
IO.SERIO kehrt hinter eine table aus three lonword addresses zurück, in der
die routines to pending data input, zum fetching a Byte and zum Senden mit
ihrer absolute address verzeichnet sind. re to im Abschnitt 3.3.2.3.3.
|
cv.ildat
|
CN.DATE
|
bu
|
236 $0EC
|
|
|
Datum and time in ASCII convert. rel A6
|
|
cv.ilday
|
CN.DAY
|
bu
|
238 $0EE
|
|
|
Tag as ASCII String aus dem Datum ermitteln, rel A6
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
D1
|
QL date in seconds
|
D1
|
|
|
|
A1
|
Ptr to buffer(A6)
|
A1
|
Ptr to den String
|
Im buffer sind 22 Bytes space (6 Bytes for CN.DAY) bereitzuhalten.
|
cv.fpdec
|
CN.FTOD
|
bu
|
240 $0F0
|
|
|
f.p. number in ASCII String convert. rel A6
|
|
cv.iwdec
|
CN.ITOD
|
bu
|
242 $0F2
|
|
|
integer in ASCII String. rel A6
|
|
cv.ibbin
|
CN.ITOBB
|
bu
|
244 $0F4
|
|
|
Byte in binary ASCII String. rel A6
|
|
cv.iwbin
|
CN.ITOBW
|
bu
|
246 $0F6
|
|
|
Word in binary ASCII String. rel A6
|
|
cv.ilbin
|
CN.ITOBL
|
bu
|
248 $0F8
|
|
|
Longword in binary ASCII String. rel A6
|
|
cv.ibhex
|
CN.ITOHB
|
bu
|
250 $0FA
|
|
|
Byte in Sedecimal ASCII String. rel A6
|
|
cv.iwhex
|
CN.ITOHW
|
bu
|
252 $0FC
|
|
|
Word in Sedecimal ASCII String. rel A6
|
|
cv.ilhex
|
CN.ITOHL
|
bu
|
254 $0FE
|
|
|
Longword in Sedecimal ASCII String. rel A6
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
|
|
D1 - D3
|
smashed
|
|
|
A0
|
Ptr to buffer
|
A0
|
Ptr zum buffer
|
|
|
A1
|
Ptr to number im RI-Stack
|
A1
|
Ptr to Stack
|
|
|
|
|
A2, A3
|
smashed
|
|
|
A6
|
reference address
|
|
|
NOERR
Die number to 0(A1,A6.L) geht as String to 0(A0,A6.L).
|
cv.decfp
|
CN.dittoP
|
bu
|
256 $100
|
|
|
decimal ASCII String in f.p. number. rel A6
|
|
cv.deciw
|
CN.dittoI
|
bu
|
258 $102
|
|
|
decimal ASCII String in 16-Bit number. rel A6
|
|
cv.binib
|
CN.BTOIB
|
bu
|
260 $104
|
|
|
8 Bit binary ASCII String in Byte. rel A6
|
|
cv.biniw
|
CN.BTOIW
|
bu
|
262 $106
|
|
|
16 Bit binary ASCII String in Word. rel A6
|
|
cv.binil
|
CN.BTOIL
|
bu
|
264 $108
|
|
|
32 Bit binary ASCII String in Longword. rel A6
|
|
cv.hexib
|
CN.HTOIB
|
bu
|
266 $10A
|
|
|
2 character sedecimal ASCII String in Byte. rel A6
|
|
cv.hexiv
|
CN.HTOIW
|
bu
|
268 $10C
|
|
|
4 character Sedecimal ASCII String in Word. rel A6
|
|
cv.hexil
|
CN.HTOIL
|
bu
|
270 $10E
|
|
|
8 character sedecimal ASCII String in Longword. rel A6
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
|
|
D1 - D3
|
smashed
|
|
|
D7
|
0 or ptr to end of buffer
|
|
|
|
|
A0
|
Ptr to String im buffer
|
A0
|
Ptr zum buffer
|
|
|
A1
|
Ptr to RI-Stack
|
A1
|
beginning der number
|
|
|
|
|
A2, A3
|
smashed
|
|
|
A6
|
reference address
|
|
|
ERR.XP -17 conversion failed
Bei Fehlern bleiben A0 and A1 unchanged.
Der String to 0(A0,A6.L) geht as number to 0(A1,A6.L).
Im buffer (A1,A6.L) muß sufficient space zum Rechnen sein.
|
sb.inipr
|
BP.INIT
|
bp
|
272 $110
|
|
|
Installieren einer Anzahl SBasic extensions. {4.5.2}
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
|
|
D2
|
smashed - nur to {2}
|
|
|
A1
|
Adr der definition list
|
A1
|
smashed
|
|
|
|
|
A4
|
smashed (?)
|
|
sb.gtint
|
CA.GTINT
|
bp
|
274 $112
|
|
|
16-Bit numbers SBasic parameters fetch. {4.5.4.2} rel A6
|
|
sb.gtfp
|
CA.GTFP
|
bp
|
276 $114
|
|
|
f.p. numbers ditto {4.5.4.3} rel A6
|
|
sb.gtstr
|
CA.GTSTR
|
bp
|
278 $116
|
|
|
Strings ditto {4.5.4.5} rel A6
|
|
sb.gtlin
|
CA.GTLIN
|
bp
|
280 $118
|
|
|
Long integer ditto {4.5.4.4} rel A6
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
|
|
D1, D2
|
smashed
|
|
|
|
|
D4, D6
|
smashed
|
|
|
|
|
D3.W
|
number der fetched Parameter
|
|
|
|
|
A0
|
smashed
|
|
|
|
|
A1
|
RI-Stack, 1st Parameter
|
|
|
|
|
A2
|
smashed
|
|
|
A3
|
Ptr bottom Name Table
|
|
|
|
|
A5
|
ditto, top
|
|
|
|
|
A6
|
reference address
|
A6
|
reference, u.U. changed
|
ERR.BP -15
ERR.XP -17
saparator bits der Name Table werden smashed.
Der lesende SBasic job, and im Gefolge evtl. auch die anderen, can durch den
call seine position and die Ptr relations change. Allein die depth des
RI-Stack remains mit Sicherheit erhalten, not seine Position.
|
qa.resri
|
BV.CHRIX
|
bp
|
282 $11A
|
|
|
Reserviert space im arithmetic stack. {4.5.6} rel A6
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
D1
|
requested Anzahl Bytes
|
D1 - D3
|
smashed
|
|
|
A1
|
|
A1
|
nur SQ {15}: smashed
|
SMSQ without Möglichkeit der error
handling
ERR.OM -3 nur to {15}
ERR.NC -1 bei MINERVA keine error
Nach {4} sind die other routines zur memory manipulation auch der anderen
areae ebenfalls vectorized and wie die anderen vectors aufzurufen. Obgleich
officially not documented, greifen commonly verbreitete extensions darauf
zurück (.B. TK2). Es steht daher zu hoffen, daß sie auch in künftigen Systems
in gleicher Form present sein werden...
Bei einigen der calls wird im Rom bereits eine Anzahl Bytes in D1 preset
(s.u.), andere require die Angabe separately. Die in {4} angegebenen vectors
liegen in diesen cases to 2 Bytes higher address. Es wird sinnvoll sein, wo
present, die requested length in multiples der - system dependent - Zahlen
anzugeben, diese also den Rom-Daten zu entnehmen and sie not as known
vorauszusetzen.
Die Offsets to {4, 2/92} mit d1.l Bytes and running ptr :
|
0
|
00
|
BV.CHRIX
|
RI Stack
|
|
bv.rip
|
88
|
$58
|
|
4
|
04
|
BV.CHBTX
|
Backtrack Stack
|
$0C Bytes
|
bv.btp
|
72
|
$48
|
|
6
|
06
|
BV.CHBTX
|
Backtrack Stack
|
|
bv.btp
|
72
|
$48
|
|
10
|
$0A
|
BV.CHTGX
|
Temp. Graph Stack
|
$04
|
bv.tgp
|
80
|
$50
|
|
12
|
$0C
|
BV.CHTGX
|
Temp. Graph Stack
|
|
bv.tgp
|
80
|
$50
|
|
16
|
$10
|
BV.CHNTX
|
Name Table
|
$08
|
bv.ntp
|
28
|
$1C
|
|
18
|
$12
|
BV.CHNTX
|
Name Table
|
|
bv.ntp
|
28
|
$1C
|
|
22
|
$16
|
BV.CHRTX
|
Return Table
|
$18 (MI)
|
bv.rtp
|
60
|
$3c
|
|
|
|
|
|
$16 (MGG)
|
|
|
|
|
24
|
$18
|
BV.CHRTX
|
Return Table
|
|
bv.rtp
|
60
|
$3c
|
|
28
|
$1C
|
BV.CHBFX
|
Basic-buffer
|
|
bv.bfp
|
4
|
04
|
|
32
|
$20
|
BV.CHTKX
|
Token List
|
|
bv.tkp
|
12
|
$0C
|
|
36
|
$24
|
BV.CHNLX
|
Name list
|
|
bv.nlp
|
36
|
$24
|
|
40
|
$28
|
BV.CHVVX
|
Variable values
|
(not SQ)
|
bv.vvp
|
44
|
$2C
|
|
44
|
$2C
|
BV.CHCHX
|
channel table
|
|
bv.chp
|
52
|
$34
|
|
48
|
$30
|
BV.CHLNX
|
line numbers
|
|
bv.lnp
|
68
|
$44
|
|
52
|
$34
|
BV.CHPFX
|
program
|
|
bv.pfp
|
20
|
$14
|
Die new angegebenen vectors werden aufgerufen
|
|
|
move.l
|
#space,d1
|
requested size
|
|
|
|
move.w
|
$011a,a2
|
bv.chrix
|
|
|
|
jmp
|
ofs(a2)
|
ausführung mit offset dazu
|
|
qa.op
|
RI.EXEC
|
ar
|
284 $11C
|
|
|
Executes eine arithmetic Operation aus. {4.5.7} rel A6
|
|
qa.mop
|
RI.EXECB
|
ar
|
286 $11E
|
|
|
Executes eine Group of arithmetic Operations aus. rel A6
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
D0.W
|
RI.EXEC: RI Opcode (s.u.)
|
|
|
|
|
D7
|
RI.EXP {1} till QDOS 1.03 & MINERVA: 0
|
|
|
A1
|
RI-Stack rel(A6)
|
A1
|
adjusted
|
|
|
A3
|
RI.EXECB: code table abs.
|
|
|
|
|
A4
|
RI.EXECB: Variable rel(A6)
|
|
|
ERR.OV -18
Die kleingeschriebenen Op-Codes gelten nur for MINERVA.
Abgekürzt:
tos Top Of Stack, das unmittelbar accessible Element,
nos Next On Stack, das danach eingetragene Element.
top Top Of Stack to einer Operation
|
Name
|
Code
|
Stack
|
Function
|
|
RI.TERM
|
00
|
0
|
terminates die arithmetic operations.
|
|
ri.one
|
01
|
-6
|
Constant One ablegen
|
|
RI.NINT
|
02
|
+4
|
rounded Integer
|
|
ri.zero
|
03
|
-6
|
Constant Null ablegen
|
|
RI.INT
|
04
|
+4
|
truncated Integer
|
|
ri.n
|
05
|
-6
|
Byte in f.p. number -128 till 127
|
|
RI,.NLINT
|
06
|
+2
|
f.p. in rounded long Integer
|
|
ri.k
|
07
|
-6
|
(?) s. User Guide
|
|
RI.FLOAT
|
08
|
-4
|
Integer to f.p.
|
|
ri.flong
|
09
|
-2
|
long Integer to f.p.
|
|
RI.ADD
|
10
|
+6
|
top := tos + nos
|
|
RI.SUB
|
12
|
+6
|
top := nos - tos
|
|
ri.halve
|
13
|
0
|
top := tos / 2
|
|
RI.MULT
|
14
|
+6
|
top := tos * nos
|
|
ri.doubl
|
15
|
0
|
top := tos * 2
|
|
RI.DIV
|
16
|
-6
|
top := nos / tos
|
|
ri.recip
|
17
|
0
|
tos := 1 / tos
|
|
RI.ABS
|
18
|
0
|
tos := | tos |
|
|
ri.roll
|
19
|
0
|
tos: fp1 fp2 fp3 => tos: fp2 fp3 fp1 (?)
|
|
RI.NEG
|
20
|
0
|
tos := - tos
|
|
ri.over
|
21
|
-6
|
tos: fp1 fp2 => tos: fp2 fp1 fp2
|
|
RI.DUP
|
22
|
-6
|
tos: fp1 => tos: fp1 fp1
|
|
ri.swap
|
23
|
0
|
tos: fp1 fp2 => tos: fp2 fp1
|
|
RI.COS
|
24
|
0
|
cosinus
|
|
RI.SIN
|
26
|
0
|
sinus
|
|
RI.TAN
|
28
|
0
|
tangent
|
|
RI.ASIN
|
30
|
0
|
arcus sinus
|
|
RI.ACOS
|
32
|
0
|
arcus cosinus
|
|
RI.ATAN
|
34
|
0
|
arcus tangent
|
|
ri.arg
|
35
|
+6
|
tos, nos: k * cis( arg )
|
|
RI.ACOT
|
36
|
0
|
arcus cotangent
|
|
ri.mod
|
37
|
+6
|
sqrt( tos^2 + nos°2 )
|
|
RI.SQRT
|
38
|
0
|
square root
|
|
ri.sqar
|
39
|
0
|
sqare
|
|
RI.LN
|
40
|
0
|
logarithmus naturalis (requires ca 60 Bytes RI-Stack!)
|
|
RI.LOG10
|
42
|
0
|
lg
|
|
RI.EXP
|
44
|
0
|
exponential function
|
|
ri.power
|
45
|
+2
|
nos(fp) ^ tos(Integer)
|
|
RI.POWFP
|
46
|
+6
|
nos ^ tos
|
|
sb.putp
|
BP.LET
|
bp
|
288 $120
|
|
|
Variable as Parameter new set {4.5.4.6} rel
A6
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
|
|
D1 - D3
|
smashed
|
|
|
|
|
A0 - A2
|
smashed
|
|
|
A3
|
bottom der Name Table
|
|
|
|
iou.dnam
|
IO.NAME
|
gu
|
290 $122
|
|
|
Decodes a device name. {3.3.2.3.3}
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
|
|
D1 - D3
|
smashed
|
|
|
A0
|
Ptr to Names
|
|
|
|
|
|
|
A1 - A2
|
smashed
|
|
|
A3
|
Ptr to intermediate memory
|
|
|
error messaging in Gestalt adjusted Return addresses.
All folgenden vectors sind mit Offset $4000 aufzurufen.
Sie sind for SQ sämtlich not defined.
|
|
MD.READ
|
md
|
292 $124
|
|
|
Reads a Sector of Microdrive. Offset $4000
|
|
|
MD.WRITE
|
md
|
294 $126
|
|
|
Schreibt a Sector to Microdrive. Offset $4000
|
|
|
MD.VERIN
|
md
|
296 $128
|
|
|
Verifies a Sector. Offset $4000
|
|
|
MD.SECTR
|
md
|
298 $12A
|
|
|
Reads Sektor header of Microdrive. Offset $4000
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
|
|
D1
|
file number
|
|
|
|
|
D2
|
block number
|
|
|
|
|
D0, D3-D7
|
smashed
|
|
|
A0
|
|
A0
|
smashed
|
|
|
A1
|
buffer
|
A1
|
end of buffer
|
|
|
|
|
A2
|
smashed
|
|
|
A3
|
$18020
|
|
|
|
|
|
|
A4, A5
|
smashed
|
|
MD.WRITE:
|
(A7)
|
{File no .b | Block no. .b}
|
|
|
Der Stack pointer wird for die Rückkehr entsprechend adjusted:
0(A7) error exit; bei MD.SECTR unbrauchbarer data storage medium
2(A7) execution error free; bei MD.SECTR: bad header
4(A7) nur MD.SECTR: execution error free.
MD.WRITE geht stets without error to (A7).
An den Plätzen $12C till $013A stehen vectors des Basic zur Intialisierung,
Syntaxprüfung and der Listenausgabe. Details werden dazu 'officially' not
genannt.
Die folgenden vectors gelten nur for MINERVA.
|
|
UT.ISTR
|
|
316 $13C
|
|
|
INSTR operation Type 3 rel A6
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
|
|
D1
|
Position des String
|
|
|
A0
|
zu suchender String
|
|
|
|
|
A1
|
abzusuchender String
|
|
|
D1 = 0 Fehlanzeige,
D1 else ab 1 zählende Position, wo der gesuchte String in (A1)+ found was.
|
|
GO.NEW
|
|
318 $13E
|
|
|
NEW command execute
|
|
|
|
|
|
|
Die "most Register" werden smashed.
|
|
BP.CHAN
|
|
320 $140
|
|
|
channel number fetch, default #1 - rel A6
|
|
|
BP.CHAND
|
|
322 $142
|
|
|
ditto, default in D1.w - rel A6
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
D1
|
default channel no.
|
D1
|
channel number (preserved)
|
|
|
|
|
A0
|
ID, if channel exists
|
|
|
|
|
A2
|
b.chan definition block
|
|
|
A3
|
SBasic parameters
|
A3
|
adjusted
|
|
|
A5
|
ditto, top
|
|
|
ERR.NO -6
Expects a 16bit channel number, else using the default, which is returned by
D1.w.
|
|
BP.CHNID
|
|
324 $144
|
|
|
channel find and ID liefern rel A6
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
D1
|
channel number
|
|
|
|
|
|
|
A0
|
channel ID
|
|
|
|
|
A2
|
SBasic cdt
|
ERR.NO -6, bei unset X-Flag weist A2 über die channel table.
|
|
BP.CHNEW
|
|
326 $146
|
|
|
New SBasic channel einbauen rel A6
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
D1
|
channel number
|
D1
|
|
|
|
A0
|
channel ID
|
A0
|
|
ERR.EX -8 if der channel already present war.
|
|
BP.FNAME
|
|
328 $148
|
|
|
a String / Variable name as file name fetch. rel A6
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
A1
|
RI-Ptr to the names
|
A1
|
|
|
|
A3
|
Parameter ptr
|
A3
|
adjusted
|
|
|
A5
|
Parameter ptr, top
|
|
|
"any sort of error messageing"
NOTE:
"fast return" to one level back if no parameters were given!
(in MI. 1.87 & 1.97)
- Bug fixed in the (more or less) UQLX specific M89 version -
|
|
CA.CNVRT
|
|
330 $14A
|
|
|
data type convert rel A6
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
D0
|
requested Type
|
|
|
|
|
A1
|
RI Stackpointer
|
A1
|
adjusted
|
|
|
A5
|
Parameter ptr, top
|
|
|
ERR.XP -17 conversion failed
Für den requested Type gelten 1, 2 and 3, dazu 4 zur Ermittlung a Flag of
value 0 or 1.
RI-Stack wird dem expected Type entsprechend adjusted.
Der Type der top Entry der name table wird concerted.
Die Entry muß im RI-Stack liegen, der Type in den 4 least significant Bits to
-7(a6,a5.l) mit 0 or 1 for Strings, 2 for f.p. numbers, 3 for 16-Bit integers.
|
|
CA.OPEXE
|
|
332 $14C
|
|
|
Operator execute
|
|
|
CA.EVAL
|
|
334 $14E
|
|
|
Top Übergabestack-Eintragung/RI-Wert ausrechnen
|
|
|
|
|
|
|
"execution of monadic or dyadic operation. no mor comments..."
|
|
IP.KBRD
|
|
336 $150
|
|
|
extended KEYROW Function supervisor mode
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
D1
|
keyrow Data
|
D0, D1
|
smashed
|
|
|
D2
|
shift data
|
D2
|
smashed
|
|
|
|
|
D6
|
smashed
|
|
|
|
|
A1
|
smashed
|
|
|
A2
|
keyboard queue
|
A2
|
|
à ?!%?~0?H call Rückkehr D1 D2 s A2 Adr. der D0 - D2, D6, A1 - A4 Bits D1
Function Bits D2 Function
|
|
Bits D1
|
Function
|
Bits D2
|
Function
|
|
|
31..6
|
don't care
|
31 .. 3
|
don't care
|
|
|
5 .. 3
|
7 - row number
|
2
|
CTRL
|
|
|
2 .. 0
|
column number
|
1
|
SHIFT
|
|
|
|
|
0
|
ALT
|
reading the keyboard.
vector call to implement other keyboards.
Sämtliche möglichen Codes werden received, ggf. doppelte Codes to ALT (255),
diese werden auch von der automatic Tastenwiederholung erfasst.
|
|
IP.KBEND
|
|
338 $152
|
|
|
Tastenabfrage beenden
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
|
|
D0 - D2
|
smashed
|
|
|
D3
|
missed polls
|
|
|
|
|
D5 Bit#4
|
Flag bei gedrückter Taste
|
D5
|
smashed
|
|
|
A2
|
keyboard queue
|
|
|
|
|
|
|
A3
|
smashed
|
SUPERVISOR mode, only (?).
Ist zur Anzeige of Code zur Bedienung fremder keyboards aufzurufen, ob eine
Taste noch pressed wird. Danach sind all KEYROW-entsprechenden Daten mittels
IP.KBENC greifbar.
Nur Bit 4 aus D5 is auswertbar, 0 bedeutet, daß die latest Taste released
was.
|
|
SB.START
|
|
340 $154
|
|
|
a SBasic job einrichten rel A6
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
|
|
|
|
A0
|
ID des command channel - Interpreter Flag
|
|
|
|
A1
|
size des available memory area
|
|
MultiBASIC-Job durch direktes Anspringen - JMP $4000(An).
Das 2nd long(?) word im program memory des Jobs muß die Differenz der Job-Base
zu den BASIC Tables (A6) enthalten.
-
A0
Mit channel ID beginnt der Job, die Quelle zu interpretieren. Bei Null and
without Kanalübergabe mit dem Job-Aufruf wird das standardmäßige Monitor- or
TV screen eingerichtet.
size des memory, -1(a6,a5.l) points to das latest Byte.
is to die Basis des own memory zu setzen.
points to die Übergabeparameter aus dem EXEC-Aufruf.
|
|
MM.MOVE
|
|
344 $158
|
|
|
Move data im memory absolute adressed
|
|
|
MM.MRTOA
|
|
346 $15A
|
|
|
ditto, von relative an absolute address User Mode
|
|
|
MM.MATOR
|
|
48 $15C
|
|
|
ditto, von absolute an relative address User Mode
|
|
|
MM.MRTOR
|
|
350 $15E
|
|
|
ditto, von relative an relative address User Mode
|
|
|
|
|
|
|
|
|
IN:
|
|
OUT:
|
|
|
|
|
|
D0
|
Null
|
|
|
D1
|
Anzahl Bytes >0
|
|
|
|
|
A0
|
destination pointer
|
|
|
|
|
A1
|
source pointer
|
|
|
|
|
A6
|
außer MM.MOVE: reference
|
|
|
Transport stets "memory preserving". Auch odd Addresses in A0 and A1 sind
erlaubt.
Aus dem Basic can MM.MOVE aufgerufen werden:
10 mm_move=peek_w(344):mm_move=mm_move+16384
20 CALL mm_move,anzahlbytes,2,3,4,5,6,7,zieladresse,quellenadresse
top : back : next : content
=
|