diff --git a/src/an b/src/an
new file mode 100755
index 0000000000000000000000000000000000000000..825b356e932aa58b4cac226748f102973b37aa8f
--- /dev/null
+++ b/src/an
@@ -0,0 +1,3 @@
+#! /bin/bash
+
+cp main.elf /u/cs452/tftp/ARM/temp/
diff --git a/src/developing/first.map b/src/developing/first.map
index 5b042774e9fea21007334ce74308d67e923233a8..4c18731b7d0929b2f1980d48e107b4876c22e01a 100644
--- a/src/developing/first.map
+++ b/src/developing/first.map
@@ -1,6 +1,6 @@
 Archive member included because of file (symbol)
 
-../../lib/libbwio.a(bwio.o)   main.o (bwprintf)
+../../lib/libbwio.a(bwio.o)   main.o (bwputr)
 /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_udivsi3.o)
                               ../../lib/libbwio.a(bwio.o) (__udivsi3)
 /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_umodsi3.o)
@@ -28,46 +28,40 @@ bss             0x0000000000000000        0x0
  *(.bss)
                 0x0000000000000000                _BssEnd = .
 
-text            0x0000000000000000      0xff8
+text            0x0000000000000000      0xe58
  *(.text)
- .text          0x0000000000000000      0x15c main.o
-                0x0000000000000000                test
-                0x00000000000000f4                main
- .text          0x000000000000015c      0xc54 ../../lib/libbwio.a(bwio.o)
-                0x00000000000004d4                bwputr
-                0x0000000000000a40                bwi2a
-                0x000000000000015c                bwsetfifo
-                0x0000000000000330                bwputc
-                0x0000000000000790                bwa2d
-                0x0000000000000224                bwsetspeed
-                0x00000000000003f4                c2x
-                0x0000000000000838                bwa2i
-                0x00000000000006d8                bwgetc
-                0x00000000000008fc                bwui2a
-                0x0000000000000aa4                bwformat
-                0x00000000000005d0                bwputw
-                0x0000000000000d78                bwprintf
-                0x0000000000000454                bwputx
-                0x0000000000000554                bwputstr
- .text          0x0000000000000db0      0x110 /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_udivsi3.o)
-                0x0000000000000db0                __udivsi3
-                0x0000000000000ea8                __aeabi_uidivmod
- .text          0x0000000000000ec0       0xcc /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_umodsi3.o)
-                0x0000000000000ec0                __umodsi3
- .text          0x0000000000000f8c        0x4 /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_dvmd_tls.o)
-                0x0000000000000f8c                __aeabi_ldiv0
-                0x0000000000000f8c                __div0
-                0x0000000000000f8c                __aeabi_idiv0
+ .text          0x0000000000000000       0x24 main.o
+                0x0000000000000000                main
+ .text          0x0000000000000024      0xc54 ../../lib/libbwio.a(bwio.o)
+                0x000000000000039c                bwputr
+                0x0000000000000908                bwi2a
+                0x0000000000000024                bwsetfifo
+                0x00000000000001f8                bwputc
+                0x0000000000000658                bwa2d
+                0x00000000000000ec                bwsetspeed
+                0x00000000000002bc                c2x
+                0x0000000000000700                bwa2i
+                0x00000000000005a0                bwgetc
+                0x00000000000007c4                bwui2a
+                0x000000000000096c                bwformat
+                0x0000000000000498                bwputw
+                0x0000000000000c40                bwprintf
+                0x000000000000031c                bwputx
+                0x000000000000041c                bwputstr
+ .text          0x0000000000000c78      0x110 /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_udivsi3.o)
+                0x0000000000000c78                __udivsi3
+                0x0000000000000d70                __aeabi_uidivmod
+ .text          0x0000000000000d88       0xcc /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_umodsi3.o)
+                0x0000000000000d88                __umodsi3
+ .text          0x0000000000000e54        0x4 /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a(_dvmd_tls.o)
+                0x0000000000000e54                __aeabi_ldiv0
+                0x0000000000000e54                __div0
+                0x0000000000000e54                __aeabi_idiv0
  *(.got)
  *(.got.plt)
