.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 ; // TASK PROTOTYPES 0005 ; int task1(void); 0005 ; int task2(void); 0005 ; 0005 ; 0005 ; 0005 ; 0005 ; int 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 ; 000D ; 000D ; 000D ; // create task1 000D ; if (create_task("dummy", &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 CC0099 ldd #L6 0024 160000 jsr _create_task 0027 8C0000 cpd #0 002A 2C06 bge L4 002C ; puts("task1 failure"); 002C CC008B 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 CC0085 ldd #L10 0049 160000 jsr _create_task 004C 8C0000 cpd #0 004F 2C06 bge L8 0051 ; puts("task2 failure"); 0051 CC0077 ldd #L11 0054 160000 jsr _puts 0057 L8: 0057 ; 0057 ; 0057 ; 0057 ; // remove the sysInit task from memory 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 ; remove_task(get_task_id()); 0067 160000 jsr _get_task_id 006A 87 clra 006B 160000 jsr _remove_task 006E ; 006E ; 006E ; INTR_ON(); 006E 10EF cli 0070 0070 ; 0070 ; return 0; 0070 CC0000 ldd #0 0073 L3: 0073 B757 tfr x,s 0075 30 pulx 0076 .dbline 0 ; func end 0076 3D rts 0077 L11: 0077 7461736B32206661696C75726500 .byte 't,'a,'s,'k,50,32,'f,'a,'i,'l,'u,'r,'e,0 0085 L10: 0085 74696D657200 .byte 't,'i,'m,'e,'r,0 008B L7: 008B 7461736B31206661696C75726500 .byte 't,'a,'s,'k,49,32,'f,'a,'i,'l,'u,'r,'e,0 0099 L6: 0099 64756D6D7900 .byte 'd,'u,'m,'m,'y,0