fl { PropForth5.5 Assember demo-code 2013/09/29 15:58:57 } lockdict create a_tick forthentry $C_a_lxasm w, h11E h113 1- tuck - h9 lshift or here W@ alignl h10 lshift or l, z2WiPqk l, z1SyZfQ l, z3[yPSK l, z2WiPyk l, z24iPuE l, z2WiPRF l, z1SV01X l, z2Wyx8u l, z20ixFk l, z3ryx80 l, z1SV000 l, freedict \ Display ticks during __delay loop \ ( n1 -- n2 ) n1:loop-counter n2:ticks : ticks a_tick . ; lockdict create a_delay1 forthentry $C_a_lxasm w, h11B h113 1- tuck - h9 lshift or here W@ alignl h10 lshift or l, z1SyZKN l, z3[yPSJ l, z1SyLI[ l, z1SV01X l, z2Wyx8u l, z20ixFk l, z3ryx80 l, z1SV000 l, freedict : time1 cnt COG@ 1 cnt COG@ nip swap - . ; \ d496 : time2 cnt COG@ 2 cnt COG@ nip swap - . ; \ d496 : time3 cnt COG@ 3 cnt COG@ nip swap - . ; \ d368 : time4 cnt COG@ 4 cnt COG@ nip swap - . ; \ d368 : time5 cnt COG@ 5 cnt COG@ nip swap - . ; \ d368 : time6 cnt COG@ 6 cnt COG@ nip swap - . ; \ d368 : time7 cnt COG@ 7 cnt COG@ nip swap - . ; \ d368 : time8 cnt COG@ 8 cnt COG@ nip swap - . ; \ d368 : time9 cnt COG@ 9 cnt COG@ nip swap - . ; \ d368 : time10 cnt COG@ d10 cnt COG@ nip swap - . ; \ d368 : time100 cnt COG@ d100 cnt COG@ nip swap - . ; \ d368 : time500 cnt COG@ d500 cnt COG@ nip swap - . ; \ d368 : time1000 cnt COG@ d1000 cnt COG@ nip swap - . ; \ d368 : cntCOG@ cnt COG@ cnt COG@ swap - . ; \ d272 : delay1_1 cnt COG@ 1 a_delay1 cnt COG@ swap - d272 - d496 - . ; : delay1_2 cnt COG@ 2 a_delay1 cnt COG@ swap - d272 - d496 - . ; : delay1_3 cnt COG@ 3 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_4 cnt COG@ 4 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_5 cnt COG@ 5 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_6 cnt COG@ 6 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_7 cnt COG@ 7 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_8 cnt COG@ 8 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_9 cnt COG@ 9 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_10 cnt COG@ d10 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_20 cnt COG@ d20 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_30 cnt COG@ d30 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_40 cnt COG@ d40 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_50 cnt COG@ d50 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_60 cnt COG@ d60 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_70 cnt COG@ d70 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_80 cnt COG@ d80 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_90 cnt COG@ d90 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_100 cnt COG@ d100 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_500 cnt COG@ d500 a_delay1 cnt COG@ swap - d272 - d368 - . ; : delay1_1000 cnt COG@ d1000 a_delay1 cnt COG@ swap - d272 - d368 - . ; \ delay1_1 delay1_2 delay1_3 delay1_4 delay1_5 delay1_6 delay1_7 delay1_8 delay1_9 delay1_10 \ delay1_20 delay1_30 delay1_40 delay1_50 delay1_60 delay1_70 delay1_80 delay1_90 delay1_100 delay1_500 delay1_1000 lockdict create a_delay forthentry $C_a_lxasm w, h11C h113 1- tuck - h9 lshift or here W@ alignl h10 lshift or l, z24yPO8 l, z1SyZSO l, z3[yPSK l, z1SyLI[ l, z1SV01X l, z2Wyx8u l, z20ixFk l, z3ryx80 l, z1SV000 l, freedict : delay_9 cnt COG@ 9 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_10 cnt COG@ d10 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_11 cnt COG@ d11 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_12 cnt COG@ d12 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_13 cnt COG@ d13 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_14 cnt COG@ d14 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_15 cnt COG@ d15 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_16 cnt COG@ d16 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_17 cnt COG@ d17 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_18 cnt COG@ d18 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_28 cnt COG@ d28 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_38 cnt COG@ d38 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_48 cnt COG@ d48 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_58 cnt COG@ d58 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_68 cnt COG@ d68 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_78 cnt COG@ d78 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_88 cnt COG@ d88 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_98 cnt COG@ d98 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_108 cnt COG@ d108 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_508 cnt COG@ d508 a_delay cnt COG@ swap - d272 - d368 - . ; : delay_1008 cnt COG@ d1008 a_delay cnt COG@ swap - d272 - d368 - . ; \ delay_9 delay_10 delay_11 delay_12 delay_13 delay_14 delay_15 delay_16 delay_17 delay_18 \ delay_28 delay_38 delay_48 delay_58 delay_68 delay_78 delay_88 delay_98 delay_108 delay_508 delay_1008 lockdict create a_pulse forthentry $C_a_lxasm w, h121 h113 1- tuck - h9 lshift or here W@ alignl h10 lshift or l, z2WyPj1 l, zfiPmB l, z1bixmE l, z1SyLI[ l, z1bixZE l, z1Sy[4T l, z3[yPSO l, z1[ixZE l, z1SyLI[ l, z1SV01X l, z2Wyx8u l, z20ixFk l, z3ryx80 l, z1SV000 l, freedict : pulse1 begin d10 0 a_pulse fkey? swap drop until ; : pulse2 begin d100 0 a_pulse fkey? swap drop until ; { \ ( n1 -- n2 ) n1:loop-counter n2:ticks fl build_BootOpt :rasm mov $C_treg3 , cnt __1 jmpret __delay_ret , # __delay djnz $C_stTOS , # __1 mov $C_treg4 , cnt sub $C_treg4 , $C_treg3 mov $C_stTOS , $C_treg4 jexit \ Delay 72ticks __delay mov cnt , # d59 add cnt , cnt waitcnt cnt , # 0 __delay_ret ret ;asm a_tick \ ( n1 -- ) n1:loop-counter fl build_BootOpt :rasm __1 jmpret __delay_ret , # __delay djnz $C_stTOS , # __1 spop jexit \ Delay 72ticks __delay mov cnt , # d59 add cnt , cnt waitcnt cnt , # 0 __delay_ret ret ;asm a_delay1 \ Must not use less than 8 \ ( n1 -- ) n1:loop-counter fl build_BootOpt :rasm sub $C_stTOS , # 8 __1 jmpret __delay_ret , # __delay djnz $C_stTOS , # __1 spop jexit \ Delay 72ticks __delay mov cnt , # d59 add cnt , cnt waitcnt cnt , # 0 __delay_ret ret ;asm a_delay \ Output pulse \ ( n1 n2 -- ) n1:turn number n2:port number fl build_BootOpt :rasm mov $C_treg3 , # 1 shl $C_treg3 , $C_stTOS \ Set pins to output or dira , $C_treg3 \ Drop statck top spop \ Set pin hi or outa , $C_treg3 __1 jmpret __delay_ret , # __delay djnz $C_stTOS , # __1 \ Set pin lo andn outa , $C_treg3 spop jexit \ Delay 72ticks __delay mov cnt , # d59 add cnt , cnt waitcnt cnt , # 0 __delay_ret ret ;asm a_pulse }