Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.
Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.
extern void wait1(void);
extern void exit1(void);
int main()
{
wait1();
exit1();
return 0;
}
GEMDOS equ 1
GEMDOS__getchar equ 1
GEMDOS__writestr equ 9
GEMDOS__supervisor equ 32
section text
_wait1
move.w #GEMDOS__getchar,-(A7)
trap #GEMDOS
addq.l #2,A7
rts
_exit1
clr.l -(a7)
trap #1
public _wait1
public _exit1
vbcc -quiet test.c -o="test.s"
vasm -nocase -devpac -m68000 -Faout -phxass -no-opt -o GEMDOS.o GEMDOS.s
vasm -nocase -devpac -m68000 -Faout -phxass -no-opt -o test.o test.s
vlink -b ataritos -o ppp.tos GEMDOS.o test.o
void asm_init(__reg("a0") uint32_t* code, __reg("d0") uint16_t seek, __reg("a1") uint16_t* func_params) = "\tadd.l (a0,d0),a0\n\tjsr (a0)\n";
asm_init(s_dll, ASM_INIT, func_params);
dc.l func_init
dc.l func_clear
dc.l func_close
itd...
#define ASM_INIT 0
#define ASM_CLEAR 4
#define ASM_CLOSE 8
itd...
#include "gemdos.h"
#include "types.h"
int main() {
write_str("Hello world\0");
getchar(); //czekaj na klawisz
pterm();
return 0;
}
#ifndef _GEMDOS_H_
#define _GEMDOS_H_
extern void write_str(const u8 *s);
extern s32 getchar(void);
extern void pterm(void);
#endif
_write_str
move.l (4,a7), a0
pea (a0)
move.w #GEMDOS__writestr,-(A7)
trap #GEMDOS
addq.l #6,A7
rts
_getchar
move.w #GEMDOS__getchar,-(A7)
trap #GEMDOS
addq.l #2,A7
rts
_pterm
clr.l -(a7)
trap #1
Od 1 do 5 z 5