User Tools

Site Tools


oric:telestrat

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
oric:telestrat [2016/09/02 13:34]
jede
oric:telestrat [2019/07/11 03:04] (current)
nekoniaow [How can i do a code which works on telemon and atmos]
Line 1: Line 1:
 +====== Telestrat ======
 +
 +{{oric:oric_telestrat_white_bg.jpg?400|}}
 +
 +===== Operating system =====
 +
 +Telestrat works with stratsed and telemon. Telemon contains a lot of primitives (graphics, sounds, math and minitel function).
 +
 +Stratsed load in overlay ram and provide operation for floppy disks.
 +
 +There is many keyboard shortcut in telemon bank
 +
 +* Where can i have source code of telemon ? 
 +https://github.com/jedeoric/telemon
 +
 +
 +
 +
 +
 +==== Keyboard shortcut (telemon) ====
 +  * CTRL+A : produce a tab (add 8 spaces)
 +  * CTRL+C : break
 +  * CTRL+G : produce a sound (oups)
 +  * CTRL+H : move cursor one space left
 +  * CTRL+I : XX
 +  * CTRL+J : XX
 +  * CTRL+K : move cursor one space up
 +  * CTRL+L : clear the window
 +  * CTRL+N : Delete current line
 +  * CTRL+Q : Switch on videotex cursor
 +  * CTRL+R : echo on (sends data also on printer)
 +  * CTRL+S : Launch hard copy (printer)
 +  * CTRL+T : Switch off video tex cursor
 +  * CTRL+X : Delete the end of the line (after sur cursor)
 +
 +
 +
 +===== How to code on Oricutron with telemon =====
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +==== Tutorial ====
 +
 +=== The famous Hello world ! with telemon and crossdevel===
 +
 +   * Under windows, create an oric folder
 +   * download osdk and unzip it in this oric folder : [[http://osdk.org/files/osdk_1_8.zip]]
 +//
 +At this step, you have in oric folder, an osdk folder//
 +
 +   * Download oricutron : [[http://www.petergordon.org.uk/oricutron/files/Oricutron_win32_v12.zip]]
 +   * unzip it in oric folder too
 +
 +//
 +At this step, you have in oric folder, an osdk and oricutron folder//
 +
 +   * create in oric folder a directory "projects"
 +   * in this folder (projects), create a folder "hello_telemon"
 +   * in this folder (hello_telemon), create a folder "include"
 +   * in hello_telemon folder, create a file "hello.asm" and open it in an editor. Copy and paste this :
 +
 +   #define XWSTR0 $14 
 +   #define BRK_TELEMON(value)\
 + .byt 00,value;\
 +   *=$1000
 +   lda #<str_hello_world
 +   ldy #>str_hello_world
 +   BRK_TELEMON(XWSTR0) 
 +   rts
 +   str_hello_world
 +   .asc "Hello world !",0
 +
 +   * at this step, you have to build with assembler : open a command line window (cmd.exe)
 +   * go to your project directory (oric/projects/hello_world) and execute xa :
 +
 +   ..\..\osdk\bin\xa.exe hello_world.asm
 +
 +   * at this step, you have a new file : a.o65.
 +   * you need to add a TAPE header (telemon does not have any tape routine but you have to convert in TAP file in order to place it on a disk. execute "header" from osdk  [[http://osdk.org/index?page=documentation&subpage=header]] :
 +   
 +   ..\..\osdk\bin\header.exe -a1 a.o65 hello.tap
 +
 +   * you have now hello.tap file. Now we need to put it on disk ! 
 +   * use tap2dsk from osdk to generate the disk
 +   * use old2mfm to convert .dsk file into new format
 +   * insert stratsed.dsk into telestrat start Oricutron
 +   * insert your new disk genetated in oricutron, runs your code.
 +
 +
 +
 +
 +
 +
 +
 +
 +===== mouse and joysticks=====
 +For information on the Telestrat mouse and joystick ports go [[oric:hardware:telestrat_joystick_curcuit|here]].
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +===== How to write code compatible with Telemon and the Atmos =====
 +
 +The same source code can be used to generate a Telestrat and Atmos executable by detect the machine at runtime.
 +
 +It is useful to know that:
 +
 +    * Telemon uses **different IRQ vectors** than the Atmos OS (Atmos: $244/$245/$246, Telemon: $2fa,$2fb,$fc).
 +    * **Hires routines** live at different addresses on both OSes (Atmos: jsr $ec33, Telemon: brk $1a).
 +    * If the **IRQ vectors** used by Telemon are redirected (where?) brk calls will cease to work since they rely on these vectors to have their original values. Thus, the IRQ vectors must be restored before calling any Telemon ROM routines.
 +    * **Zero page** : in order for Telemon to be functional after program exit, you should use "#define VARAPL $D0" to use all zero page bytes (44) after $d0.
 +    * **via6522** : Telemon initializes the VIA1 differently than the Atmos OS. For example, the T2 timer is enabled. If you execute this instruction in your code : **"lda VIA_T1CL"** , you should also execute **"lda VIA_T2CL"** : You can also disable T2 timer.
 + 
 +Example program:
 +
 +----
 +
 +  #ifdef TARGET_TELEMON24
 +  #define SYS_IRQLO $2fb
 +  #define SYS_IRQHI $2fc
 +  #define SWITCH_HIRES\
 +  .byt $00,$1a
 +  #else
 +  ; atmos 
 +  #define SWITCH_HIRES\
 +  jsr $ec33;
 +  #define SYS_IRQLO $245
 +  #define SYS_IRQHI $246
 +  #endif
 +
 +----
 +
 +===== How to switch over banks =====
 +
 +Used it if you want to do a bit crap
 +
 +       #define MYBANK 3
 +       _switchBank
 +       sei
 +       lda #MYBANK
 +       and $321
 +       sta $321
 +       ; SET IRQ vectors
 +       cli
 +       rts
 +
 +You can do it better with telemon routines.
 +
  
oric/telestrat.txt ยท Last modified: 2019/07/11 03:04 by nekoniaow