- .got.plt       0x0000000000000f90        0xc main.o
-                0x0000000000000f90                _GLOBAL_OFFSET_TABLE_
  *(.rodata)
- .rodata        0x0000000000000f9c       0x5c main.o
  *(.glue_7)
  *(.glue_7t)
-
-.rel.dyn
 LOAD main.o
 LOAD ../../lib/libbwio.a
 LOAD /u/wbcowan/gnuarm-4.0.2/lib/gcc/arm-elf/4.0.2/libgcc.a
diff --git a/src/developing/main.c b/src/developing/main.c
index d11389f226d1523c37955b4e4ff0f6f14735d610..68fea9314b09da50015e08795e9b972dd558cb06 100644
--- a/src/developing/main.c
+++ b/src/developing/main.c
@@ -1,6 +1,6 @@
 #include <types.h>
 #include <bwio.h>
-
+/*
 void test(TD* T){
   asm volatile(//"mov r0, #0\n\t"
 	       "mov r1, #11\n\t"
@@ -34,8 +34,9 @@ void test(TD* T){
   bwprintf(COM2,"sp:%d, lr:%d, spsr:%d, retval:%d, args:%d\n\r",T->sp,T->lr,T->spsr,T->RetVal,T->Args);
   bwprintf(COM2,"r4:%d, r5:%d, r6:%d, r7:%d, r8:%d\n\r",four,five,six,seven,eight);
 }
-
+*/
 int main(){
+/*
   //TD T;
   //T.sp = 0x1e000000;
   //T.lr = 222;
@@ -57,5 +58,6 @@ int main(){
   register int r3 asm("r3");
   int three = r3;
   bwprintf(COM2,"r3: %d\n\r",three);
-  return 0;
+*/  
+return 0;
 }
diff --git a/src/developing/main.elf b/src/developing/main.elf
index 4c9afe2fb40d46f2d382f5f2b2e6b60aee982c80..68c107d859ce077751ba32c66ef4eb663a3b30ef 100755
Binary files a/src/developing/main.elf and b/src/developing/main.elf differ
diff --git a/src/developing/main.o b/src/developing/main.o
index 9b4a0d9ffc8f15617e2c4cb2c4162a9212aaf51b..36edf06a140130581d35d11051df71b807955346 100644
Binary files a/src/developing/main.o and b/src/developing/main.o differ
diff --git a/src/developing/main.s b/src/developing/main.s
index a6e53988a53ef4974cb01d4d1aa8829e9db93990..8743442f4300d63816235e220a2b59110081a0e6 100644
--- a/src/developing/main.s
+++ b/src/developing/main.s
@@ -1,127 +1,20 @@
 	.file	"main.c"
