Я тогда не знал точно как будет себя вести встроенный ассемблер. Сейчас уже проникся, а писал, ведь год назад.

У меня, намного больше примеров, конечно.
В частности библиотека прямого доступа к видеопамяти.
Только всё это надо обсуждать, я же не программист вовсе.

Кстати, вот пример очарования PL65:
Выравнивание начала памяти PM графики по 2 килобайтам:

BYTE PMDUMMY[$800-(@ AND $7FF)]

То есть начиная от текущего программного указателя обозначен как @ строится массив, выравненный по 2кб, после этого @ указывает уже на начало PM памяти и адрес можно взять оператором точкой. То есть PM=.PMDUMMY.
Соответственно, если надо выровнять модифицированный шрифт по 1кб границе,
будет так:

BYTE CHRDUMMY[$400-(@ AND $3FF)]

Вкусно!

Вот работа с прерываниями:


Код:
! ------------------------------------ !
INTERRUPT DLINT()
  BYTE ColReg=$D018
BEGIN ColReg=0 END
! ------------------------------------ !
PROC int_enable()
  POINTER Ptr
  INT Addr BASED Ptr
  BYTE Data BASED Ptr
  BYTE NMIEN=$D40E      ! Interrupt register
  INT SDL=$230              ! Display list address
BEGIN
  Ptr=$200 Addr=.DLINT   !Store address of interrupt subroutine into vector
  Ptr=SDL+15 Data=$82   ! interrupt at line fifteen
  NMIEN=$C0                 ! Enable interrupt
END
! ------------------------------------ !
MAIN()
BEGIN int_enable() END


Здесь по DLI прерыванию, наступающему по достижении 15-й строки,
цвет фона меняется на чёрный.

DLINT() - меняет фон
int_enable() - Инициализация DLI

При работе с указателями
сначала определяется сам указатель (2 байта на нулевой странице)
После этого к нему привязываются переменные, которые BASED на нём.