
; SVC calls
WriteC		*	0
WriteS		*	1
Write0		*	2
NewLine 	*	3
ReadC		*	4
CLI		*	5
Byte		*	6
Word		*	7
File		*	8
Args		*	9
BGet		*	&a
BPut		*	&b
Multiple	*	&c
Open		*	&d
ReadLine	*	&e
Control 	*	&f
GetEnv		*	&10
Exit		*	&11
SetEnv		*	&12
IntOn		*	&13
IntOff		*	&14
CallBack	*	&15
EnterSVC	*	&16
BreakPt 	*	&17
BreakCtrl	*	&18
UnusedSWI	*	&19
KUpdateMEMC	*	&1A
SetCallBack	*	&1B

WriteI		*	&100

	MACRO
	OSbyte $no,$arg1,$arg2
 [ "$arg2"<>""
	MOV	r2, #$arg2
 ]
 [ "$arg1"<>""
	MOV	r1, #$arg1
 ]
	MOV	r0, #$no
	SWI	Byte
	MEND

	MACRO
	OSword $no,$buffer,$code
 [ "$code"<>""
	ADR	r1, $buffer
 |
	ADD	r1, sb, #$buffer._offset
 ]
	MOV	r0, #$no
	SWI	Word
	MEND

	MACRO
	writes	$Arg1
	ADR	r0, %F00
	SWI	Write0
	B	%F01
00
	=	"$Arg1"
	=	0
	ALIGN
01
	MEND

	MACRO
	writeln $Arg1
	ADR	r0, %F00
	SWI	Write0
	B	%F01
00
	=	"$Arg1"
	=	10, 13, 0
	ALIGN
01
	MEND

	MACRO
	wrch	$Arg1
	SWI	&100+"$Arg1"
	MEND

;
; OSBYTE numbers
ChangeOutput		*	3
ControlCursorEditing	*	4
SetAutoRepeatDelay	*	11
SetAutoRepeatRate	*	12
DisableEvent		*	13
EnableEvent		*	14
ResetSoftKeys		*	18
KeyboardScan		*	121
GetBufferStatus 	*	128
InsertIntoBuffer	*	138
RemoveFromBuffer	*	145
ReadPageFC		*	146
WritePageFC		*	147
ReadWriteTabCharacter	*	219
ReadWriteEscapeStatus	*	229
;
; OSWORD numbers
;
ReadClock	*	1
WriteClock	*	2
ReadTimer	*	3
WriteTimer	*	4
;
; Event numbers
;
BufferEmptyEvent	*	0
BufferFullEvent 	*	1
KeyboardEvent		*	2
ADCEvent		*	3
VsyncEvent		*	4
TimerEvent		*	5
EscapeEvent		*	6
EconetEvent		*	254

; Arguments for CHANGEOUTPUT OSbyte call
RS423Only	*	1+2+4+&10
PrinterOnly	*	2+8+&10
VDUOnly 	*	4+&10

; Buffer numbers
;
KBBuffer	*	0
SerialInBuffer	*	1
SerialOutBuffer *	2
PrinterBuffer	*	3
Sound1Buffer	*	4 ; First sound buffer

	END