-	.section	.rodata
-	.align	2
-.LC0:
-	.ascii	"sp:%d, lr:%d, spsr:%d, retval:%d, args:%d\012\015\000"
-	.align	2
-.LC1:
-	.ascii	"r4:%d, r5:%d, r6:%d, r7:%d, r8:%d\012\015\000"
-	.text
-	.align	2
-	.global	test
-	.type	test, %function
-test:
-	@ args = 0, pretend = 0, frame = 28
-	@ frame_needed = 1, uses_anonymous_args = 0
-	mov	ip, sp
-	stmfd	sp!, {r4, r5, r6, r7, r8, sl, fp, ip, lr, pc}
-	sub	fp, ip, #4
-	sub	sp, sp, #40
-	ldr	sl, .L4
-.L3:
-	add	sl, pc, sl
-	str	r0, [fp, #-64]
-	mov r1, #11
-	mov r2, #22
-	mov r3, #33
-	mov r4, #44
-	mov r5, #55
-	add r0, r0,#20
-	stmfd r0!, {r1-r5}
-	
-	ldmfd r0!,{r4}
-	ldmfd r0!,{r5-r8}
-	
-	str	r4, [fp, #-60]
-	ldr	r3, [fp, #-64]
-	str	r3, [fp, #-56]
-	str	r5, [fp, #-52]
-	str	r6, [fp, #-48]
-	str	r7, [fp, #-44]
-	str	r8, [fp, #-40]
-	ldr	r3, [fp, #-64]
-	ldr	ip, [r3, #0]
-	ldr	r3, [fp, #-64]
-	ldr	lr, [r3, #4]
-	ldr	r3, [fp, #-64]
-	ldr	r2, [r3, #8]
-	ldr	r3, [fp, #-64]
-	ldr	r1, [r3, #12]
-	ldr	r3, [fp, #-64]
-	ldr	r3, [r3, #16]
-	str	r2, [sp, #0]
-	str	r1, [sp, #4]
-	str	r3, [sp, #8]
-	mov	r0, #1
-	ldr	r3, .L4+4
-	add	r3, sl, r3
-	mov	r1, r3
-	mov	r2, ip
-	mov	r3, lr
-	bl	bwprintf(PLT)
-	ldr	r3, [fp, #-48]
-	str	r3, [sp, #0]
-	ldr	r3, [fp, #-44]
-	str	r3, [sp, #4]
-	ldr	r3, [fp, #-40]
-	str	r3, [sp, #8]
-	mov	r0, #1
-	ldr	r3, .L4+8
-	add	r3, sl, r3
-	mov	r1, r3
-	ldr	r2, [fp, #-60]
-	ldr	r3, [fp, #-52]
-	bl	bwprintf(PLT)
-	sub	sp, fp, #36
-	ldmfd	sp, {r4, r5, r6, r7, r8, sl, fp, sp, pc}
-.L5:
-	.align	2
-.L4:
-	.word	_GLOBAL_OFFSET_TABLE_-(.L3+8)
-	.word	.LC0(GOTOFF)
-	.word	.LC1(GOTOFF)
-	.size	test, .-test
-	.section	.rodata
-	.align	2
-.LC2:
-	.ascii	"r3: %d\012\015\000"
 	.text
 	.align	2
 	.global	main
 	.type	main, %function
 main:
-	@ args = 0, pretend = 0, frame = 4
+	@ args = 0, pretend = 0, frame = 0
 	@ frame_needed = 1, uses_anonymous_args = 0
 	mov	ip, sp
-	stmfd	sp!, {sl, fp, ip, lr, pc}
+	stmfd	sp!, {fp, ip, lr, pc}
 	sub	fp, ip, #4
-	sub	sp, sp, #4
-	ldr	sl, .L9
-.L8:
-	add	sl, pc, sl
-	mov r0, #10
-	mov r1, #11
-	mov r2, #22
-	mov r3, #33
-	mov r4, #44
-	mov r5, #55
-	stmfd sp!, {r0-r5}
-	ldmfd sp!, {r3}
-	
-	str	r3, [fp, #-20]
-	mov	r0, #1
-	ldr	r3, .L9+4
-	add	r3, sl, r3
-	mov	r1, r3
-	ldr	r2, [fp, #-20]
-	bl	bwprintf(PLT)
 	mov	r3, #0
 	mov	r0, r3
-	ldmfd	sp, {r3, sl, fp, sp, pc}
-.L10:
-	.align	2
-.L9:
-	.word	_GLOBAL_OFFSET_TABLE_-(.L8+8)
-	.word	.LC2(GOTOFF)
+	
+	mov r0, #1
+	mov r1, #5
+	bl bwputr(PLT)
+	ldmfd	sp, {fp, sp, pc}
 	.size	main, .-main
 	.ident	"GCC: (GNU) 4.0.2"
diff --git a/src/main.c b/src/main.c
index 44fb95afd0aec4558b1ef9802c37662ed746b812..93caf47e6b04e77be4054e2afb53de58f8bba9dc 100644
--- a/src/main.c
+++ b/src/main.c
@@ -14,39 +14,41 @@
 
 int main()
 {
-  
-  KernelStruct Colonel;
-  int i, Status, req;
-  TD* Next;
-  
-  //int* kernelEntry = (int *)(0x28);
-  //*kernelEntry = (int)&kerent;
-  InitSwi();
-  //SetUpRegs();
-  //kerent();
-  kernelInit(&Colonel); 
-  //schedulerInit();
-  // First User Task
-  TD* FirstUserTask= CreateTask(&Colonel, Prio4, (void *) (&firstUserTaskChildren));
-  //bwprintf(COM2,"main function ptr: %d\n\r",(&firstUserTaskChildren));
-  pushToScheduler(&Colonel, FirstUserTask);
-  TD* Task;
-  int ReturnValue = 0;
-  FOREVER {
-    if(Colonel.Active == NULL){
-      ReturnValue = 0;
-      Task = getNextTaskScheduler(&Colonel);
-    }else{
-      Task = Colonel.Active;
-      ReturnValue = Task->RetVal;
-    }
-    //bwprintf(COM2,"Kernel Loop Task  = %d\n\r",Task);
-    if(Task == NULL) break;
-    req = Activate(&Colonel,Task);
-    //register int r0 asm("r0");
-    //req = r0;
-    //bwprintf(COM2,"req= %d\n\r",req);
-    Handle(&Colonel, req);
-  }
-  return 0;  
+
+	KernelStruct Colonel;
+	int i, Status, req;
+	TD* Next;
+
+	InitSwi();
+	kernelInit(&Colonel); 
+	// First User Task
+//	bwprintf(COM2, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n\r");
+//	bwprintf(COM2, "main: before calling create first task \n\r");
+	TD* FirstUserTask= CreateTask(&Colonel, Prio4, (void *) (&firstUserTaskChildren));
+
+//	bwprintf(COM2,"main function ptr: %d\n\r",(&firstUserTaskChildren));
+	pushToScheduler(&Colonel, FirstUserTask);
+	TD* Task;
+	int ReturnValue = 0;
+	FOREVER {
+		if(Colonel.Active == NULL){
+//			bwprintf(COM2, "main: Active == NULL\n\r");
+			ReturnValue = 0;
+			Task = getNextTaskScheduler(&Colonel);
+		}
+		else{
+//			bwprintf(COM2, "main: Active not NULL\n\r");
+			Task = Colonel.Active;
+			ReturnValue = Task->RetVal;
+		}
+		if(Task == NULL) break;
+		bwprintf(COM2,"main: Active->Priority: %d\n\r", Task->TaskPriority);
+		req = Activate(&Colonel,Task);
+//		bwprintf(COM2,"main: after Activates finished req= %d\n\r",req);
+//		bwprintf(COM2,"main: before Handle\n\r");
+		Handle(&Colonel, req);
+//		bwprintf(COM2, "main: done with one loop\n\r");
+//		bwprintf(COM2,"==================================================================\n\r");
+	}
+	return 0;  
 }
diff --git a/src/main.elf b/src/main.elf
new file mode 100755
index 0000000000000000000000000000000000000000..a05424ee0b37637a3b08e7773911504458f7927d
Binary files /dev/null and b/src/main.elf differ
diff --git a/src/main.o b/src/main.o
new file mode 100644
index 0000000000000000000000000000000000000000..b1d698ffb67943d59d446e587535ebe4179162bf
Binary files /dev/null and b/src/main.o differ
diff --git a/src/main.s b/src/main.s
new file mode 100644
index 0000000000000000000000000000000000000000..fda61f51c9188b5fd81ccb074275247bb0ce1a8a
--- /dev/null
+++ b/src/main.s
@@ -0,0 +1,98 @@
+	.file	"main.c"
+	.section	.rodata
+	.align	2
+.LC0:
+	.ascii	"main: Active->Priority: %d\012\015\000"
+	.text
+	.align	2
+	.global	main
+	.type	main, %function
+main:
+	@ args = 0, pretend = 0, frame = 2780
+	@ frame_needed = 1, uses_anonymous_args = 0
+	mov	ip, sp
+	stmfd	sp!, {sl, fp, ip, lr, pc}
+	sub	fp, ip, #4
+	sub	sp, sp, #2768
+	sub	sp, sp, #12
+	ldr	sl, .L10
+.L9:
+	add	sl, pc, sl
+	bl	InitSwi(PLT)
+	sub	r3, fp, #2784
+	sub	r3, r3, #12
+	mov	r0, r3
+	bl	kernelInit(PLT)
+	sub	r3, fp, #2784
+	sub	r3, r3, #12
+	mov	r0, r3
+	mov	r1, #4
+	ldr	r3, .L10+4
+	ldr	r3, [sl, r3]
+	mov	r2, r3
+	bl	CreateTask(PLT)
+	mov	r3, r0
+	str	r3, [fp, #-28]
+	sub	r3, fp, #2784
+	sub	r3, r3, #12
+	mov	r0, r3
+	ldr	r1, [fp, #-28]
+	bl	pushToScheduler(PLT)
+	mov	r3, #0
+	str	r3, [fp, #-20]
+.L2:
+	ldr	r3, [fp, #-2796]
+	cmp	r3, #0
+	bne	.L3
+	mov	r3, #0
+	str	r3, [fp, #-20]
+	sub	r3, fp, #2784
+	sub	r3, r3, #12
+	mov	r0, r3
+	bl	getNextTaskScheduler(PLT)
+	mov	r3, r0
+	str	r3, [fp, #-24]
+	b	.L5
+.L3:
+	ldr	r3, [fp, #-2796]
+	str	r3, [fp, #-24]
+	ldr	r3, [fp, #-24]
+	ldr	r3, [r3, #12]
+	str	r3, [fp, #-20]
+.L5:
+	ldr	r3, [fp, #-24]
+	cmp	r3, #0
+	beq	.L6
+	ldr	r3, [fp, #-24]
+	ldr	r2, [r3, #32]
+	mov	r0, #1
+	ldr	r3, .L10+8
+	add	r3, sl, r3
+	mov	r1, r3
+	bl	bwprintf(PLT)
+	sub	r3, fp, #2784
+	sub	r3, r3, #12
+	mov	r0, r3
+	ldr	r1, [fp, #-24]
+	bl	Activate(PLT)
+	mov	r3, r0
+	str	r3, [fp, #-36]
+	sub	r3, fp, #2784
+	sub	r3, r3, #12
+	mov	r0, r3
+	ldr	r1, [fp, #-36]
+	bl	Handle(PLT)
+	b	.L2
+.L6:
+	mov	r3, #0
+	mov	r0, r3
+	sub	sp, fp, #16
+	ldmfd	sp, {sl, fp, sp, pc}
+.L11:
+	.align	2
+.L10:
+	.word	_GLOBAL_OFFSET_TABLE_-(.L9+8)
+	.word	firstUserTaskChildren(GOT)
+	.word	.LC0(GOTOFF)
+	.size	main, .-main
+	.ident	"GCC: (GNU) 4.0.2"
diff --git a/src/sketch b/src/sketch
index 5dc31aa918ad083fa439ecb40ef28528fae984d0..8ea26d8d906e8910249f1c3626c77f14c31a6092 100644
--- a/src/sketch
+++ b/src/sketch
@@ -1 +1 @@
-K.Active(0)->T0(Create(someFunc))->SWI->K.Active(return 0)->K.Handle(0)->handelCreate()->Activate(T0)->(probably kerxit)
\ No newline at end of file
+K.Active(0)->T0(Create(someFunc))->SWI->K.Active(return 0)->K.Handle(0)->handelCreate()->Activate(T0)->(probably kerxit)