mirror of
https://github.com/dschmenk/PLASMA.git
synced 2026-03-14 16:16:40 +00:00
31 lines
754 B
Plaintext
31 lines
754 B
Plaintext
//
|
|
// THIS EXAMPLE SHOWS HOW TO CALL
|
|
// MACHINE CODE INSIDE YOUR PLASMA
|
|
// CODE. THIS MACHINE CODE IS EMBEDDED
|
|
// INSIDE THE DATA AND MUST BE POSITION
|
|
// INDEPENDENT. FUNCTIONS ARE EXPECTED
|
|
// TO RETURN A VALUE ON THE PLASMA
|
|
// EVALUATION STACK, INDEXED BY THE
|
|
// X-REGISTER. IT MUST BE CONSISTENT:
|
|
// INX FOR EVERY ARGUMENT, DEX FOR THE
|
|
// RETURN VALUE. THE ACTUAL VALUES ARE
|
|
// LOCATED IN ZERO PAGE:
|
|
//
|
|
// $C0,X = EVAL STACK LO BYTE
|
|
// $D0,X = EVAL STACK HI BYTE
|
|
//
|
|
// IF THE RETURN VALUE IS TO BE IGNORED,
|
|
// YOU CAN SKIP THE ACTUAL SETTING OF THE
|
|
// EVAL STACK AND JUST UPDATE THE X-REG.
|
|
//
|
|
BYTE CLICK = $AD, $30, $C0 // LDA $C030
|
|
BYTE = $CA // DEX
|
|
BYTE = $60 // RTS
|
|
|
|
BYTE I
|
|
|
|
FOR I=0 TO 200
|
|
(@CLICK)()
|
|
NEXT
|
|
DONE
|