git @ Cat's Eye Technologies SixtyPical / 0.13 eg / c64 / intr1.60p
0.13

Tree @0.13 (Download .tar.gz)

intr1.60p @0.13raw · history · blame

byte vic_border @ 53280

//
// The constraints on these 2 vectors are kind-of sort-of big fibs.
// They're only written this way so they can be compatible with our
// routine.  In fact, CINV is an interrupt routine where it doesn't
// really matter what you trash anyway, because all registers were
/// saved by the caller (the KERNAL) and will be restored by the end
// of the code of the saved origin cinv routine that we goto.
//
// I wonder if this could be arranged somehow to be less fibby, in
// a future version of SixtyPical.
//

vector cinv
  inputs vic_border
  outputs vic_border
  trashes z, n
  @ 788

vector save_cinv
  inputs vic_border
  outputs vic_border
  trashes z, n

routine our_cinv
  inputs vic_border
  outputs vic_border
  trashes z, n
{
    inc vic_border
    goto save_cinv
}

routine main
  inputs cinv
  outputs cinv, save_cinv
  trashes a, n, z
{
    with interrupts off {
        copy cinv, save_cinv
        copy our_cinv, cinv
    }
}