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

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

cmp-byte.60p @goto-at-end-of-blockraw · history · blame

// Should print ENGGL

byte b

define chrout routine
  inputs a
  trashes a
  @ 65490

define main routine
  outputs b
  trashes a, x, y, z, n, c, v
{
    ld a, 40
    st a, b

    cmp a, b
    if z {
        ld a, 69  // E
        call chrout
    } else {
        ld a, 78  // N
        call chrout
    }

    ld a, 41
    st a, b
    ld a, 40

    cmp a, b
    if z {
        ld a, 69  // E
        call chrout
    } else {
        ld a, 78  // N
        call chrout
    }

    ld a, 20
    st a, b

    ld a, 21

    cmp a, b      // 21 >= 20
    if c {
        ld a, 71  // G
        call chrout
    } else {
        ld a, 76  // L
        call chrout
    }

    ld a, 20

    cmp a, b      // 20 >= 20
    if c {
        ld a, 71  // G
        call chrout
    } else {
        ld a, 76  // L
        call chrout
    }

    ld a, 19

    cmp a, b      // 19 < 20
    if c {
        ld a, 71  // G
        call chrout
    } else {
        ld a, 76  // L
        call chrout
    }
}