.module sysinit.c .area text ; id -> -2,x 0000 _sysInit:: 0000 34 pshx 0001 B775 tfr s,x 0003 1B94 leas -12,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 (create_task("task1", &task1, 18, IDLE, 0) < 0) 000D CC0000 ldd #0 0010 6C86 std 6,sp 0012 CC0000 ldd #0 0015 6C84 std 4,sp 0017 CC0012 ldd #18 001A 6C82 std 2,sp 001C CC0000 ldd #_task1 001F 6C80 std 0,sp 0021 CC008D ldd #L6 0024 160000 jsr _create_task 0027 8C0000 cpd #0 002A 2C06 bge L4 002C ; puts("task1 failure"); 002C CC007F ldd #L7 002F 160000 jsr _puts 0032 L4: 0032 ; 0032 ; 0032 ; // create task2 0032 ; if (create_task("timer", &task2, 0, STOPPED, 255) < 0) 0032 CC00FF ldd #255 0035 6C86 std 6,sp 0037 CC0004 ldd #4 003A 6C84 std 4,sp 003C CC0000 ldd #0 003F 6C82 std 2,sp 0041 CC0000 ldd #_task2 0044 6C80 std 0,sp 0046 CC0079 ldd #L10 0049 160000 jsr _create_task 004C 8C0000 cpd #0 004F 2C06 bge L8 0051 ; puts("task2 failure"); 0051 CC006B ldd #L11 0054 160000 jsr _puts 0057 L8: 0057 ; 0057 ; 0057 ; 0057 ; // stop this sysInit task 0057 ; set_task_state(get_task_id(), STOPPED); 0057 160000 jsr _get_task_id 005A 6C1C std -4,x 005C CC0004 ldd #4 005F 6C80 std 0,sp 0061 EC1C ldd -4,x 0063 87 clra 0064 160000 jsr _set_task_state 0067 ; 0067 ; } 0067 L3: 0067 B757 tfr x,s 0069 30 pulx 006A .dbline 0 ; func end 006A 3D rts 006B L11: 006B 7461736B32206661696C75726500 .byte 't,'a,'s,'k,50,32,'f,'a,'i,'l,'u,'r,'e,0 0079 L10: 0079 74696D657200 .byte 't,'i,'m,'e,'r,0 007F L7: 007F 7461736B31206661696C75726500 .byte 't,'a,'s,'k,49,32,'f,'a,'i,'l,'u,'r,'e,0 008D L6: 008D 7461736B3100 .byte 't,'a,'s,'k,49,0