;
; Oric Telemon definition
-; Telemon 2.4 & Telemon 3.0
-; For telemon 3.0 check http://orix.oric.org
+; Telemon 2.4 & Telemon 3.x
+; For telemon 3.x check http://orix.oric.org
;
FNAME_LEN = 11 ; maximum length of file-name
+; ---------------------------------------------------------------------------
+; I/O Identifier
+; theses identifers are used for channel management
+;
+
+XKBD = $80 ; keyboard
+XRSE = $83 ; RS232 in
+XSCR = $88 ; screen
+XRSS = $90 ; RS232 out
+
; ---------------------------------------------------------------------------
; Zero page
TR0 := $0C
TR1 := $0D
+TR2 := $0E
+TR3 := $0F
+TR4 := $10
+TR5 := $11
+TR6 := $12
+TR7 := $13
-PTR_READ_DEST := $2C ; used for XFREAD and XWRITE only in telemon 3.0
+PTR_READ_DEST := $2C ; used for XFREAD and XWRITE only in telemon 3.x
HRSX := $46
HRSY := $47
HRS4 := $53
HRS5 := $55
-
+HRSFB := $57
+
+; RS232T
+; b0-b3 : speed
+; 1111 => 19200 bps (please note that telestrat can't handle this speed without stopping all IRQ except ACIA's one)
+; 1100 => 9600 bps (default from telemon)
+; 1110 => 4800 bps
+; 1010 => 2400 bps
+; 1000 => 1200 bps
+; 0111 => 600 bps
+; 0110 => 300 bps
+; 0101 => 150 bps
+; 0010 => 75 bps
+
+; b4 : 0 external clock, 1 internal clock
+; b6-b5 : 00 8 bits
+; 01 7 bits
+; 10 6 bits
+; 11 5 bits
+; b7 : 0 a stop
+
+RS232T := $59
+
+; RS232C
+; b0-b3 : 0
+; b4 : 1 if echo
+; b5 : 1 if parity
+; b7-b6 : 00 in/out parity odd
+; : 01 on/out parity even
+; : 10 parity sent, answer not tested
+; : 11 SPACE SENT, reception not tested
+
+RS232C := $5A
; ---------------------------------------------------------------------------
; Low memory
-
+IRQVec := $02FB ; "fast" interrupt vector
.endstruct
-.struct VIA2 ; Versatile Interface Adapter
+.struct VIA2 ; Versatile Interface Adapter
.res $0320
PRB .byte ; Port Register B
PRA .byte ; Port Register A
; ---------------------------------------------------------------------------
; ROM entries
-; primitives telemon 2.4
+; telemon primitives (2.4 & 3.x)
XRD0 = $08
XRDW0 = $0C
XWR0 = $10
-XWSTR0 = $14
+XWSTR0 = $14 ; write a string in text mode
XTEXT = $19
XHIRES = $1A
XFILLM = $1C
XMINMA = $1F
-XFREAD = $27 ; only in TELEMON 3.0
-XOPEN = $30 ; only in TELEMON 3.0
+XVARS = $24 ; only in TELEMON 3.x, in telemon 2.4, it's XNOMFI ($24)
+XFREAD = $27 ; only in TELEMON 3.x
+XOPEN = $30 ; only in TELEMON 3.x
XCOSCR = $34 ; switch off cursor
XCSSCR = $35 ; switch on cursor
-XCLOSE = $3A ; only in TELEMON 3.0 Close file
-XFWRITE = $3B ; only in TELEMON 3.0 write file
+XCLOSE = $3A ; only in TELEMON 3.x Close file
+XFWRITE = $3B ; only in TELEMON 3.x write file
XSONPS = $40
-XOUPS = $42
+XOUPS = $42 ; send Oups sound into PSG
XPLAY = $43
XSOUND = $44
XMUSIC = $45
XZAP = $46
XSHOOT = $47
+XMKDIR = $4B ; create a folder. Only available in telemon 3.x
+XRM = $4D ; remove a folder or a file. Only available in telemon 3.x
+XSOUT = $67 ; send accumulator value (A) to RS232, available in telemon 2.4 & 3.x : if RS232 buffer is full, the Oric Telestrat freezes
+XHRSSE = $8C ; set hires position cursor
+XDRAWA = $8D ; draw a line
+XDRAWR = $8E ; draw a line
XCIRCL = $8F
XCURSE = $90
+XCURMO = $91
XPAPER = $92
XINK = $93
+XBOX = $94
+XABOX = $95
+XFILL = $96
+XCHAR = $97
+XSCHAR = $98 ; draw a string in hires
XEXPLO = $9C
XPING = $9D
+; ---------------------------------------------------------------------------
+; ROM entries variables
+
+PWD_PTR = $00
+
; ---------------------------------------------------------------------------
; Page $200
SCRX := $220
SCRY := $224
ADSCRL := $218
ADSCRH := $21C
+HRSPAT := $2AA ; hires pattern : it's used to draw pattern for a line or a circle
+IRQVECTOR := $2FA
; ---------------------------------------------------------------------------
MAX_BUFEDT_LENGTH=110
; Hardware
-CH376_DATA :=$340
-CH376_COMMAND :=$341
+CH376_DATA := $340
+CH376_COMMAND := $341
; MACRO