' ========================================================================= ' ' File....... Task_Manager.BS2 ' Purpose.... ' Author..... Jon Williams -- Parallax, Inc. ' E-mail..... jwilliams@parallax.com ' Started.... ' Updated.... ' ' {$STAMP BS2} ' {$PBASIC 2.5} ' ' ========================================================================= ' -----[ Program Description ]--------------------------------------------- ' -----[ Revision History ]------------------------------------------------ ' -----[ I/O Definitions ]------------------------------------------------- ' -----[ Constants ]------------------------------------------------------- #SELECT $STAMP #CASE BS2, BS2E, BS2PE T1200 CON 813 T2400 CON 396 T4800 CON 188 T9600 CON 84 T19K2 CON 32 TMidi CON 12 T38K4 CON 6 #CASE BS2SX, BS2P T1200 CON 2063 T2400 CON 1021 T4800 CON 500 T9600 CON 240 T19K2 CON 110 TMidi CON 60 T38K4 CON 45 #ENDSELECT SevenBit CON $2000 Inverted CON $4000 Open CON $8000 Baud CON T9600 NumTasks CON 4 ' -----[ Variables ]------------------------------------------------------- condition VAR Bit task VAR Nib ' -----[ EEPROM Data ]----------------------------------------------------- ' -----[ Initialization ]-------------------------------------------------- Reset: ' -----[ Program Code ]---------------------------------------------------- Main: DO GOSUB Background_Task ON task GOSUB Task_0, Task_1, Task_2, Task_3 LOOP END ' -----[ Subroutines ]----------------------------------------------------- Background_Task: ' Put code here that needs to run through every iteration ' of the Main loop RETURN Task_0: ' Task 0 code here IF (condition) THEN ' set task # to deal with condition ELSE task = task + 1 // NumTasks ' point to next task ENDIF RETURN Task_1: ' Task 1 code here IF (condition) THEN ' set task # to deal with condition ELSE task = task + 1 // NumTasks ENDIF RETURN Task_2: ' Task 2 code here IF (condition) THEN ' set task # to deal with condition ELSE task = task + 1 // NumTasks ENDIF RETURN Task_3: ' Task 3 code here IF (condition) THEN ' set task # to deal with condition ELSE task = task + 1 // NumTask ENDIF RETURN