.module sysInit.c .area text ; id -> -2,x 0000 _sysInit:: 0000 34 pshx 0001 B775 tfr s,x 0003 1B92 leas -14,sp 0005 ; // sysInit.c 0005 ; 0005 ; #include <912d60.h> 0005 ; #include 0005 ; #include "kernel.h" 0005 ; 0005 ; 0005 ; 0005 ; 0005 ; // TASK PROTOTYPES 0005 ; void shell(void); 0005 ; void sysTime(void); 0005 ; void task1(void); 0005 ; void task2(void); 0005 ; 0005 ; 0005 ; 0005 ; 0005 ; 0005 ; 0005 ; void sysInit(void) { 0005 ; 0005 ; // LOCAL VARIABLES 0005 ; int id; 0005 ; 0005 ; 0005 ; /* must create all the tasks without interrupt, because this task 0005 ; will die when it finishes. */ 0005 ; INTR_OFF(); 0005 1410 sei 0007 0007 ; 0007 ; 0007 ; // set up the serial port 0007 ; setbaud(BAUD38K); // actually running at 19K baud due to xtal speed 0007 CC000D ldd #13 000A 160000 jsr _setbaud 000D ; 000D ; // any additional user setup goes here 000D ; 000D ; 000D ; 000D ; // create task1 000D ; if ((id = create_task("task1", &task1, 100, IDLE)) < 0) 000D CC0000 ldd #0 0010 6C84 std 4,sp 0012 CC0064 ldd #100 0015 6C82 std 2,sp 0017 CC0000 ldd #_task1 001A 6C80 std 0,sp 001C CC0089 ldd #L6 001F 160000 jsr _create_task 0022 6C1C std -4,x 0024 6C1E std -2,x 0026 EC1C ldd -4,x 0028 2C06 bge L4 002A ; puts("task1 failure"); 002A CC007B ldd #L7 002D 160000 jsr _puts 0030 L4: 0030 ; 0030 ; 0030 ; // create task2 0030 ; if ((id = create_task("task2", &task2, 20, PENDING)) < 0) 0030 CC0001 ldd #1 0033 6C84 std 4,sp 0035 CC0014 ldd #20 0038 6C82 std 2,sp 003A CC0000 ldd #_task2 003D 6C80 std 0,sp 003F CC0075 ldd #L10 0042 160000 jsr _create_task 0045 6C1A std -6,x 0047 6C1E std -2,x 0049 EC1A ldd -6,x 004B 2C06 bge L8 004D ; puts("task2 failure"); 004D CC0067 ldd #L11 0050 160000 jsr _puts 0053 L8: 0053 ; 0053 ; 0053 ; 0053 ; // stop this sysInit task 0053 ; set_task_state(get_task_id(), STOPPED); 0053 160000 jsr _get_task_id 0056 6C18 std -8,x 0058 CC0004 ldd #4 005B 6C80 std 0,sp 005D EC18 ldd -8,x 005F 87 clra 0060 160000 jsr _set_task_state 0063 ; 0063 ; } 0063 L3: 0063 B757 tfr x,s 0065 30 pulx 0066 .dbline 0 ; func end 0066 3D rts 0067 L11: 0067 7461736B32206661696C75726500 .byte 't,'a,'s,'k,50,32,'f,'a,'i,'l,'u,'r,'e,0 0075 L10: 0075 7461736B3200 .byte 't,'a,'s,'k,50,0 007B L7: 007B 7461736B31206661696C75726500 .byte 't,'a,'s,'k,49,32,'f,'a,'i,'l,'u,'r,'e,0 0089 L6: 0089 7461736B3100 .byte 't,'a,'s,'k,49,0