]> wirehaze git hosting - lifeboot.git/blobdiff - lifeboot.asm

wirehaze git hosting

jae
[lifeboot.git] / lifeboot.asm
index 67e7ce99b56247f0e328aefbec5388a59c8d71af..739df4066220b2e6507d24ae005a000bd7aa80ea 100644 (file)
@@ -151,7 +151,7 @@ mov cx, COLS * ROWS         ; for each cell
 
 .write_cell:                ; do {
     call xs                 ;     bx = random value
 
 .write_cell:                ; do {
     call xs                 ;     bx = random value
-    mov al, DEAD            ;     al = DEAD (likely)
+    mov al, DEAD            ;     al = DEAD
 
     test bx, 0b11
 
 
     test bx, 0b11
 
@@ -223,20 +223,14 @@ mov byte [bp - 4], -1       ; i = -1
         mov al, [bp - 1]
         add al, [bp - 4]                ; al = row + i
 
         mov al, [bp - 1]
         add al, [bp - 4]                ; al = row + i
 
-        cmp al, 0                       ; if (row + i < 0)
-        jl .continue                    ;     continue
-
-        cmp al, ROWS                    ; if (row + i >= ROWS)
-        jge .continue                   ;     continue
+        cmp al, ROWS                    ; if ((unsigned)(row + i) >= ROWS)
+        jae .continue                   ;     continue
 
         mov ah, [bp - 2]
         add ah, [bp - 5]                ; ah = col + j
 
 
         mov ah, [bp - 2]
         add ah, [bp - 5]                ; ah = col + j
 
-        cmp ah, 0                       ; if (col + j < 0)
-        jl .continue                    ;     continue
-
-        cmp ah, COLS                    ; if (col + j >= COLS)
-        jge .continue                   ;     continue
+        cmp ah, COLS                    ; if ((unsigned)(col + j) >= COLS)
+        jae .continue                   ;     continue
 
         movzx bx, ah                    ; bx = col + j
 
 
         movzx bx, ah                    ; bx = col + j
 
@@ -292,8 +286,8 @@ cmp dl, ALIVE               ; if (ALIVE) {
 jne .else
 
 shr ax, 1
 jne .else
 
 shr ax, 1
-xor ax, 1                   ;     if (n != 2 || n != 3)
-jnz .dead                   ;         return DEAD (likely)
+cmp ax, 1                   ;     if (n != 2 || n != 3)
+jne .dead                   ;         return DEAD
 
 jmp .alive                  ;     return ALIVE
 
 
 jmp .alive                  ;     return ALIVE