diff --git a/Stage26/int12.xsm b/Stage26/int12.xsm index 86e8efd..d962e93 100644 --- a/Stage26/int12.xsm +++ b/Stage26/int12.xsm @@ -39,18 +39,12 @@ SUB R17, 1 MOD R17, 512 ADD R16, R17 MOV R1, R16 -MOV R16, "logout" -PORT P1, R16 -OUT MOV R16, 29560 ADD R16, 1 MOV R16, [R16] MOV R17, 2 NE R16, R17 JZ R16, _L1 -MOV R16, "-1" -PORT P1, R16 -OUT MOV [R1], -1 JMP _L2 _L1: @@ -64,9 +58,6 @@ MOV R2, R16 CALL 21504 POP R1 POP R0 -MOV R16, "killed" -PORT P1, R16 -OUT MOV R16, 28672 ADD R16, 32 ADD R16, 4 diff --git a/expl/assemblycode.xsm b/expl/assemblycode.xsm index be9ce2f..7964145 100644 --- a/expl/assemblycode.xsm +++ b/expl/assemblycode.xsm @@ -14,9 +14,12 @@ INT 10 PUSH BP MOV BP,SP PUSH R0 -MOV R0,"Fork" PUSH R0 +MOV R0,"Write" PUSH R0 +MOV R0,-2 +PUSH R0 +MOV R0,"Enter file name" PUSH R0 PUSH R0 PUSH R0 @@ -30,9 +33,16 @@ MOV R2,BP MOV R1,1 ADD R2,R1 MOV [R2],R0 -MOV R0,"Fork" +MOV R0,"Read" PUSH R0 +MOV R0,-1 PUSH R0 +MOV R1,BP +MOV R0,2 +ADD R1,R0 +MOV R0,[R1] +MOV R0,R1 +MOV R0,R0 PUSH R0 PUSH R0 PUSH R0 @@ -46,8 +56,13 @@ MOV R2,BP MOV R1,1 ADD R2,R1 MOV [R2],R0 -MOV R0,"Fork" +MOV R0,"Delete" PUSH R0 +MOV R1,BP +MOV R0,2 +ADD R1,R0 +MOV R0,[R1] +MOV R0,R0 PUSH R0 PUSH R0 PUSH R0 @@ -62,9 +77,18 @@ MOV R2,BP MOV R1,1 ADD R2,R1 MOV [R2],R0 -MOV R0,"Fork" +MOV R1,BP +MOV R0,1 +ADD R1,R0 +MOV R0,[R1] +MOV R1,0 +EQ R0,R1 +JZ R0,2250 +MOV R0,"Write" PUSH R0 +MOV R0,-2 PUSH R0 +MOV R0,"Deleted" PUSH R0 PUSH R0 PUSH R0 @@ -78,10 +102,19 @@ MOV R2,BP MOV R1,1 ADD R2,R1 MOV [R2],R0 -MOV R0,"Exec" +JMP 2356 +MOV R1,BP +MOV R0,1 +ADD R1,R0 +MOV R0,[R1] +MOV R1,-1 +EQ R0,R1 +JZ R0,2302 +MOV R0,"Write" PUSH R0 -MOV R0,"pid.xsm" +MOV R0,-2 PUSH R0 +MOV R0,"No permission" PUSH R0 PUSH R0 PUSH R0 @@ -95,12 +128,41 @@ MOV R2,BP MOV R1,1 ADD R2,R1 MOV [R2],R0 +JMP 2356 +MOV R1,BP +MOV R0,1 +ADD R1,R0 +MOV R0,[R1] +MOV R1,-2 +EQ R0,R1 +JZ R0,2356 +PUSH R0 +MOV R0,"Write" +PUSH R0 +MOV R0,-2 +PUSH R0 +MOV R0,"File is open" +PUSH R0 +PUSH R0 +PUSH R0 +CALL 0 +SUB SP,5 +POP R0 +MOV R1,6 +MOV R2,SP +ADD R2,R1 +MOV R1,[R2] +MOV R3,BP +MOV R2,1 +ADD R3,R2 +MOV [R3],R1 MOV R0,0 MOV R1,BP MOV R2,2 SUB R1,R2 MOV [R1],R0 POP R0 +POP R0 MOV BP,[SP] POP R0 RET