symbol timeout = 0
symbol StepDelay = 0
Symbol WhatCase = b2
Symbol PowerUp = b3
Symbol PowerDown = b4
PowerUp = 1
PowerDown = 0
let dirsC = %0111111
low B.0, B.1, B.2, B.3, B.4, B.5, B.6, B.7
low portc 0, 1, 2, 3, 4, 5, 6
main:
if PORTA pin0 = 1 then
if PowerUp = 1 then
gosub startUp
powerUp = 0
PowerDown = 1
setint %10000000,%10000000
endif
gosub running
endif
if PORTA pin1 = 1 then
if PowerDown = 1 then
setint %00000000,%00000000
gosub shutdown
powerUp = 1
PowerDown = 0
endif
endif
goto main
startUp:
high portc 6
high portc 5
pause StepDelay
low portc 6
high portc 4
pause StepDelay
low portc 5
high portc 3
pause timeout
low portc 4
high portc 2
pause timeout
low portc 3
high portc 1
pause timeout
low portc 2
high portc 0
high portc 6
high portc 5
pause timeout
low portc 1
high B.7
low portc 6
high portc 4
pause timeout
low portc 0
high B.6
low portc 5
high portc 3
pause timeout
low B.7
high B.5
low portc 4
high portc 2
pause timeout
low B.6
high B.4
low portc 3
high portc 1
pause timeout
low B.5
high B.3
low portc 2
high portc 0
high portc 6
high portc 5
pause timeout
low B.4
high B.2
low portc 1
high B.7
low portc 6
high portc 4
pause timeout
low B.3
high B.1
low portc 0
high B.6
low portc 5
high portc 3
pause timeout
low B.2
high B.0
low B.7
high B.5
low portc 4
high portc 2
low B.6
high B.4
low portc 3
high portc 1
low B.5
high B.3
low portc 2
high portc 0
high portc 6
high portc 5
low B.4
high B.2
low portc 1
high b.7
low portc 6
high portc 4
low portc 0
high b.6
low portc 5
high portc 3
low B.7
high B.5
low portc 4
high portc 2
low B.6
high B.4
low portc 3
high portc 1
low portc 2
high portc 0
high portc 6
high portc 5
low portc 1
high B.7
low portc 6
high portc 4
low portc 0
high B.6
low portc 5
high portc 3
low portc 4
high portc 2
low portc 3
high portc 1
low portc 2
high portc 0
high portc 6
high portc 5
low portc 6
high portc 4
low portc 5
high portc 3
low portc 4
high portc 2
high portc 6
high portc 5
low portc 6
high portc 4
low portc 5
high portc 3
high portc 6
high portc 5
low portc 6
high portc 4
high portc 6
high portc 5
gosub highlow
pause timeout
return
shutdown:
gosub lowhigh
gosub highlow
return
running:
gosub lowhigh
gosub highlow
return
lowhigh:
high B.0
pause timeout
high B.1
pause timeout
high B.2
pause timeout
high B.3
pause timeout
high B.4
pause timeout
high B.5
pause timeout
high B.6
pause timeout
high B.7
pause timeout
high portc 0
pause timeout
high portc 1
pause timeout
high portc 2
pause timeout
high portc 3
pause timeout
high portc 4
pause timeout
high portc 5
pause timeout
high portc 6
pause timeout
return
highlow:
low portc 6
pause timeout
low portc 5
pause timeout
low portc 4
pause timeout
low portc 3
pause timeout
low portc 2
pause timeout
low portc 1
pause timeout
low portc 0
pause timeout
low B.7
pause timeout
low B.6
pause timeout
low B.5
pause timeout
low B.4
pause timeout
low B.3
pause timeout
low B.2
pause timeout
low B.1
pause timeout
low B.0
pause timeout
return
interrupt:
high B.7
high B.0
high portc 6
high B.1
high portc 5
low B.1
low portc 5
high B.2
high portc 4
low B.2
low portc 4
high B.3
high portc 3
low B.3
low portc 3
high B.4
high portc 2
low B.4
low portc 2
high B.5
high portc 1
low B.5
low portc 1
high B.6
high portc 0
low B.6
low portc 0
high B.6
high portc 0
low B.6
low portc 0
high B.5
high portc 1
low B.5
low portc 1
high B.4
high portc 2
low B.4
low portc 2
high B.3
high portc 3
low B.3
low portc 3
high B.2
high portc 4
low B.2
low portc 4
high B.1
high portc 5
low B.1
low portc 5
if pinC.7 = 1 then interrupt ; loop here until the interrupt cleared
setint %10000000,%10000000 ; re-activate interrupt
return
#no_data 'reduce download time