git @ Cat's Eye Technologies SixtyPical / goto-at-end-of-block eg / rudiments / vector-table.60p
goto-at-end-of-block

Tree @goto-at-end-of-block (Download .tar.gz)

vector-table.60p @goto-at-end-of-blockraw · history · blame

//
// Demonstrates vector tables.
// Prints "AABAB".
//

vector routine
  trashes a, z, n
    print

vector (routine
  trashes a, z, n)
    table[32] vectors

define chrout routine
  inputs a
  trashes a
  @ 65490

define printa routine
  trashes a, z, n
{
    ld a, 65
    call chrout
}

define printb routine
  trashes a, z, n
{
    ld a, 66
    call chrout
}

define main routine
  inputs vectors
  outputs vectors
  trashes print, a, x, z, n, c
{
    ld x, 0
    copy printa, vectors + x
    inc x
    copy printa, print
    copy print, vectors + x
    inc x
    copy printb, print
    copy print, vectors + x
    inc x
    copy printa, vectors + x
    inc x
    copy printb, vectors + x

    ld x, 0
    repeat {
        copy vectors + x, print
        call print
        inc x
        cmp x, 5
    } until z
}