Есть ещё такой метод: "DEF FN A(......) = USR addr - для работы с числами;"
Бейсик, передаёт пятибайтовые числа, но когда они целые от 0 до 65535, то их легко выделить из этих пяти байтов.
- - - Добавлено - - -
Вот тут я этот метод использовал.
- - - Добавлено - - -
Что-то я какие-то трешовые примеры накидал.
Сейчас более чистый примерчик дам.
В бейсике пишем:
Код:
10 DEF FN a(x,y)=USR 40000
20 CIRCLE 80,80,75
30 RANDOMIZE FN a(16384,16384+256*8)
В ассемблере пишем прожку, которая берёт из аргументов два целых числа и переносит соответствующие два килобайта.
Код:
ORG 40000
LD HL,(5C0BH)
LD BC,4
ADD HL,BC
LD E,(HL)
INC HL
LD D,(HL) ; В DE взяли первый аргумент
LD C,7
ADD HL,BC
LD A,(HL)
INC HL
LD H,(HL)
LD L,A ; В HL взяли второй аргумент
LD BC,800h
LDIR
RET
Когда всё это дело запускаем, рисуется кружочек, а потом из средней трети экрана всё копируется в верхнюю треть.