diff --git a/Platform/Apple/tools/PackPartitions/src/org/demo/PackPartitions.groovy b/Platform/Apple/tools/PackPartitions/src/org/demo/PackPartitions.groovy index decbcafd..ffa88dfe 100644 --- a/Platform/Apple/tools/PackPartitions/src/org/demo/PackPartitions.groovy +++ b/Platform/Apple/tools/PackPartitions/src/org/demo/PackPartitions.groovy @@ -354,7 +354,7 @@ class PackPartitions else if (id) println "Warning: can't match tile name '$name' to any image; treating as blank." } - else + else if (name != 'street') println "Note: ignoring non-obstruction '$name' until sprite support is added." } } @@ -408,7 +408,7 @@ class PackPartitions { def num = textures.size() + 1 def name = imgEl.@name ?: "img$num" - println "Packing texture #$num named '${imgEl.@name}'." + //println "Packing texture #$num named '${imgEl.@name}'." def pixels = parseTexture(imgEl) calcTransparency(pixels) def buf = ByteBuffer.allocate(50000) @@ -420,7 +420,7 @@ class PackPartitions { def num = frames.size() + 1 def name = imgEl.@name ?: "img$num" - println "Packing frame image #$num named '${imgEl.@name}'." + //println "Packing frame image #$num named '${imgEl.@name}'." def buf = parseFrameData(imgEl) frames[imgEl.@name] = [num:num, buf:buf] return buf @@ -430,7 +430,7 @@ class PackPartitions { def num = tiles.size() + 1 def name = imgEl.@name ?: "img$num" - println "Packing tile image #$num named '${imgEl.@name}'." + //println "Packing tile image #$num named '${imgEl.@name}'." def buf = parseTileData(imgEl) tiles[imgEl.@name] = [num:num, buf:buf] return buf @@ -440,7 +440,7 @@ class PackPartitions { def num = maps2D.size() + 1 def name = mapEl.@name ?: "map$num" - println "Packing 2D map #$num named '$name'." + //println "Packing 2D map #$num named '$name'." def rows = parseMap(mapEl, tileEls) def buf = ByteBuffer.allocate(50000) write2DMap(buf, rows) @@ -451,7 +451,7 @@ class PackPartitions { def num = maps3D.size() + 1 def name = mapEl.@name ?: "map$num" - println "Packing 3D map #$num named '$name'." + //println "Packing 3D map #$num named '$name'." def rows = parseMap(mapEl, tileEls) def buf = ByteBuffer.allocate(50000) write3DMap(buf, rows) @@ -470,7 +470,7 @@ class PackPartitions def readCode(name, path) { def num = code.size() + 1 - println "Reading code #$num from '$path'." + //println "Reading code #$num from '$path'." def inBuf = new byte[256] def outBuf = ByteBuffer.allocate(50000) def stream = new File(path).withInputStream { stream -> @@ -532,8 +532,9 @@ class PackPartitions // Read in code chunks. For now these are hard coded, but I guess they ought to // be configured in a config file somewhere...? // - readCode("render", "src/raycast/build/render.bin#6000") - readCode("expand", "src/raycast/build/expand.bin#0800") + println "Reading code resources." + readCode("render", "src/raycast/build/render.b") + readCode("expand", "src/raycast/build/expand.b") // Open the XML data file produced by Outlaw Editor def dataIn = new XmlParser().parse(xmlPath) @@ -541,11 +542,13 @@ class PackPartitions // Pack each tile, which has the side-effect of filling in the // tile name map. // + println "Packing tile images." dataIn.tile.each { packTile(it) } // Pack each image, which has the side-effect of filling in the // image name map. Handle frame images separately. // + println "Packing frame images and textures." dataIn.image.each { image -> if (image.category.text() == "frame" ) packFrameImage(image) @@ -554,6 +557,7 @@ class PackPartitions } // Pack each map This uses the image and tile maps filled earlier. + println "Packing maps." dataIn.map.each { map -> if (map?.@name =~ /2D/) pack2DMap(map, dataIn.tile) diff --git a/Platform/Apple/virtual/build.xml b/Platform/Apple/virtual/build.xml index 0e108adf..8f596e8c 100644 --- a/Platform/Apple/virtual/build.xml +++ b/Platform/Apple/virtual/build.xml @@ -6,6 +6,7 @@ + @@ -28,11 +29,16 @@ Building core. - - Building raycast. + + Packing game and code resources. + + + + + diff --git a/Platform/Apple/virtual/src/core/mem.s b/Platform/Apple/virtual/src/core/mem.s index 13f2574c..9bfc3c59 100644 --- a/Platform/Apple/virtual/src/core/mem.s +++ b/Platform/Apple/virtual/src/core/mem.s @@ -1131,7 +1131,7 @@ readToAux: !zone ;------------------------------------------------------------------------------ ; Segment tables - !if DEBUG { !align 256,0 } + !if DEBUG { !align 255,0 } tSegLink = * : !fill MAX_SEGS tSegType = * : !fill MAX_SEGS diff --git a/Platform/Apple/virtual/src/include/debug.i b/Platform/Apple/virtual/src/include/debug.i index 7566fa36..a0339640 100644 --- a/Platform/Apple/virtual/src/include/debug.i +++ b/Platform/Apple/virtual/src/include/debug.i @@ -8,6 +8,49 @@ !word addr } +!macro prSpace { + jsr _prSpace +} + +!macro prA { + jsr _prA + jsr _prSpace +} + +!macro prX { + jsr _prX + jsr _prSpace +} + +!macro prY { + jsr _prY + jsr _prSpace +} + +!macro prXA { + jsr _prX + jsr _prA + jsr _prSpace +} + +!macro prAX { + jsr _prA + jsr _prX + jsr _prSpace +} + +!macro prXY { + jsr _prX + jsr _prY + jsr _prSpace +} + +!macro prYX { + jsr _prY + jsr _prX + jsr _prSpace +} + !macro prWord addr { jsr _prWord !word addr @@ -41,7 +84,6 @@ _writeStr: !zone tsx .loop: jsr _getStackByte beq .done - ora #$80 jsr cout cmp #$AE ; "." bne .loop @@ -64,15 +106,49 @@ _prShared: !zone jsr prbyte dey bpl .ld + +prSpace + jmp iorest + +_prSpace: + php + pha lda #$A0 jsr cout - jmp iorest + pla + plp + rts _prWord: !zone jsr iosave ldy #1 bne _prShared ; always taken +_prA: !zone + php + pha + jsr prbyte + pla + plp + rts + +_prX: !zone + php + pha + txa + jsr prbyte + pla + plp + rts + +_prY: !zone + php + pha + tya + jsr prbyte + pla + plp + rts + _crout: !zone php pha diff --git a/Platform/Apple/virtual/src/raycast/build.xml b/Platform/Apple/virtual/src/raycast/build.xml index 80c13192..0846df16 100644 --- a/Platform/Apple/virtual/src/raycast/build.xml +++ b/Platform/Apple/virtual/src/raycast/build.xml @@ -5,15 +5,13 @@ - + - - + - - + @@ -30,41 +28,16 @@ - - - + - - - - - - - - - - - - - - - - - - - - - - diff --git a/Platform/Apple/virtual/src/raycast/expand.s b/Platform/Apple/virtual/src/raycast/expand.s index 754c8c1b..7ff156f4 100644 --- a/Platform/Apple/virtual/src/raycast/expand.s +++ b/Platform/Apple/virtual/src/raycast/expand.s @@ -1,7365 +1,7365 @@ - .org $800 - .include "render.i" +* = $800 +!source "render.i" expand_vec: - .addr expand_0 - .addr expand_2 - .addr expand_4 - .addr expand_6 - .addr expand_8 - .addr expand_10 - .addr expand_12 - .addr expand_14 - .addr expand_16 - .addr expand_18 - .addr expand_20 - .addr expand_22 - .addr expand_24 - .addr expand_26 - .addr expand_28 - .addr expand_30 - .addr expand_32 - .addr expand_34 - .addr expand_36 - .addr expand_38 - .addr expand_40 - .addr expand_42 - .addr expand_44 - .addr expand_46 - .addr expand_48 - .addr expand_50 - .addr expand_52 - .addr expand_54 - .addr expand_56 - .addr expand_58 - .addr expand_60 - .addr expand_62 - .addr expand_64 - .addr expand_66 - .addr expand_68 - .addr expand_70 - .addr expand_72 - .addr expand_74 - .addr expand_76 - .addr expand_78 - .addr expand_80 - .addr expand_82 - .addr expand_84 - .addr expand_86 - .addr expand_88 - .addr expand_90 - .addr expand_92 - .addr expand_94 - .addr expand_96 - .addr expand_98 - .addr expand_100 - .addr expand_102 - .addr expand_104 - .addr expand_106 - .addr expand_108 - .addr expand_110 - .addr expand_112 - .addr expand_114 - .addr expand_116 - .addr expand_118 - .addr expand_120 - .addr expand_122 - .addr expand_124 - .addr expand_126 - .addr expand_128 - .addr expand_128 - .addr expand_132 - .addr expand_132 - .addr expand_136 - .addr expand_136 - .addr expand_140 - .addr expand_140 - .addr expand_144 - .addr expand_144 - .addr expand_148 - .addr expand_148 - .addr expand_152 - .addr expand_152 - .addr expand_156 - .addr expand_156 - .addr expand_160 - .addr expand_160 - .addr expand_164 - .addr expand_164 - .addr expand_168 - .addr expand_168 - .addr expand_172 - .addr expand_172 - .addr expand_176 - .addr expand_176 - .addr expand_180 - .addr expand_180 - .addr expand_184 - .addr expand_184 - .addr expand_188 - .addr expand_188 - .addr expand_192 - .addr expand_192 - .addr expand_192 - .addr expand_192 - .addr expand_200 - .addr expand_200 - .addr expand_200 - .addr expand_200 - .addr expand_208 - .addr expand_208 - .addr expand_208 - .addr expand_208 - .addr expand_216 - .addr expand_216 - .addr expand_216 - .addr expand_216 - .addr expand_224 - .addr expand_224 - .addr expand_224 - .addr expand_224 - .addr expand_232 - .addr expand_232 - .addr expand_232 - .addr expand_232 - .addr expand_240 - .addr expand_240 - .addr expand_240 - .addr expand_240 - .addr expand_248 - .addr expand_248 - .addr expand_248 - .addr expand_248 + !word expand_0 + !word expand_2 + !word expand_4 + !word expand_6 + !word expand_8 + !word expand_10 + !word expand_12 + !word expand_14 + !word expand_16 + !word expand_18 + !word expand_20 + !word expand_22 + !word expand_24 + !word expand_26 + !word expand_28 + !word expand_30 + !word expand_32 + !word expand_34 + !word expand_36 + !word expand_38 + !word expand_40 + !word expand_42 + !word expand_44 + !word expand_46 + !word expand_48 + !word expand_50 + !word expand_52 + !word expand_54 + !word expand_56 + !word expand_58 + !word expand_60 + !word expand_62 + !word expand_64 + !word expand_66 + !word expand_68 + !word expand_70 + !word expand_72 + !word expand_74 + !word expand_76 + !word expand_78 + !word expand_80 + !word expand_82 + !word expand_84 + !word expand_86 + !word expand_88 + !word expand_90 + !word expand_92 + !word expand_94 + !word expand_96 + !word expand_98 + !word expand_100 + !word expand_102 + !word expand_104 + !word expand_106 + !word expand_108 + !word expand_110 + !word expand_112 + !word expand_114 + !word expand_116 + !word expand_118 + !word expand_120 + !word expand_122 + !word expand_124 + !word expand_126 + !word expand_128 + !word expand_128 + !word expand_132 + !word expand_132 + !word expand_136 + !word expand_136 + !word expand_140 + !word expand_140 + !word expand_144 + !word expand_144 + !word expand_148 + !word expand_148 + !word expand_152 + !word expand_152 + !word expand_156 + !word expand_156 + !word expand_160 + !word expand_160 + !word expand_164 + !word expand_164 + !word expand_168 + !word expand_168 + !word expand_172 + !word expand_172 + !word expand_176 + !word expand_176 + !word expand_180 + !word expand_180 + !word expand_184 + !word expand_184 + !word expand_188 + !word expand_188 + !word expand_192 + !word expand_192 + !word expand_192 + !word expand_192 + !word expand_200 + !word expand_200 + !word expand_200 + !word expand_200 + !word expand_208 + !word expand_208 + !word expand_208 + !word expand_208 + !word expand_216 + !word expand_216 + !word expand_216 + !word expand_216 + !word expand_224 + !word expand_224 + !word expand_224 + !word expand_224 + !word expand_232 + !word expand_232 + !word expand_232 + !word expand_232 + !word expand_240 + !word expand_240 + !word expand_240 + !word expand_240 + !word expand_248 + !word expand_248 + !word expand_248 + !word expand_248 - .include "expand_hdr.i" +!source "expand_hdr.i" e_28rooto: - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 29*BLIT_STRIDE + blitRoll,x -: bvc e_30to + bmi + + sta 28*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 29*BLIT_STRIDE + blitRoll,x ++ bvc e_30to e_28toroto: - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 28*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_29roto: - bmi :+ - sta 29*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 29*BLIT_STRIDE + blitRoll,x ++ asl e_30to: - bmi :+ - sta 30*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 31*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 30*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 31*BLIT_STRIDE + blitRoll,x ++ rts e_t28oroto: - iny - lda (pTex),y - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x -: bvc e_29roto + iny + lda (pTex),y + bmi + + sta 28*BLIT_STRIDE + blitRoll,x ++ bvc e_29roto e_t28rooto: - iny - lda (pTex),y - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 29*BLIT_STRIDE + blitRoll,x -: bvc e_30to + iny + lda (pTex),y + bmi + + sta 28*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 29*BLIT_STRIDE + blitRoll,x ++ bvc e_30to e_48rooto: - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 49*BLIT_STRIDE + blitRoll,x -: bvc e_50to + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 49*BLIT_STRIDE + blitRoll,x ++ bvc e_50to e_r48ooto: - asl - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x - sta 49*BLIT_STRIDE + blitRoll,x -: bvc e_50to + asl + bmi + + sta 48*BLIT_STRIDE + blitRoll,x + sta 49*BLIT_STRIDE + blitRoll,x ++ bvc e_50to e_48toroto: - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_49roto: - bmi :+ - sta 49*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 49*BLIT_STRIDE + blitRoll,x ++ asl e_50to: - bmi :+ - sta 50*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 51*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 50*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 51*BLIT_STRIDE + blitRoll,x ++ rts e_r48toroto: - asl - bvc e_48toroto + asl + bvc e_48toroto e_t48oroto: - iny - lda (pTex),y - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: bvc e_49roto + iny + lda (pTex),y + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ bvc e_49roto e_t48rooto: - iny - lda (pTex),y - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 49*BLIT_STRIDE + blitRoll,x -: bvc e_50to + iny + lda (pTex),y + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 49*BLIT_STRIDE + blitRoll,x ++ bvc e_50to e_52rotoro: - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 53*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_54ro + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 53*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_54ro e_r52otoro: - asl - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x - sta 53*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_54ro + asl + bmi + + sta 52*BLIT_STRIDE + blitRoll,x + sta 53*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_54ro e_52tooro: - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ e_t53oro: - iny - lda (pTex),y + iny + lda (pTex),y e_53oro: - bmi :+ - sta 53*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 53*BLIT_STRIDE + blitRoll,x ++ e_54ro: - bmi :+ - sta 54*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 55*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 54*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 55*BLIT_STRIDE + blitRoll,x ++ rts e_r52tooro: - asl - bvc e_52tooro + asl + bvc e_52tooro e_t52rotoro: - iny - lda (pTex),y - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 53*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_54ro + iny + lda (pTex),y + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 53*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_54ro e_76ooto: - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x - sta 77*BLIT_STRIDE + blitRoll,x -: bvc e_78to + bmi + + sta 76*BLIT_STRIDE + blitRoll,x + sta 77*BLIT_STRIDE + blitRoll,x ++ bvc e_78to e_76rooto: - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 77*BLIT_STRIDE + blitRoll,x -: bvc e_78to + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 77*BLIT_STRIDE + blitRoll,x ++ bvc e_78to e_r76ooto: - asl - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x - sta 77*BLIT_STRIDE + blitRoll,x -: bvc e_78to + asl + bmi + + sta 76*BLIT_STRIDE + blitRoll,x + sta 77*BLIT_STRIDE + blitRoll,x ++ bvc e_78to e_76toroto: - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_77roto: - bmi :+ - sta 77*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 77*BLIT_STRIDE + blitRoll,x ++ asl e_78to: - bmi :+ - sta 78*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 79*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 78*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 79*BLIT_STRIDE + blitRoll,x ++ rts e_r76toroto: - asl - bvc e_76toroto + asl + bvc e_76toroto e_t76oroto: - iny - lda (pTex),y - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: bvc e_77roto + iny + lda (pTex),y + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ bvc e_77roto e_t76rooto: - iny - lda (pTex),y - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 77*BLIT_STRIDE + blitRoll,x -: bvc e_78to + iny + lda (pTex),y + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 77*BLIT_STRIDE + blitRoll,x ++ bvc e_78to e_84rooto: - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 85*BLIT_STRIDE + blitRoll,x -: bvc e_86to + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 85*BLIT_STRIDE + blitRoll,x ++ bvc e_86to e_r84ooto: - asl - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x - sta 85*BLIT_STRIDE + blitRoll,x -: bvc e_86to + asl + bmi + + sta 84*BLIT_STRIDE + blitRoll,x + sta 85*BLIT_STRIDE + blitRoll,x ++ bvc e_86to e_84toroto: - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_85roto: - bmi :+ - sta 85*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 85*BLIT_STRIDE + blitRoll,x ++ asl e_86to: - bmi :+ - sta 86*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 87*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 86*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 87*BLIT_STRIDE + blitRoll,x ++ rts e_r84toroto: - asl - bvc e_84toroto + asl + bvc e_84toroto e_t84oroto: - iny - lda (pTex),y - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: bvc e_85roto + iny + lda (pTex),y + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ bvc e_85roto e_t84rooto: - iny - lda (pTex),y - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 85*BLIT_STRIDE + blitRoll,x -: bvc e_86to + iny + lda (pTex),y + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 85*BLIT_STRIDE + blitRoll,x ++ bvc e_86to e_60tooro: - bmi :+ - sta 60*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 61*BLIT_STRIDE + blitRoll,x -: bvc e_62ro + bmi + + sta 60*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 61*BLIT_STRIDE + blitRoll,x ++ bvc e_62ro e_r60otoro: - asl - bmi :+ - sta 60*BLIT_STRIDE + blitRoll,x -: bvc e_61toro + asl + bmi + + sta 60*BLIT_STRIDE + blitRoll,x ++ bvc e_61toro e_r60tooro: - asl - bmi :+ - sta 60*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 61*BLIT_STRIDE + blitRoll,x -: bvc e_62ro + asl + bmi + + sta 60*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 61*BLIT_STRIDE + blitRoll,x ++ bvc e_62ro e_60rotoro: - bmi :+ - sta 60*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 60*BLIT_STRIDE + blitRoll,x ++ asl e_61toro: - bmi :+ - sta 61*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 61*BLIT_STRIDE + blitRoll,x ++ e_t62ro: - iny - lda (pTex),y + iny + lda (pTex),y e_62ro: - bmi :+ - sta 62*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 63*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 62*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 63*BLIT_STRIDE + blitRoll,x ++ rts e_t60rotoro: - iny - lda (pTex),y - bvc e_60rotoro + iny + lda (pTex),y + bvc e_60rotoro e_r36otoro: - asl - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x - sta 37*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_38ro + asl + bmi + + sta 36*BLIT_STRIDE + blitRoll,x + sta 37*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_38ro e_r36tooro: - asl - bvc e_36tooro + asl + bvc e_36tooro e_36tooro: - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ e_t37oro: - iny - lda (pTex),y + iny + lda (pTex),y e_37oro: - bmi :+ - sta 37*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 37*BLIT_STRIDE + blitRoll,x ++ e_38ro: - bmi :+ - sta 38*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 39*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 38*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 39*BLIT_STRIDE + blitRoll,x ++ rts e_t36ooro: - iny - lda (pTex),y - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: bvc e_37oro + iny + lda (pTex),y + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ bvc e_37oro e_t36rotoro: - iny - lda (pTex),y - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 37*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_38ro + iny + lda (pTex),y + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 37*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_38ro e_52rooto: - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 53*BLIT_STRIDE + blitRoll,x -: bvc e_54to + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 53*BLIT_STRIDE + blitRoll,x ++ bvc e_54to e_52toroto: - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_53roto: - bmi :+ - sta 53*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 53*BLIT_STRIDE + blitRoll,x ++ asl e_54to: - bmi :+ - sta 54*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 55*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 54*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 55*BLIT_STRIDE + blitRoll,x ++ rts e_r52toroto: - asl - bvc e_52toroto + asl + bvc e_52toroto e_t52oroto: - iny - lda (pTex),y - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: bvc e_53roto + iny + lda (pTex),y + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ bvc e_53roto e_56rooto: - bmi :+ - sta 56*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 57*BLIT_STRIDE + blitRoll,x -: bvc e_58to + bmi + + sta 56*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 57*BLIT_STRIDE + blitRoll,x ++ bvc e_58to e_r56ooto: - asl - bmi :+ - sta 56*BLIT_STRIDE + blitRoll,x - sta 57*BLIT_STRIDE + blitRoll,x -: bvc e_58to + asl + bmi + + sta 56*BLIT_STRIDE + blitRoll,x + sta 57*BLIT_STRIDE + blitRoll,x ++ bvc e_58to e_56toroto: - bmi :+ - sta 56*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 56*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_57roto: - bmi :+ - sta 57*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 57*BLIT_STRIDE + blitRoll,x ++ asl e_58to: - bmi :+ - sta 58*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 59*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 58*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 59*BLIT_STRIDE + blitRoll,x ++ rts e_r56toroto: - asl - bvc e_56toroto + asl + bvc e_56toroto e_t56oroto: - iny - lda (pTex),y - bmi :+ - sta 56*BLIT_STRIDE + blitRoll,x -: bvc e_57roto + iny + lda (pTex),y + bmi + + sta 56*BLIT_STRIDE + blitRoll,x ++ bvc e_57roto e_t56rooto: - iny - lda (pTex),y - bmi :+ - sta 56*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 57*BLIT_STRIDE + blitRoll,x -: bvc e_58to + iny + lda (pTex),y + bmi + + sta 56*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 57*BLIT_STRIDE + blitRoll,x ++ bvc e_58to e_72rooto: - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 73*BLIT_STRIDE + blitRoll,x -: bvc e_74to + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 73*BLIT_STRIDE + blitRoll,x ++ bvc e_74to e_r72ooto: - asl - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x - sta 73*BLIT_STRIDE + blitRoll,x -: bvc e_74to + asl + bmi + + sta 72*BLIT_STRIDE + blitRoll,x + sta 73*BLIT_STRIDE + blitRoll,x ++ bvc e_74to e_72toroto: - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_73roto: - bmi :+ - sta 73*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 73*BLIT_STRIDE + blitRoll,x ++ asl e_74to: - bmi :+ - sta 74*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 75*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 74*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 75*BLIT_STRIDE + blitRoll,x ++ rts e_r72toroto: - asl - bvc e_72toroto + asl + bvc e_72toroto e_t72oroto: - iny - lda (pTex),y - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: bvc e_73roto + iny + lda (pTex),y + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ bvc e_73roto e_t72rooto: - iny - lda (pTex),y - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 73*BLIT_STRIDE + blitRoll,x -: bvc e_74to + iny + lda (pTex),y + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 73*BLIT_STRIDE + blitRoll,x ++ bvc e_74to e_80rooto: - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 81*BLIT_STRIDE + blitRoll,x -: bvc e_82to + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 81*BLIT_STRIDE + blitRoll,x ++ bvc e_82to e_r80ooto: - asl - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x - sta 81*BLIT_STRIDE + blitRoll,x -: bvc e_82to + asl + bmi + + sta 80*BLIT_STRIDE + blitRoll,x + sta 81*BLIT_STRIDE + blitRoll,x ++ bvc e_82to e_80toroto: - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_81roto: - bmi :+ - sta 81*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 81*BLIT_STRIDE + blitRoll,x ++ asl e_82to: - bmi :+ - sta 82*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 83*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 82*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 83*BLIT_STRIDE + blitRoll,x ++ rts e_r80toroto: - asl - bvc e_80toroto + asl + bvc e_80toroto e_t80oroto: - iny - lda (pTex),y - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: bvc e_81roto + iny + lda (pTex),y + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ bvc e_81roto e_88rooto: - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 89*BLIT_STRIDE + blitRoll,x -: bvc e_90to + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 89*BLIT_STRIDE + blitRoll,x ++ bvc e_90to e_88toroto: - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_89roto: - bmi :+ - sta 89*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 89*BLIT_STRIDE + blitRoll,x ++ asl e_90to: - bmi :+ - sta 90*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 91*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 90*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 91*BLIT_STRIDE + blitRoll,x ++ rts e_r88toroto: - asl - bvc e_88toroto + asl + bvc e_88toroto e_t88oroto: - iny - lda (pTex),y - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: bvc e_89roto + iny + lda (pTex),y + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ bvc e_89roto e_t88rooto: - iny - lda (pTex),y - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 89*BLIT_STRIDE + blitRoll,x -: bvc e_90to + iny + lda (pTex),y + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 89*BLIT_STRIDE + blitRoll,x ++ bvc e_90to e_92rooto: - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 93*BLIT_STRIDE + blitRoll,x -: bvc e_94to + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 93*BLIT_STRIDE + blitRoll,x ++ bvc e_94to e_r92ooto: - asl - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x - sta 93*BLIT_STRIDE + blitRoll,x -: bvc e_94to + asl + bmi + + sta 92*BLIT_STRIDE + blitRoll,x + sta 93*BLIT_STRIDE + blitRoll,x ++ bvc e_94to e_92toroto: - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_93roto: - bmi :+ - sta 93*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 93*BLIT_STRIDE + blitRoll,x ++ asl e_94to: - bmi :+ - sta 94*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 95*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 94*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 95*BLIT_STRIDE + blitRoll,x ++ rts e_r92toroto: - asl - bvc e_92toroto + asl + bvc e_92toroto e_t92oroto: - iny - lda (pTex),y - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: bvc e_93roto + iny + lda (pTex),y + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ bvc e_93roto e_t92rooto: - iny - lda (pTex),y - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 93*BLIT_STRIDE + blitRoll,x -: bvc e_94to + iny + lda (pTex),y + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 93*BLIT_STRIDE + blitRoll,x ++ bvc e_94to e_96rooto: - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 97*BLIT_STRIDE + blitRoll,x -: bvc e_98to + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 97*BLIT_STRIDE + blitRoll,x ++ bvc e_98to e_r96ooto: - asl - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x - sta 97*BLIT_STRIDE + blitRoll,x -: bvc e_98to + asl + bmi + + sta 96*BLIT_STRIDE + blitRoll,x + sta 97*BLIT_STRIDE + blitRoll,x ++ bvc e_98to e_96toroto: - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_97roto: - bmi :+ - sta 97*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 97*BLIT_STRIDE + blitRoll,x ++ asl e_98to: - bmi :+ - sta 98*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 99*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 98*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 99*BLIT_STRIDE + blitRoll,x ++ rts e_r96toroto: - asl - bvc e_96toroto + asl + bvc e_96toroto e_t96oroto: - iny - lda (pTex),y - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: bvc e_97roto + iny + lda (pTex),y + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ bvc e_97roto e_t96rooto: - iny - lda (pTex),y - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 97*BLIT_STRIDE + blitRoll,x -: bvc e_98to + iny + lda (pTex),y + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 97*BLIT_STRIDE + blitRoll,x ++ bvc e_98to e_32tooro: - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 33*BLIT_STRIDE + blitRoll,x -: bvc e_34ro + bmi + + sta 32*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 33*BLIT_STRIDE + blitRoll,x ++ bvc e_34ro e_r32otoro: - asl - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x -: bvc e_33toro + asl + bmi + + sta 32*BLIT_STRIDE + blitRoll,x ++ bvc e_33toro e_r32tooro: - asl - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 33*BLIT_STRIDE + blitRoll,x -: bvc e_34ro + asl + bmi + + sta 32*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 33*BLIT_STRIDE + blitRoll,x ++ bvc e_34ro e_32rotoro: - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 32*BLIT_STRIDE + blitRoll,x ++ asl e_33toro: - bmi :+ - sta 33*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 33*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_34ro: - bmi :+ - sta 34*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 35*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 34*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 35*BLIT_STRIDE + blitRoll,x ++ rts e_t32ooro: - iny - lda (pTex),y - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x - sta 33*BLIT_STRIDE + blitRoll,x -: bvc e_34ro + iny + lda (pTex),y + bmi + + sta 32*BLIT_STRIDE + blitRoll,x + sta 33*BLIT_STRIDE + blitRoll,x ++ bvc e_34ro e_t32rotoro: - iny - lda (pTex),y - bvc e_32rotoro + iny + lda (pTex),y + bvc e_32rotoro e_40tooro: - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 41*BLIT_STRIDE + blitRoll,x -: bvc e_42ro + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 41*BLIT_STRIDE + blitRoll,x ++ bvc e_42ro e_r40otoro: - asl - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: bvc e_41toro + asl + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ bvc e_41toro e_r40tooro: - asl - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 41*BLIT_STRIDE + blitRoll,x -: bvc e_42ro + asl + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 41*BLIT_STRIDE + blitRoll,x ++ bvc e_42ro e_40rotoro: - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ asl e_41toro: - bmi :+ - sta 41*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 41*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_42ro: - bmi :+ - sta 42*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 43*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 42*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 43*BLIT_STRIDE + blitRoll,x ++ rts e_t40ooro: - iny - lda (pTex),y - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x - sta 41*BLIT_STRIDE + blitRoll,x -: bvc e_42ro + iny + lda (pTex),y + bmi + + sta 40*BLIT_STRIDE + blitRoll,x + sta 41*BLIT_STRIDE + blitRoll,x ++ bvc e_42ro e_t40rotoro: - iny - lda (pTex),y - bvc e_40rotoro + iny + lda (pTex),y + bvc e_40rotoro e_44tooro: - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 45*BLIT_STRIDE + blitRoll,x -: bvc e_46ro + bmi + + sta 44*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 45*BLIT_STRIDE + blitRoll,x ++ bvc e_46ro e_r44otoro: - asl - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x -: bvc e_45toro + asl + bmi + + sta 44*BLIT_STRIDE + blitRoll,x ++ bvc e_45toro e_r44tooro: - asl - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 45*BLIT_STRIDE + blitRoll,x -: bvc e_46ro + asl + bmi + + sta 44*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 45*BLIT_STRIDE + blitRoll,x ++ bvc e_46ro e_44rotoro: - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 44*BLIT_STRIDE + blitRoll,x ++ asl e_45toro: - bmi :+ - sta 45*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 45*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_46ro: - bmi :+ - sta 46*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 47*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 46*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 47*BLIT_STRIDE + blitRoll,x ++ rts e_t44ooro: - iny - lda (pTex),y - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x - sta 45*BLIT_STRIDE + blitRoll,x -: bvc e_46ro + iny + lda (pTex),y + bmi + + sta 44*BLIT_STRIDE + blitRoll,x + sta 45*BLIT_STRIDE + blitRoll,x ++ bvc e_46ro e_t44rotoro: - iny - lda (pTex),y - bvc e_44rotoro + iny + lda (pTex),y + bvc e_44rotoro e_48tooro: - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 49*BLIT_STRIDE + blitRoll,x -: bvc e_50ro + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 49*BLIT_STRIDE + blitRoll,x ++ bvc e_50ro e_r48tooro: - asl - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 49*BLIT_STRIDE + blitRoll,x -: bvc e_50ro + asl + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 49*BLIT_STRIDE + blitRoll,x ++ bvc e_50ro e_48rotoro: - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ asl e_49toro: - bmi :+ - sta 49*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 49*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_50ro: - bmi :+ - sta 50*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 51*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 50*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 51*BLIT_STRIDE + blitRoll,x ++ rts e_t48ooro: - iny - lda (pTex),y - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x - sta 49*BLIT_STRIDE + blitRoll,x -: bvc e_50ro + iny + lda (pTex),y + bmi + + sta 48*BLIT_STRIDE + blitRoll,x + sta 49*BLIT_STRIDE + blitRoll,x ++ bvc e_50ro e_t48rotoro: - iny - lda (pTex),y - bvc e_48rotoro + iny + lda (pTex),y + bvc e_48rotoro e_72tooro: - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 73*BLIT_STRIDE + blitRoll,x -: bvc e_74ro + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 73*BLIT_STRIDE + blitRoll,x ++ bvc e_74ro e_r72otoro: - asl - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: bvc e_73toro + asl + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ bvc e_73toro e_72rotoro: - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ asl e_73toro: - bmi :+ - sta 73*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 73*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_74ro: - bmi :+ - sta 74*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 75*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 74*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 75*BLIT_STRIDE + blitRoll,x ++ rts e_r72tooro: - asl - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 73*BLIT_STRIDE + blitRoll,x -: bvc e_74ro + asl + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 73*BLIT_STRIDE + blitRoll,x ++ bvc e_74ro e_t72ooro: - iny - lda (pTex),y - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x - sta 73*BLIT_STRIDE + blitRoll,x -: bvc e_74ro + iny + lda (pTex),y + bmi + + sta 72*BLIT_STRIDE + blitRoll,x + sta 73*BLIT_STRIDE + blitRoll,x ++ bvc e_74ro e_t72rotoro: - iny - lda (pTex),y - bvc e_72rotoro + iny + lda (pTex),y + bvc e_72rotoro e_80ooro: - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x - sta 81*BLIT_STRIDE + blitRoll,x -: bvc e_82ro + bmi + + sta 80*BLIT_STRIDE + blitRoll,x + sta 81*BLIT_STRIDE + blitRoll,x ++ bvc e_82ro e_80tooro: - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 81*BLIT_STRIDE + blitRoll,x -: bvc e_82ro + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 81*BLIT_STRIDE + blitRoll,x ++ bvc e_82ro e_r80otoro: - asl - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: bvc e_81toro + asl + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ bvc e_81toro e_80rotoro: - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ asl e_81toro: - bmi :+ - sta 81*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 81*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_82ro: - bmi :+ - sta 82*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 83*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 82*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 83*BLIT_STRIDE + blitRoll,x ++ rts e_r80tooro: - asl - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 81*BLIT_STRIDE + blitRoll,x -: bvc e_82ro + asl + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 81*BLIT_STRIDE + blitRoll,x ++ bvc e_82ro e_t80rotoro: - iny - lda (pTex),y - bvc e_80rotoro + iny + lda (pTex),y + bvc e_80rotoro e_96tooro: - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 97*BLIT_STRIDE + blitRoll,x -: bvc e_98ro + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 97*BLIT_STRIDE + blitRoll,x ++ bvc e_98ro e_96rotoro: - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ asl e_97toro: - bmi :+ - sta 97*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 97*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_98ro: - bmi :+ - sta 98*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 99*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 98*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 99*BLIT_STRIDE + blitRoll,x ++ rts e_r96tooro: - asl - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 97*BLIT_STRIDE + blitRoll,x -: bvc e_98ro + asl + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 97*BLIT_STRIDE + blitRoll,x ++ bvc e_98ro e_t96ooro: - iny - lda (pTex),y - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x - sta 97*BLIT_STRIDE + blitRoll,x -: bvc e_98ro + iny + lda (pTex),y + bmi + + sta 96*BLIT_STRIDE + blitRoll,x + sta 97*BLIT_STRIDE + blitRoll,x ++ bvc e_98ro e_r40ooto: - asl - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: bvc e_41oto + asl + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ bvc e_41oto e_40rooto: - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ asl e_41oto: - bmi :+ - sta 41*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 41*BLIT_STRIDE + blitRoll,x ++ e_42to: - bmi :+ - sta 42*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 43*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 42*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 43*BLIT_STRIDE + blitRoll,x ++ rts e_r40toroto: - asl - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 41*BLIT_STRIDE + blitRoll,x -: asl - bvc e_42to + asl + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 41*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_42to e_t40oroto: - iny - lda (pTex),y - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x - sta 41*BLIT_STRIDE + blitRoll,x -: asl - bvc e_42to + iny + lda (pTex),y + bmi + + sta 40*BLIT_STRIDE + blitRoll,x + sta 41*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_42to e_t40rooto: - iny - lda (pTex),y - bvc e_40rooto + iny + lda (pTex),y + bvc e_40rooto e_28rotoro: - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 29*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_30ro + bmi + + sta 28*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 29*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_30ro e_28tooro: - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 28*BLIT_STRIDE + blitRoll,x ++ e_t29oro: - iny - lda (pTex),y + iny + lda (pTex),y e_29oro: - bmi :+ - sta 29*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 29*BLIT_STRIDE + blitRoll,x ++ e_30ro: - bmi :+ - sta 30*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 31*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 30*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 31*BLIT_STRIDE + blitRoll,x ++ rts e_r28tooro: - asl - bvc e_28tooro + asl + bvc e_28tooro e_56tooro: - bmi :+ - sta 56*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 57*BLIT_STRIDE + blitRoll,x -: bvc e_58ro + bmi + + sta 56*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 57*BLIT_STRIDE + blitRoll,x ++ bvc e_58ro e_r56otoro: - asl - bmi :+ - sta 56*BLIT_STRIDE + blitRoll,x -: bvc e_57toro + asl + bmi + + sta 56*BLIT_STRIDE + blitRoll,x ++ bvc e_57toro e_56rotoro: - bmi :+ - sta 56*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 56*BLIT_STRIDE + blitRoll,x ++ asl e_57toro: - bmi :+ - sta 57*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 57*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_58ro: - bmi :+ - sta 58*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 59*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 58*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 59*BLIT_STRIDE + blitRoll,x ++ rts e_r56tooro: - asl - bmi :+ - sta 56*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 57*BLIT_STRIDE + blitRoll,x -: bvc e_58ro + asl + bmi + + sta 56*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 57*BLIT_STRIDE + blitRoll,x ++ bvc e_58ro e_t56rotoro: - iny - lda (pTex),y - bvc e_56rotoro + iny + lda (pTex),y + bvc e_56rotoro e_76tooro: - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 77*BLIT_STRIDE + blitRoll,x -: bvc e_78ro + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 77*BLIT_STRIDE + blitRoll,x ++ bvc e_78ro e_r76otoro: - asl - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: bvc e_77toro + asl + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ bvc e_77toro e_76rotoro: - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ asl e_77toro: - bmi :+ - sta 77*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 77*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_78ro: - bmi :+ - sta 78*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 79*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 78*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 79*BLIT_STRIDE + blitRoll,x ++ rts e_r76tooro: - asl - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 77*BLIT_STRIDE + blitRoll,x -: bvc e_78ro + asl + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 77*BLIT_STRIDE + blitRoll,x ++ bvc e_78ro e_t76ooro: - iny - lda (pTex),y - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x - sta 77*BLIT_STRIDE + blitRoll,x -: bvc e_78ro + iny + lda (pTex),y + bmi + + sta 76*BLIT_STRIDE + blitRoll,x + sta 77*BLIT_STRIDE + blitRoll,x ++ bvc e_78ro e_t76rotoro: - iny - lda (pTex),y - bvc e_76rotoro + iny + lda (pTex),y + bvc e_76rotoro e_84tooro: - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 85*BLIT_STRIDE + blitRoll,x -: bvc e_86ro + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 85*BLIT_STRIDE + blitRoll,x ++ bvc e_86ro e_84rotoro: - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ asl e_85toro: - bmi :+ - sta 85*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 85*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_86ro: - bmi :+ - sta 86*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 87*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 86*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 87*BLIT_STRIDE + blitRoll,x ++ rts e_r84tooro: - asl - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 85*BLIT_STRIDE + blitRoll,x -: bvc e_86ro + asl + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 85*BLIT_STRIDE + blitRoll,x ++ bvc e_86ro e_t84ooro: - iny - lda (pTex),y - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x - sta 85*BLIT_STRIDE + blitRoll,x -: bvc e_86ro + iny + lda (pTex),y + bmi + + sta 84*BLIT_STRIDE + blitRoll,x + sta 85*BLIT_STRIDE + blitRoll,x ++ bvc e_86ro e_t84rotoro: - iny - lda (pTex),y - bvc e_84rotoro + iny + lda (pTex),y + bvc e_84rotoro e_92tooro: - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 93*BLIT_STRIDE + blitRoll,x -: bvc e_94ro + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 93*BLIT_STRIDE + blitRoll,x ++ bvc e_94ro e_r92otoro: - asl - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: bvc e_93toro + asl + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ bvc e_93toro e_92rotoro: - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ asl e_93toro: - bmi :+ - sta 93*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 93*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_94ro: - bmi :+ - sta 94*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 95*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 94*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 95*BLIT_STRIDE + blitRoll,x ++ rts e_r92tooro: - asl - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 93*BLIT_STRIDE + blitRoll,x -: bvc e_94ro + asl + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 93*BLIT_STRIDE + blitRoll,x ++ bvc e_94ro e_t92ooro: - iny - lda (pTex),y - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x - sta 93*BLIT_STRIDE + blitRoll,x -: bvc e_94ro + iny + lda (pTex),y + bmi + + sta 92*BLIT_STRIDE + blitRoll,x + sta 93*BLIT_STRIDE + blitRoll,x ++ bvc e_94ro e_t92rotoro: - iny - lda (pTex),y - bvc e_92rotoro + iny + lda (pTex),y + bvc e_92rotoro e_88tooro: - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_89oro: - bmi :+ - sta 89*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 89*BLIT_STRIDE + blitRoll,x ++ e_90ro: - bmi :+ - sta 90*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 91*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 90*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 91*BLIT_STRIDE + blitRoll,x ++ rts e_r88tooro: - asl - bvc e_88tooro + asl + bvc e_88tooro e_t88ooro: - iny - lda (pTex),y - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: bvc e_89oro + iny + lda (pTex),y + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ bvc e_89oro e_t88rotoro: - iny - lda (pTex),y - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 89*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_90ro + iny + lda (pTex),y + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 89*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_90ro e_r100ooto: - asl - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x -: bvc e_101oto + asl + bmi + + sta 100*BLIT_STRIDE + blitRoll,x ++ bvc e_101oto e_100rooto: - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 100*BLIT_STRIDE + blitRoll,x ++ asl e_101oto: - bmi :+ - sta 101*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 101*BLIT_STRIDE + blitRoll,x ++ e_102to: - bmi :+ - sta 102*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 103*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 102*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 103*BLIT_STRIDE + blitRoll,x ++ rts e_t100oroto: - iny - lda (pTex),y - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x - sta 101*BLIT_STRIDE + blitRoll,x -: asl - bvc e_102to + iny + lda (pTex),y + bmi + + sta 100*BLIT_STRIDE + blitRoll,x + sta 101*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_102to e_t100rooto: - iny - lda (pTex),y - bvc e_100rooto + iny + lda (pTex),y + bvc e_100rooto e_r104ooto: - asl - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: bvc e_105oto + asl + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ bvc e_105oto e_104rooto: - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ asl e_105oto: - bmi :+ - sta 105*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 105*BLIT_STRIDE + blitRoll,x ++ e_106to: - bmi :+ - sta 106*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 107*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 106*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 107*BLIT_STRIDE + blitRoll,x ++ rts e_t104rooto: - iny - lda (pTex),y - bvc e_104rooto + iny + lda (pTex),y + bvc e_104rooto e_r108ooto: - asl - bmi :+ - sta 108*BLIT_STRIDE + blitRoll,x -: bvc e_109oto + asl + bmi + + sta 108*BLIT_STRIDE + blitRoll,x ++ bvc e_109oto e_108rooto: - bmi :+ - sta 108*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 108*BLIT_STRIDE + blitRoll,x ++ asl e_109oto: - bmi :+ - sta 109*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 109*BLIT_STRIDE + blitRoll,x ++ e_110to: - bmi :+ - sta 110*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 111*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 110*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 111*BLIT_STRIDE + blitRoll,x ++ rts e_r20ooto: - asl - bmi :+ - sta 20*BLIT_STRIDE + blitRoll,x -: bvc e_21oto + asl + bmi + + sta 20*BLIT_STRIDE + blitRoll,x ++ bvc e_21oto e_20rooto: - bmi :+ - sta 20*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 20*BLIT_STRIDE + blitRoll,x ++ asl e_21oto: - bmi :+ - sta 21*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 21*BLIT_STRIDE + blitRoll,x ++ e_22to: - bmi :+ - sta 22*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 23*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 22*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 23*BLIT_STRIDE + blitRoll,x ++ rts e_t20oroto: - iny - lda (pTex),y - bmi :+ - sta 20*BLIT_STRIDE + blitRoll,x - sta 21*BLIT_STRIDE + blitRoll,x -: asl - bvc e_22to + iny + lda (pTex),y + bmi + + sta 20*BLIT_STRIDE + blitRoll,x + sta 21*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_22to e_r24ooto: - asl - bmi :+ - sta 24*BLIT_STRIDE + blitRoll,x -: bvc e_25oto + asl + bmi + + sta 24*BLIT_STRIDE + blitRoll,x ++ bvc e_25oto e_24rooto: - bmi :+ - sta 24*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 24*BLIT_STRIDE + blitRoll,x ++ asl e_25oto: - bmi :+ - sta 25*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 25*BLIT_STRIDE + blitRoll,x ++ e_26to: - bmi :+ - sta 26*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 27*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 26*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 27*BLIT_STRIDE + blitRoll,x ++ rts e_t24oroto: - iny - lda (pTex),y - bmi :+ - sta 24*BLIT_STRIDE + blitRoll,x - sta 25*BLIT_STRIDE + blitRoll,x -: asl - bvc e_26to + iny + lda (pTex),y + bmi + + sta 24*BLIT_STRIDE + blitRoll,x + sta 25*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_26to e_28otoo: - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x -: bvc e_29too + bmi + + sta 28*BLIT_STRIDE + blitRoll,x ++ bvc e_29too e_r28otoo: - asl - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x -: bvc e_29too + asl + bmi + + sta 28*BLIT_STRIDE + blitRoll,x ++ bvc e_29too e_28rotoo: - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 28*BLIT_STRIDE + blitRoll,x ++ asl e_29too: - bmi :+ - sta 29*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 29*BLIT_STRIDE + blitRoll,x ++ e_t30o: - iny - lda (pTex),y - bmi :+ - sta 30*BLIT_STRIDE + blitRoll,x - sta 31*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 30*BLIT_STRIDE + blitRoll,x + sta 31*BLIT_STRIDE + blitRoll,x ++ rts e_t28rotoo: - iny - lda (pTex),y - bvc e_28rotoo + iny + lda (pTex),y + bvc e_28rotoo e_32otoo: - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x -: bvc e_33too + bmi + + sta 32*BLIT_STRIDE + blitRoll,x ++ bvc e_33too e_r32otoo: - asl - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x -: bvc e_33too + asl + bmi + + sta 32*BLIT_STRIDE + blitRoll,x ++ bvc e_33too e_32rotoo: - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 32*BLIT_STRIDE + blitRoll,x ++ asl e_33too: - bmi :+ - sta 33*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 33*BLIT_STRIDE + blitRoll,x ++ e_t34o: - iny - lda (pTex),y - bmi :+ - sta 34*BLIT_STRIDE + blitRoll,x - sta 35*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 34*BLIT_STRIDE + blitRoll,x + sta 35*BLIT_STRIDE + blitRoll,x ++ rts e_t32rotoo: - iny - lda (pTex),y - bvc e_32rotoo + iny + lda (pTex),y + bvc e_32rotoo e_36otoo: - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: bvc e_37too + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ bvc e_37too e_r36otoo: - asl - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: bvc e_37too + asl + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ bvc e_37too e_36rotoo: - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ asl e_37too: - bmi :+ - sta 37*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 37*BLIT_STRIDE + blitRoll,x ++ e_t38o: - iny - lda (pTex),y - bmi :+ - sta 38*BLIT_STRIDE + blitRoll,x - sta 39*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 38*BLIT_STRIDE + blitRoll,x + sta 39*BLIT_STRIDE + blitRoll,x ++ rts e_t36rotoo: - iny - lda (pTex),y - bvc e_36rotoo + iny + lda (pTex),y + bvc e_36rotoo e_40otoo: - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: bvc e_41too + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ bvc e_41too e_r40otoo: - asl - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: bvc e_41too + asl + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ bvc e_41too e_40rotoo: - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ asl e_41too: - bmi :+ - sta 41*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 41*BLIT_STRIDE + blitRoll,x ++ e_t42o: - iny - lda (pTex),y - bmi :+ - sta 42*BLIT_STRIDE + blitRoll,x - sta 43*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 42*BLIT_STRIDE + blitRoll,x + sta 43*BLIT_STRIDE + blitRoll,x ++ rts e_44otoo: - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x -: bvc e_45too + bmi + + sta 44*BLIT_STRIDE + blitRoll,x ++ bvc e_45too e_r44otoo: - asl - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x -: bvc e_45too + asl + bmi + + sta 44*BLIT_STRIDE + blitRoll,x ++ bvc e_45too e_44rotoo: - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 44*BLIT_STRIDE + blitRoll,x ++ asl e_45too: - bmi :+ - sta 45*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 45*BLIT_STRIDE + blitRoll,x ++ e_t46o: - iny - lda (pTex),y - bmi :+ - sta 46*BLIT_STRIDE + blitRoll,x - sta 47*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 46*BLIT_STRIDE + blitRoll,x + sta 47*BLIT_STRIDE + blitRoll,x ++ rts e_48otoo: - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: bvc e_49too + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ bvc e_49too e_r48otoo: - asl - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: bvc e_49too + asl + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ bvc e_49too e_48rotoo: - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ asl e_49too: - bmi :+ - sta 49*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 49*BLIT_STRIDE + blitRoll,x ++ e_t50o: - iny - lda (pTex),y - bmi :+ - sta 50*BLIT_STRIDE + blitRoll,x - sta 51*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 50*BLIT_STRIDE + blitRoll,x + sta 51*BLIT_STRIDE + blitRoll,x ++ rts e_52otoo: - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: bvc e_53too + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ bvc e_53too e_r52otoo: - asl - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: bvc e_53too + asl + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ bvc e_53too e_52rotoo: - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ asl e_53too: - bmi :+ - sta 53*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 53*BLIT_STRIDE + blitRoll,x ++ e_t54o: - iny - lda (pTex),y - bmi :+ - sta 54*BLIT_STRIDE + blitRoll,x - sta 55*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 54*BLIT_STRIDE + blitRoll,x + sta 55*BLIT_STRIDE + blitRoll,x ++ rts e_t52rotoo: - iny - lda (pTex),y - bvc e_52rotoo + iny + lda (pTex),y + bvc e_52rotoo e_r16tooro: - asl - bvc e_16tooro + asl + bvc e_16tooro e_16tooro: - bmi :+ - sta 16*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 16*BLIT_STRIDE + blitRoll,x ++ e_t17oro: - iny - lda (pTex),y + iny + lda (pTex),y e_17oro: - bmi :+ - sta 17*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 17*BLIT_STRIDE + blitRoll,x ++ e_18ro: - bmi :+ - sta 18*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 19*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 18*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 19*BLIT_STRIDE + blitRoll,x ++ rts e_t16ooro: - iny - lda (pTex),y - bmi :+ - sta 16*BLIT_STRIDE + blitRoll,x -: bvc e_17oro + iny + lda (pTex),y + bmi + + sta 16*BLIT_STRIDE + blitRoll,x ++ bvc e_17oro e_20tooro: - bmi :+ - sta 20*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 20*BLIT_STRIDE + blitRoll,x ++ e_t21oro: - iny - lda (pTex),y + iny + lda (pTex),y e_21oro: - bmi :+ - sta 21*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 21*BLIT_STRIDE + blitRoll,x ++ e_22ro: - bmi :+ - sta 22*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 23*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 22*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 23*BLIT_STRIDE + blitRoll,x ++ rts e_r20tooro: - asl - bvc e_20tooro + asl + bvc e_20tooro e_24rotoro: - bmi :+ - sta 24*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 25*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_26ro + bmi + + sta 24*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 25*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_26ro e_r24tooro: - asl - bvc e_24tooro + asl + bvc e_24tooro e_24tooro: - bmi :+ - sta 24*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 24*BLIT_STRIDE + blitRoll,x ++ e_t25oro: - iny - lda (pTex),y + iny + lda (pTex),y e_25oro: - bmi :+ - sta 25*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 25*BLIT_STRIDE + blitRoll,x ++ e_26ro: - bmi :+ - sta 26*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 27*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 26*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 27*BLIT_STRIDE + blitRoll,x ++ rts e_t24ooro: - iny - lda (pTex),y - bmi :+ - sta 24*BLIT_STRIDE + blitRoll,x -: bvc e_25oro + iny + lda (pTex),y + bmi + + sta 24*BLIT_STRIDE + blitRoll,x ++ bvc e_25oro e_68tooro: - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 69*BLIT_STRIDE + blitRoll,x -: bvc e_70ro + bmi + + sta 68*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 69*BLIT_STRIDE + blitRoll,x ++ bvc e_70ro e_r68otoro: - asl - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x -: bvc e_69toro + asl + bmi + + sta 68*BLIT_STRIDE + blitRoll,x ++ bvc e_69toro e_68rotoro: - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 68*BLIT_STRIDE + blitRoll,x ++ asl e_69toro: - bmi :+ - sta 69*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 69*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_70ro: - bmi :+ - sta 70*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 71*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 70*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 71*BLIT_STRIDE + blitRoll,x ++ rts e_r68tooro: - asl - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 69*BLIT_STRIDE + blitRoll,x -: bvc e_70ro + asl + bmi + + sta 68*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 69*BLIT_STRIDE + blitRoll,x ++ bvc e_70ro e_t68rotoro: - iny - lda (pTex),y - bvc e_68rotoro + iny + lda (pTex),y + bvc e_68rotoro e_r36toroto: - asl - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 37*BLIT_STRIDE + blitRoll,x -: asl - bvc e_38to + asl + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 37*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_38to e_36rooto: - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ asl e_37oto: - bmi :+ - sta 37*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 37*BLIT_STRIDE + blitRoll,x ++ e_38to: - bmi :+ - sta 38*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 39*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 38*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 39*BLIT_STRIDE + blitRoll,x ++ rts e_t36oroto: - iny - lda (pTex),y - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x - sta 37*BLIT_STRIDE + blitRoll,x -: asl - bvc e_38to + iny + lda (pTex),y + bmi + + sta 36*BLIT_STRIDE + blitRoll,x + sta 37*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_38to e_t36rooto: - iny - lda (pTex),y - bvc e_36rooto + iny + lda (pTex),y + bvc e_36rooto e_r44ooto: - asl - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x -: bvc e_45oto + asl + bmi + + sta 44*BLIT_STRIDE + blitRoll,x ++ bvc e_45oto e_r44toroto: - asl - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 45*BLIT_STRIDE + blitRoll,x -: asl - bvc e_46to + asl + bmi + + sta 44*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 45*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_46to e_44rooto: - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 44*BLIT_STRIDE + blitRoll,x ++ asl e_45oto: - bmi :+ - sta 45*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 45*BLIT_STRIDE + blitRoll,x ++ e_46to: - bmi :+ - sta 46*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 47*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 46*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 47*BLIT_STRIDE + blitRoll,x ++ rts e_t44oroto: - iny - lda (pTex),y - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x - sta 45*BLIT_STRIDE + blitRoll,x -: asl - bvc e_46to + iny + lda (pTex),y + bmi + + sta 44*BLIT_STRIDE + blitRoll,x + sta 45*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_46to e_t44rooto: - iny - lda (pTex),y - bvc e_44rooto + iny + lda (pTex),y + bvc e_44rooto e_104ooro: - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: bvc e_105oro + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ bvc e_105oro e_r104otoro: - asl - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x - sta 105*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_106ro + asl + bmi + + sta 104*BLIT_STRIDE + blitRoll,x + sta 105*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_106ro e_104tooro: - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_105oro: - bmi :+ - sta 105*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 105*BLIT_STRIDE + blitRoll,x ++ e_106ro: - bmi :+ - sta 106*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 107*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 106*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 107*BLIT_STRIDE + blitRoll,x ++ rts e_t104ooro: - iny - lda (pTex),y - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: bvc e_105oro + iny + lda (pTex),y + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ bvc e_105oro e_100rotoro: - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 101*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_102ro + bmi + + sta 100*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 101*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_102ro e_r100otoro: - asl - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x - sta 101*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_102ro + asl + bmi + + sta 100*BLIT_STRIDE + blitRoll,x + sta 101*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_102ro e_100tooro: - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 100*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_101oro: - bmi :+ - sta 101*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 101*BLIT_STRIDE + blitRoll,x ++ e_102ro: - bmi :+ - sta 102*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 103*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 102*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 103*BLIT_STRIDE + blitRoll,x ++ rts e_r100tooro: - asl - bvc e_100tooro + asl + bvc e_100tooro e_t100ooro: - iny - lda (pTex),y - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x -: bvc e_101oro + iny + lda (pTex),y + bmi + + sta 100*BLIT_STRIDE + blitRoll,x ++ bvc e_101oro e_112rooto: - bmi :+ - sta 112*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 112*BLIT_STRIDE + blitRoll,x ++ asl e_113oto: - bmi :+ - sta 113*BLIT_STRIDE + blitRoll,x - sta 114*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 115*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 113*BLIT_STRIDE + blitRoll,x + sta 114*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 115*BLIT_STRIDE + blitRoll,x ++ rts e_r112ooto: - asl - bmi :+ - sta 112*BLIT_STRIDE + blitRoll,x -: bvc e_113oto + asl + bmi + + sta 112*BLIT_STRIDE + blitRoll,x ++ bvc e_113oto e_t112rooto: - iny - lda (pTex),y - bvc e_112rooto + iny + lda (pTex),y + bvc e_112rooto e_72otoo: - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: bvc e_73too + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ bvc e_73too e_72rotoo: - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ asl e_73too: - bmi :+ - sta 73*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 74*BLIT_STRIDE + blitRoll,x - sta 75*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 73*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 74*BLIT_STRIDE + blitRoll,x + sta 75*BLIT_STRIDE + blitRoll,x ++ rts e_r72otoo: - asl - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: bvc e_73too + asl + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ bvc e_73too e_t72rotoo: - iny - lda (pTex),y - bvc e_72rotoo + iny + lda (pTex),y + bvc e_72rotoo e_76otoo: - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: bvc e_77too + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ bvc e_77too e_76rotoo: - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ asl e_77too: - bmi :+ - sta 77*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 78*BLIT_STRIDE + blitRoll,x - sta 79*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 77*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 78*BLIT_STRIDE + blitRoll,x + sta 79*BLIT_STRIDE + blitRoll,x ++ rts e_r76otoo: - asl - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: bvc e_77too + asl + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ bvc e_77too e_80otoo: - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: bvc e_81too + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ bvc e_81too e_80rotoo: - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ asl e_81too: - bmi :+ - sta 81*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 82*BLIT_STRIDE + blitRoll,x - sta 83*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 81*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 82*BLIT_STRIDE + blitRoll,x + sta 83*BLIT_STRIDE + blitRoll,x ++ rts e_r80otoo: - asl - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: bvc e_81too + asl + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ bvc e_81too e_t80rotoo: - iny - lda (pTex),y - bvc e_80rotoo + iny + lda (pTex),y + bvc e_80rotoo e_84otoo: - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: bvc e_85too + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ bvc e_85too e_84rotoo: - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ asl e_85too: - bmi :+ - sta 85*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 86*BLIT_STRIDE + blitRoll,x - sta 87*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 85*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 86*BLIT_STRIDE + blitRoll,x + sta 87*BLIT_STRIDE + blitRoll,x ++ rts e_r84otoo: - asl - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: bvc e_85too + asl + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ bvc e_85too e_t84rotoo: - iny - lda (pTex),y - bvc e_84rotoo + iny + lda (pTex),y + bvc e_84rotoo e_92otoo: - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: bvc e_93too + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ bvc e_93too e_92rotoo: - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ asl e_93too: - bmi :+ - sta 93*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 94*BLIT_STRIDE + blitRoll,x - sta 95*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 93*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 94*BLIT_STRIDE + blitRoll,x + sta 95*BLIT_STRIDE + blitRoll,x ++ rts e_r92otoo: - asl - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: bvc e_93too + asl + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ bvc e_93too e_r16ooto: - asl - bmi :+ - sta 16*BLIT_STRIDE + blitRoll,x -: bvc e_17oto + asl + bmi + + sta 16*BLIT_STRIDE + blitRoll,x ++ bvc e_17oto e_16rooto: - bmi :+ - sta 16*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 16*BLIT_STRIDE + blitRoll,x ++ asl e_17oto: - bmi :+ - sta 17*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 17*BLIT_STRIDE + blitRoll,x ++ e_18to: - bmi :+ - sta 18*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 19*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 18*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 19*BLIT_STRIDE + blitRoll,x ++ rts e_t16oroto: - iny - lda (pTex),y - bmi :+ - sta 16*BLIT_STRIDE + blitRoll,x - sta 17*BLIT_STRIDE + blitRoll,x -: asl - bvc e_18to + iny + lda (pTex),y + bmi + + sta 16*BLIT_STRIDE + blitRoll,x + sta 17*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_18to e_112tooro: - bmi :+ - sta 112*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 112*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_113oro: - bmi :+ - sta 113*BLIT_STRIDE + blitRoll,x - sta 114*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 115*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 113*BLIT_STRIDE + blitRoll,x + sta 114*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 115*BLIT_STRIDE + blitRoll,x ++ rts e_r112tooro: - asl - bvc e_112tooro + asl + bvc e_112tooro e_24oroo: - bmi :+ - sta 24*BLIT_STRIDE + blitRoll,x -: bvc e_25roo + bmi + + sta 24*BLIT_STRIDE + blitRoll,x ++ bvc e_25roo e_24toroo: - bmi :+ - sta 24*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 24*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_25roo: - bmi :+ - sta 25*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 26*BLIT_STRIDE + blitRoll,x - sta 27*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 25*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 26*BLIT_STRIDE + blitRoll,x + sta 27*BLIT_STRIDE + blitRoll,x ++ rts e_t24oroo: - iny - lda (pTex),y - bmi :+ - sta 24*BLIT_STRIDE + blitRoll,x -: bvc e_25roo + iny + lda (pTex),y + bmi + + sta 24*BLIT_STRIDE + blitRoll,x ++ bvc e_25roo e_32oroo: - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x -: bvc e_33roo + bmi + + sta 32*BLIT_STRIDE + blitRoll,x ++ bvc e_33roo e_32toroo: - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 32*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_33roo: - bmi :+ - sta 33*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 34*BLIT_STRIDE + blitRoll,x - sta 35*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 33*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 34*BLIT_STRIDE + blitRoll,x + sta 35*BLIT_STRIDE + blitRoll,x ++ rts e_t32oroo: - iny - lda (pTex),y - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x -: bvc e_33roo + iny + lda (pTex),y + bmi + + sta 32*BLIT_STRIDE + blitRoll,x ++ bvc e_33roo e_36oroo: - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: bvc e_37roo + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ bvc e_37roo e_36toroo: - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_37roo: - bmi :+ - sta 37*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 38*BLIT_STRIDE + blitRoll,x - sta 39*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 37*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 38*BLIT_STRIDE + blitRoll,x + sta 39*BLIT_STRIDE + blitRoll,x ++ rts e_t36oroo: - iny - lda (pTex),y - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: bvc e_37roo + iny + lda (pTex),y + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ bvc e_37roo e_48oroo: - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: bvc e_49roo + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ bvc e_49roo e_48toroo: - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_49roo: - bmi :+ - sta 49*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 50*BLIT_STRIDE + blitRoll,x - sta 51*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 49*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 50*BLIT_STRIDE + blitRoll,x + sta 51*BLIT_STRIDE + blitRoll,x ++ rts e_t48oroo: - iny - lda (pTex),y - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: bvc e_49roo + iny + lda (pTex),y + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ bvc e_49roo e_52oroo: - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: bvc e_53roo + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ bvc e_53roo e_52toroo: - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_53roo: - bmi :+ - sta 53*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 54*BLIT_STRIDE + blitRoll,x - sta 55*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 53*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 54*BLIT_STRIDE + blitRoll,x + sta 55*BLIT_STRIDE + blitRoll,x ++ rts e_r52toroo: - asl - bvc e_52toroo + asl + bvc e_52toroo e_t52oroo: - iny - lda (pTex),y - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: bvc e_53roo + iny + lda (pTex),y + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ bvc e_53roo e_80oroo: - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: bvc e_81roo + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ bvc e_81roo e_80toroo: - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_81roo: - bmi :+ - sta 81*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 82*BLIT_STRIDE + blitRoll,x - sta 83*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 81*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 82*BLIT_STRIDE + blitRoll,x + sta 83*BLIT_STRIDE + blitRoll,x ++ rts e_r80toroo: - asl - bvc e_80toroo + asl + bvc e_80toroo e_t80oroo: - iny - lda (pTex),y - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: bvc e_81roo + iny + lda (pTex),y + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ bvc e_81roo e_84oroo: - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: bvc e_85roo + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ bvc e_85roo e_84toroo: - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_85roo: - bmi :+ - sta 85*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 86*BLIT_STRIDE + blitRoll,x - sta 87*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 85*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 86*BLIT_STRIDE + blitRoll,x + sta 87*BLIT_STRIDE + blitRoll,x ++ rts e_r84toroo: - asl - bvc e_84toroo + asl + bvc e_84toroo e_t84oroo: - iny - lda (pTex),y - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: bvc e_85roo + iny + lda (pTex),y + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ bvc e_85roo e_12rooto: - bmi :+ - sta 12*BLIT_STRIDE + blitRoll,x -: asl - bvc e_13oto + bmi + + sta 12*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_13oto e_12ooto: - bmi :+ - sta 12*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 12*BLIT_STRIDE + blitRoll,x ++ e_13oto: - bmi :+ - sta 13*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 13*BLIT_STRIDE + blitRoll,x ++ e_14to: - bmi :+ - sta 14*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 15*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 14*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 15*BLIT_STRIDE + blitRoll,x ++ rts e_20rotoo: - bmi :+ - sta 20*BLIT_STRIDE + blitRoll,x -: asl - bvc e_21too + bmi + + sta 20*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_21too e_20otoo: - bmi :+ - sta 20*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 20*BLIT_STRIDE + blitRoll,x ++ e_21too: - bmi :+ - sta 21*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 21*BLIT_STRIDE + blitRoll,x ++ e_t22o: - iny - lda (pTex),y - bmi :+ - sta 22*BLIT_STRIDE + blitRoll,x - sta 23*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 22*BLIT_STRIDE + blitRoll,x + sta 23*BLIT_STRIDE + blitRoll,x ++ rts e_r20otoo: - asl - bvc e_20otoo + asl + bvc e_20otoo e_24rotoo: - bmi :+ - sta 24*BLIT_STRIDE + blitRoll,x -: asl - bvc e_25too + bmi + + sta 24*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_25too e_24otoo: - bmi :+ - sta 24*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 24*BLIT_STRIDE + blitRoll,x ++ e_25too: - bmi :+ - sta 25*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 25*BLIT_STRIDE + blitRoll,x ++ e_t26o: - iny - lda (pTex),y - bmi :+ - sta 26*BLIT_STRIDE + blitRoll,x - sta 27*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 26*BLIT_STRIDE + blitRoll,x + sta 27*BLIT_STRIDE + blitRoll,x ++ rts e_r24otoo: - asl - bvc e_24otoo + asl + bvc e_24otoo e_56rotoo: - bmi :+ - sta 56*BLIT_STRIDE + blitRoll,x -: asl - bvc e_57too + bmi + + sta 56*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_57too e_56otoo: - bmi :+ - sta 56*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 56*BLIT_STRIDE + blitRoll,x ++ e_57too: - bmi :+ - sta 57*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 57*BLIT_STRIDE + blitRoll,x ++ e_t58o: - iny - lda (pTex),y - bmi :+ - sta 58*BLIT_STRIDE + blitRoll,x - sta 59*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 58*BLIT_STRIDE + blitRoll,x + sta 59*BLIT_STRIDE + blitRoll,x ++ rts e_r56otoo: - asl - bvc e_56otoo + asl + bvc e_56otoo e_32rooto: - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 33*BLIT_STRIDE + blitRoll,x -: bvc e_34to + bmi + + sta 32*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 33*BLIT_STRIDE + blitRoll,x ++ bvc e_34to e_r32toroto: - asl - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + asl + bmi + + sta 32*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_33roto: - bmi :+ - sta 33*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 33*BLIT_STRIDE + blitRoll,x ++ asl e_34to: - bmi :+ - sta 34*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 35*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 34*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 35*BLIT_STRIDE + blitRoll,x ++ rts e_r32ooto: - asl - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x - sta 33*BLIT_STRIDE + blitRoll,x -: bvc e_34to + asl + bmi + + sta 32*BLIT_STRIDE + blitRoll,x + sta 33*BLIT_STRIDE + blitRoll,x ++ bvc e_34to e_t32oroto: - iny - lda (pTex),y - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x -: bvc e_33roto + iny + lda (pTex),y + bmi + + sta 32*BLIT_STRIDE + blitRoll,x ++ bvc e_33roto e_r68ooto: - asl - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x - sta 69*BLIT_STRIDE + blitRoll,x -: bvc e_70to + asl + bmi + + sta 68*BLIT_STRIDE + blitRoll,x + sta 69*BLIT_STRIDE + blitRoll,x ++ bvc e_70to e_r68toroto: - asl - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + asl + bmi + + sta 68*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_69roto: - bmi :+ - sta 69*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 69*BLIT_STRIDE + blitRoll,x ++ asl e_70to: - bmi :+ - sta 70*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 71*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 70*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 71*BLIT_STRIDE + blitRoll,x ++ rts e_t68oroto: - iny - lda (pTex),y - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x -: bvc e_69roto + iny + lda (pTex),y + bmi + + sta 68*BLIT_STRIDE + blitRoll,x ++ bvc e_69roto e_t68rooto: - iny - lda (pTex),y - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 69*BLIT_STRIDE + blitRoll,x -: bvc e_70to + iny + lda (pTex),y + bmi + + sta 68*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 69*BLIT_STRIDE + blitRoll,x ++ bvc e_70to e_r108tooro: - asl - bvc e_108tooro + asl + bvc e_108tooro e_108tooro: - bmi :+ - sta 108*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 108*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_109oro: - bmi :+ - sta 109*BLIT_STRIDE + blitRoll,x - sta 110*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 111*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 109*BLIT_STRIDE + blitRoll,x + sta 110*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 111*BLIT_STRIDE + blitRoll,x ++ rts e_t108ooro: - iny - lda (pTex),y - bmi :+ - sta 108*BLIT_STRIDE + blitRoll,x -: bvc e_109oro + iny + lda (pTex),y + bmi + + sta 108*BLIT_STRIDE + blitRoll,x ++ bvc e_109oro e_100otoo: - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 100*BLIT_STRIDE + blitRoll,x ++ e_101too: - bmi :+ - sta 101*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 102*BLIT_STRIDE + blitRoll,x - sta 103*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 101*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 102*BLIT_STRIDE + blitRoll,x + sta 103*BLIT_STRIDE + blitRoll,x ++ rts e_r100otoo: - asl - bvc e_100otoo + asl + bvc e_100otoo e_104rotoo: - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: asl - bvc e_105too + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_105too e_104otoo: - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ e_105too: - bmi :+ - sta 105*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 106*BLIT_STRIDE + blitRoll,x - sta 107*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 105*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 106*BLIT_STRIDE + blitRoll,x + sta 107*BLIT_STRIDE + blitRoll,x ++ rts e_r104otoo: - asl - bvc e_104otoo + asl + bvc e_104otoo e_108otoo: - bmi :+ - sta 108*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 108*BLIT_STRIDE + blitRoll,x ++ e_109too: - bmi :+ - sta 109*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 110*BLIT_STRIDE + blitRoll,x - sta 111*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 109*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 110*BLIT_STRIDE + blitRoll,x + sta 111*BLIT_STRIDE + blitRoll,x ++ rts e_r108otoo: - asl - bvc e_108otoo + asl + bvc e_108otoo e_112rotoo: - bmi :+ - sta 112*BLIT_STRIDE + blitRoll,x -: asl - bvc e_113too + bmi + + sta 112*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_113too e_112otoo: - bmi :+ - sta 112*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 112*BLIT_STRIDE + blitRoll,x ++ e_113too: - bmi :+ - sta 113*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 114*BLIT_STRIDE + blitRoll,x - sta 115*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 113*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 114*BLIT_STRIDE + blitRoll,x + sta 115*BLIT_STRIDE + blitRoll,x ++ rts e_r112otoo: - asl - bvc e_112otoo + asl + bvc e_112otoo e_116rooto: - bmi :+ - sta 116*BLIT_STRIDE + blitRoll,x -: asl - bvc e_117oto + bmi + + sta 116*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_117oto e_116ooto: - bmi :+ - sta 116*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 116*BLIT_STRIDE + blitRoll,x ++ e_117oto: - bmi :+ - sta 117*BLIT_STRIDE + blitRoll,x - sta 118*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 119*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 117*BLIT_STRIDE + blitRoll,x + sta 118*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 119*BLIT_STRIDE + blitRoll,x ++ rts e_r116ooto: - asl - bvc e_116ooto + asl + bvc e_116ooto e_8rooto: - bmi :+ - sta 8*BLIT_STRIDE + blitRoll,x -: asl - bvc e_9oto + bmi + + sta 8*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_9oto e_8ooto: - bmi :+ - sta 8*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 8*BLIT_STRIDE + blitRoll,x ++ e_9oto: - bmi :+ - sta 9*BLIT_STRIDE + blitRoll,x - sta 10*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 11*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 9*BLIT_STRIDE + blitRoll,x + sta 10*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 11*BLIT_STRIDE + blitRoll,x ++ rts e_r8ooto: - asl - bvc e_8ooto + asl + bvc e_8ooto e_88rotoo: - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: asl - bvc e_89too + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_89too e_88otoo: - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ e_89too: - bmi :+ - sta 89*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 90*BLIT_STRIDE + blitRoll,x - sta 91*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 89*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 90*BLIT_STRIDE + blitRoll,x + sta 91*BLIT_STRIDE + blitRoll,x ++ rts e_r88otoo: - asl - bvc e_88otoo + asl + bvc e_88otoo e_96rotoo: - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: asl - bvc e_97too + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_97too e_96otoo: - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ e_97too: - bmi :+ - sta 97*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 98*BLIT_STRIDE + blitRoll,x - sta 99*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 97*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 98*BLIT_STRIDE + blitRoll,x + sta 99*BLIT_STRIDE + blitRoll,x ++ rts e_r96otoo: - asl - bvc e_96otoo + asl + bvc e_96otoo e_t12ooro: - iny - lda (pTex),y - bmi :+ - sta 12*BLIT_STRIDE + blitRoll,x -: bvc e_13oro + iny + lda (pTex),y + bmi + + sta 12*BLIT_STRIDE + blitRoll,x ++ bvc e_13oro e_12tooro: - bmi :+ - sta 12*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 12*BLIT_STRIDE + blitRoll,x ++ e_t13oro: - iny - lda (pTex),y + iny + lda (pTex),y e_13oro: - bmi :+ - sta 13*BLIT_STRIDE + blitRoll,x - sta 14*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 15*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 13*BLIT_STRIDE + blitRoll,x + sta 14*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 15*BLIT_STRIDE + blitRoll,x ++ rts e_t4ooro: - iny - lda (pTex),y - bmi :+ - sta 4*BLIT_STRIDE + blitRoll,x -: bvc e_5oro + iny + lda (pTex),y + bmi + + sta 4*BLIT_STRIDE + blitRoll,x ++ bvc e_5oro e_4tooro: - bmi :+ - sta 4*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 4*BLIT_STRIDE + blitRoll,x ++ e_t5oro: - iny - lda (pTex),y + iny + lda (pTex),y e_5oro: - bmi :+ - sta 5*BLIT_STRIDE + blitRoll,x - sta 6*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 7*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 5*BLIT_STRIDE + blitRoll,x + sta 6*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 7*BLIT_STRIDE + blitRoll,x ++ rts e_t8ooro: - iny - lda (pTex),y - bmi :+ - sta 8*BLIT_STRIDE + blitRoll,x -: bvc e_9oro + iny + lda (pTex),y + bmi + + sta 8*BLIT_STRIDE + blitRoll,x ++ bvc e_9oro e_8tooro: - bmi :+ - sta 8*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 8*BLIT_STRIDE + blitRoll,x ++ e_t9oro: - iny - lda (pTex),y + iny + lda (pTex),y e_9oro: - bmi :+ - sta 9*BLIT_STRIDE + blitRoll,x - sta 10*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 11*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 9*BLIT_STRIDE + blitRoll,x + sta 10*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 11*BLIT_STRIDE + blitRoll,x ++ rts e_t0ooro: - iny - lda (pTex),y - bmi :+ - sta 0*BLIT_STRIDE + blitRoll,x -: bvc e_1oro + iny + lda (pTex),y + bmi + + sta 0*BLIT_STRIDE + blitRoll,x ++ bvc e_1oro e_t1oro: - iny - lda (pTex),y + iny + lda (pTex),y e_1oro: - bmi :+ - sta 1*BLIT_STRIDE + blitRoll,x - sta 2*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 3*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 1*BLIT_STRIDE + blitRoll,x + sta 2*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 3*BLIT_STRIDE + blitRoll,x ++ rts e_r12otoo: - asl - bvc e_12otoo + asl + bvc e_12otoo e_12otoo: - bmi :+ - sta 12*BLIT_STRIDE + blitRoll,x - sta 13*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 12*BLIT_STRIDE + blitRoll,x + sta 13*BLIT_STRIDE + blitRoll,x ++ e_t14o: - iny - lda (pTex),y - bmi :+ - sta 14*BLIT_STRIDE + blitRoll,x - sta 15*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 14*BLIT_STRIDE + blitRoll,x + sta 15*BLIT_STRIDE + blitRoll,x ++ rts e_r16otoo: - asl - bvc e_16otoo + asl + bvc e_16otoo e_16otoo: - bmi :+ - sta 16*BLIT_STRIDE + blitRoll,x - sta 17*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 16*BLIT_STRIDE + blitRoll,x + sta 17*BLIT_STRIDE + blitRoll,x ++ e_t18o: - iny - lda (pTex),y - bmi :+ - sta 18*BLIT_STRIDE + blitRoll,x - sta 19*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 18*BLIT_STRIDE + blitRoll,x + sta 19*BLIT_STRIDE + blitRoll,x ++ rts e_r4otoo: - asl - bvc e_4otoo + asl + bvc e_4otoo e_4otoo: - bmi :+ - sta 4*BLIT_STRIDE + blitRoll,x - sta 5*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 4*BLIT_STRIDE + blitRoll,x + sta 5*BLIT_STRIDE + blitRoll,x ++ e_t6o: - iny - lda (pTex),y - bmi :+ - sta 6*BLIT_STRIDE + blitRoll,x - sta 7*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 6*BLIT_STRIDE + blitRoll,x + sta 7*BLIT_STRIDE + blitRoll,x ++ rts e_r8otoo: - asl - bvc e_8otoo + asl + bvc e_8otoo e_8otoo: - bmi :+ - sta 8*BLIT_STRIDE + blitRoll,x - sta 9*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 8*BLIT_STRIDE + blitRoll,x + sta 9*BLIT_STRIDE + blitRoll,x ++ e_t10o: - iny - lda (pTex),y - bmi :+ - sta 10*BLIT_STRIDE + blitRoll,x - sta 11*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 10*BLIT_STRIDE + blitRoll,x + sta 11*BLIT_STRIDE + blitRoll,x ++ rts e_r108ooo: - asl + asl e_108ooo: - bmi :+ - sta 108*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 108*BLIT_STRIDE + blitRoll,x ++ e_109oo: - bmi :+ - sta 109*BLIT_STRIDE + blitRoll,x - sta 110*BLIT_STRIDE + blitRoll,x - sta 111*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 109*BLIT_STRIDE + blitRoll,x + sta 110*BLIT_STRIDE + blitRoll,x + sta 111*BLIT_STRIDE + blitRoll,x ++ rts e_108tooo: - bmi :+ - sta 108*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_109oo + bmi + + sta 108*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_109oo e_12rooo: - bmi :+ - sta 12*BLIT_STRIDE + blitRoll,x -: asl - bvc e_13oo + bmi + + sta 12*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_13oo e_r12ooo: - asl + asl e_12ooo: - bmi :+ - sta 12*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 12*BLIT_STRIDE + blitRoll,x ++ e_13oo: - bmi :+ - sta 13*BLIT_STRIDE + blitRoll,x - sta 14*BLIT_STRIDE + blitRoll,x - sta 15*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 13*BLIT_STRIDE + blitRoll,x + sta 14*BLIT_STRIDE + blitRoll,x + sta 15*BLIT_STRIDE + blitRoll,x ++ rts e_12tooo: - bmi :+ - sta 12*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_13oo + bmi + + sta 12*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_13oo e_t12ooo: - iny - lda (pTex),y - bvc e_12ooo + iny + lda (pTex),y + bvc e_12ooo e_124rooo: - bmi :+ - sta 124*BLIT_STRIDE + blitRoll,x -: asl - bvc e_125oo + bmi + + sta 124*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_125oo e_r124ooo: - asl + asl e_124ooo: - bmi :+ - sta 124*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 124*BLIT_STRIDE + blitRoll,x ++ e_125oo: - bmi :+ - sta 125*BLIT_STRIDE + blitRoll,x - sta 126*BLIT_STRIDE + blitRoll,x - sta 127*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 125*BLIT_STRIDE + blitRoll,x + sta 126*BLIT_STRIDE + blitRoll,x + sta 127*BLIT_STRIDE + blitRoll,x ++ rts e_124tooo: - bmi :+ - sta 124*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_125oo + bmi + + sta 124*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_125oo e_88rooo: - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: asl - bvc e_89oo + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_89oo e_r88ooo: - asl + asl e_88ooo: - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ e_89oo: - bmi :+ - sta 89*BLIT_STRIDE + blitRoll,x - sta 90*BLIT_STRIDE + blitRoll,x - sta 91*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 89*BLIT_STRIDE + blitRoll,x + sta 90*BLIT_STRIDE + blitRoll,x + sta 91*BLIT_STRIDE + blitRoll,x ++ rts e_88tooo: - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_89oo + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_89oo e_100oroo: - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 100*BLIT_STRIDE + blitRoll,x ++ e_101roo: - bmi :+ - sta 101*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 102*BLIT_STRIDE + blitRoll,x - sta 103*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 101*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 102*BLIT_STRIDE + blitRoll,x + sta 103*BLIT_STRIDE + blitRoll,x ++ rts e_t100oroo: - iny - lda (pTex),y - bvc e_100oroo + iny + lda (pTex),y + bvc e_100oroo e_104oroo: - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ e_105roo: - bmi :+ - sta 105*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 106*BLIT_STRIDE + blitRoll,x - sta 107*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 105*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 106*BLIT_STRIDE + blitRoll,x + sta 107*BLIT_STRIDE + blitRoll,x ++ rts e_t104oroo: - iny - lda (pTex),y - bvc e_104oroo + iny + lda (pTex),y + bvc e_104oroo e_112oroo: - bmi :+ - sta 112*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 112*BLIT_STRIDE + blitRoll,x ++ e_113roo: - bmi :+ - sta 113*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 114*BLIT_STRIDE + blitRoll,x - sta 115*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 113*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 114*BLIT_STRIDE + blitRoll,x + sta 115*BLIT_STRIDE + blitRoll,x ++ rts e_t112oroo: - iny - lda (pTex),y - bvc e_112oroo + iny + lda (pTex),y + bvc e_112oroo e_116tooro: - bmi :+ - sta 116*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_117oro + bmi + + sta 116*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_117oro e_116ooro: - bmi :+ - sta 116*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 116*BLIT_STRIDE + blitRoll,x ++ e_117oro: - bmi :+ - sta 117*BLIT_STRIDE + blitRoll,x - sta 118*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 119*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 117*BLIT_STRIDE + blitRoll,x + sta 118*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 119*BLIT_STRIDE + blitRoll,x ++ rts e_16toroo: - bmi :+ - sta 16*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_17roo + bmi + + sta 16*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_17roo e_16oroo: - bmi :+ - sta 16*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 16*BLIT_STRIDE + blitRoll,x ++ e_17roo: - bmi :+ - sta 17*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 18*BLIT_STRIDE + blitRoll,x - sta 19*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 17*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 18*BLIT_STRIDE + blitRoll,x + sta 19*BLIT_STRIDE + blitRoll,x ++ rts e_t16oroo: - iny - lda (pTex),y - bvc e_16oroo + iny + lda (pTex),y + bvc e_16oroo e_20toroo: - bmi :+ - sta 20*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_21roo + bmi + + sta 20*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_21roo e_20oroo: - bmi :+ - sta 20*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 20*BLIT_STRIDE + blitRoll,x ++ e_21roo: - bmi :+ - sta 21*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 22*BLIT_STRIDE + blitRoll,x - sta 23*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 21*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 22*BLIT_STRIDE + blitRoll,x + sta 23*BLIT_STRIDE + blitRoll,x ++ rts e_t20oroo: - iny - lda (pTex),y - bvc e_20oroo + iny + lda (pTex),y + bvc e_20oroo e_28oroo: - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 28*BLIT_STRIDE + blitRoll,x ++ e_29roo: - bmi :+ - sta 29*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 30*BLIT_STRIDE + blitRoll,x - sta 31*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 29*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 30*BLIT_STRIDE + blitRoll,x + sta 31*BLIT_STRIDE + blitRoll,x ++ rts e_t28oroo: - iny - lda (pTex),y - bvc e_28oroo + iny + lda (pTex),y + bvc e_28oroo e_40oroo: - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ e_41roo: - bmi :+ - sta 41*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 42*BLIT_STRIDE + blitRoll,x - sta 43*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 41*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 42*BLIT_STRIDE + blitRoll,x + sta 43*BLIT_STRIDE + blitRoll,x ++ rts e_t40oroo: - iny - lda (pTex),y - bvc e_40oroo + iny + lda (pTex),y + bvc e_40oroo e_44toroo: - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_45roo + bmi + + sta 44*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_45roo e_44oroo: - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 44*BLIT_STRIDE + blitRoll,x ++ e_45roo: - bmi :+ - sta 45*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 46*BLIT_STRIDE + blitRoll,x - sta 47*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 45*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 46*BLIT_STRIDE + blitRoll,x + sta 47*BLIT_STRIDE + blitRoll,x ++ rts e_t44oroo: - iny - lda (pTex),y - bvc e_44oroo + iny + lda (pTex),y + bvc e_44oroo e_56oroo: - bmi :+ - sta 56*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 56*BLIT_STRIDE + blitRoll,x ++ e_57roo: - bmi :+ - sta 57*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 58*BLIT_STRIDE + blitRoll,x - sta 59*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 57*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 58*BLIT_STRIDE + blitRoll,x + sta 59*BLIT_STRIDE + blitRoll,x ++ rts e_t56oroo: - iny - lda (pTex),y - bvc e_56oroo + iny + lda (pTex),y + bvc e_56oroo e_72oroo: - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ e_73roo: - bmi :+ - sta 73*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 74*BLIT_STRIDE + blitRoll,x - sta 75*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 73*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 74*BLIT_STRIDE + blitRoll,x + sta 75*BLIT_STRIDE + blitRoll,x ++ rts e_t72oroo: - iny - lda (pTex),y - bvc e_72oroo + iny + lda (pTex),y + bvc e_72oroo e_76oroo: - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ e_77roo: - bmi :+ - sta 77*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 78*BLIT_STRIDE + blitRoll,x - sta 79*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 77*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 78*BLIT_STRIDE + blitRoll,x + sta 79*BLIT_STRIDE + blitRoll,x ++ rts e_t76oroo: - iny - lda (pTex),y - bvc e_76oroo + iny + lda (pTex),y + bvc e_76oroo e_88oroo: - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ e_89roo: - bmi :+ - sta 89*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 90*BLIT_STRIDE + blitRoll,x - sta 91*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 89*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 90*BLIT_STRIDE + blitRoll,x + sta 91*BLIT_STRIDE + blitRoll,x ++ rts e_t88oroo: - iny - lda (pTex),y - bvc e_88oroo + iny + lda (pTex),y + bvc e_88oroo e_92oroo: - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ e_93roo: - bmi :+ - sta 93*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 94*BLIT_STRIDE + blitRoll,x - sta 95*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 93*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 94*BLIT_STRIDE + blitRoll,x + sta 95*BLIT_STRIDE + blitRoll,x ++ rts e_t92oroo: - iny - lda (pTex),y - bvc e_92oroo + iny + lda (pTex),y + bvc e_92oroo e_96toroo: - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_97roo + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_97roo e_96oroo: - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ e_97roo: - bmi :+ - sta 97*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 98*BLIT_STRIDE + blitRoll,x - sta 99*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 97*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 98*BLIT_STRIDE + blitRoll,x + sta 99*BLIT_STRIDE + blitRoll,x ++ rts e_t96oroo: - iny - lda (pTex),y - bvc e_96oroo + iny + lda (pTex),y + bvc e_96oroo e_t64ooro: - iny - lda (pTex),y - bmi :+ - sta 64*BLIT_STRIDE + blitRoll,x -: bvc e_65oro + iny + lda (pTex),y + bmi + + sta 64*BLIT_STRIDE + blitRoll,x ++ bvc e_65oro e_64tooro: - bmi :+ - sta 64*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 64*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_65oro: - bmi :+ - sta 65*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 65*BLIT_STRIDE + blitRoll,x ++ e_66ro: - bmi :+ - sta 66*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 67*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 66*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 67*BLIT_STRIDE + blitRoll,x ++ rts e_t64rotoro: - iny - lda (pTex),y - bmi :+ - sta 64*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 65*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_66ro + iny + lda (pTex),y + bmi + + sta 64*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 65*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_66ro e_120otoo: - bmi :+ - sta 120*BLIT_STRIDE + blitRoll,x - sta 121*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 122*BLIT_STRIDE + blitRoll,x - sta 123*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 120*BLIT_STRIDE + blitRoll,x + sta 121*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 122*BLIT_STRIDE + blitRoll,x + sta 123*BLIT_STRIDE + blitRoll,x ++ rts e_r120otoo: - asl - bvc e_120otoo + asl + bvc e_120otoo e_124otoo: - bmi :+ - sta 124*BLIT_STRIDE + blitRoll,x - sta 125*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 126*BLIT_STRIDE + blitRoll,x - sta 127*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 124*BLIT_STRIDE + blitRoll,x + sta 125*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 126*BLIT_STRIDE + blitRoll,x + sta 127*BLIT_STRIDE + blitRoll,x ++ rts e_r124otoo: - asl - bvc e_124otoo + asl + bvc e_124otoo e_104tooo: - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_105oo + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_105oo e_104rooo: - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ asl e_105oo: - bmi :+ - sta 105*BLIT_STRIDE + blitRoll,x - sta 106*BLIT_STRIDE + blitRoll,x - sta 107*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 105*BLIT_STRIDE + blitRoll,x + sta 106*BLIT_STRIDE + blitRoll,x + sta 107*BLIT_STRIDE + blitRoll,x ++ rts e_116tooo: - bmi :+ - sta 116*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_117oo + bmi + + sta 116*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_117oo e_116rooo: - bmi :+ - sta 116*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 116*BLIT_STRIDE + blitRoll,x ++ asl e_117oo: - bmi :+ - sta 117*BLIT_STRIDE + blitRoll,x - sta 118*BLIT_STRIDE + blitRoll,x - sta 119*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 117*BLIT_STRIDE + blitRoll,x + sta 118*BLIT_STRIDE + blitRoll,x + sta 119*BLIT_STRIDE + blitRoll,x ++ rts e_28tooo: - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_29oo + bmi + + sta 28*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_29oo e_28rooo: - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 28*BLIT_STRIDE + blitRoll,x ++ asl e_29oo: - bmi :+ - sta 29*BLIT_STRIDE + blitRoll,x - sta 30*BLIT_STRIDE + blitRoll,x - sta 31*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 29*BLIT_STRIDE + blitRoll,x + sta 30*BLIT_STRIDE + blitRoll,x + sta 31*BLIT_STRIDE + blitRoll,x ++ rts e_36tooo: - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_37oo + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_37oo e_36rooo: - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ asl e_37oo: - bmi :+ - sta 37*BLIT_STRIDE + blitRoll,x - sta 38*BLIT_STRIDE + blitRoll,x - sta 39*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 37*BLIT_STRIDE + blitRoll,x + sta 38*BLIT_STRIDE + blitRoll,x + sta 39*BLIT_STRIDE + blitRoll,x ++ rts e_4tooo: - bmi :+ - sta 4*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_5oo + bmi + + sta 4*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_5oo e_4rooo: - bmi :+ - sta 4*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 4*BLIT_STRIDE + blitRoll,x ++ asl e_5oo: - bmi :+ - sta 5*BLIT_STRIDE + blitRoll,x - sta 6*BLIT_STRIDE + blitRoll,x - sta 7*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 5*BLIT_STRIDE + blitRoll,x + sta 6*BLIT_STRIDE + blitRoll,x + sta 7*BLIT_STRIDE + blitRoll,x ++ rts e_40tooo: - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_41oo + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_41oo e_40rooo: - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ asl e_41oo: - bmi :+ - sta 41*BLIT_STRIDE + blitRoll,x - sta 42*BLIT_STRIDE + blitRoll,x - sta 43*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 41*BLIT_STRIDE + blitRoll,x + sta 42*BLIT_STRIDE + blitRoll,x + sta 43*BLIT_STRIDE + blitRoll,x ++ rts e_44rooo: - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 44*BLIT_STRIDE + blitRoll,x ++ asl e_45oo: - bmi :+ - sta 45*BLIT_STRIDE + blitRoll,x - sta 46*BLIT_STRIDE + blitRoll,x - sta 47*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 45*BLIT_STRIDE + blitRoll,x + sta 46*BLIT_STRIDE + blitRoll,x + sta 47*BLIT_STRIDE + blitRoll,x ++ rts e_76tooo: - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_77oo + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_77oo e_76rooo: - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ asl e_77oo: - bmi :+ - sta 77*BLIT_STRIDE + blitRoll,x - sta 78*BLIT_STRIDE + blitRoll,x - sta 79*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 77*BLIT_STRIDE + blitRoll,x + sta 78*BLIT_STRIDE + blitRoll,x + sta 79*BLIT_STRIDE + blitRoll,x ++ rts e_8tooo: - bmi :+ - sta 8*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_9oo + bmi + + sta 8*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_9oo e_8rooo: - bmi :+ - sta 8*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 8*BLIT_STRIDE + blitRoll,x ++ asl e_9oo: - bmi :+ - sta 9*BLIT_STRIDE + blitRoll,x - sta 10*BLIT_STRIDE + blitRoll,x - sta 11*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 9*BLIT_STRIDE + blitRoll,x + sta 10*BLIT_STRIDE + blitRoll,x + sta 11*BLIT_STRIDE + blitRoll,x ++ rts e_80tooo: - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_81oo + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_81oo e_80rooo: - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ asl e_81oo: - bmi :+ - sta 81*BLIT_STRIDE + blitRoll,x - sta 82*BLIT_STRIDE + blitRoll,x - sta 83*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 81*BLIT_STRIDE + blitRoll,x + sta 82*BLIT_STRIDE + blitRoll,x + sta 83*BLIT_STRIDE + blitRoll,x ++ rts e_84tooo: - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_85oo + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_85oo e_84rooo: - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ asl e_85oo: - bmi :+ - sta 85*BLIT_STRIDE + blitRoll,x - sta 86*BLIT_STRIDE + blitRoll,x - sta 87*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 85*BLIT_STRIDE + blitRoll,x + sta 86*BLIT_STRIDE + blitRoll,x + sta 87*BLIT_STRIDE + blitRoll,x ++ rts e_96tooo: - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_97oo + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_97oo e_96rooo: - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ asl e_97oo: - bmi :+ - sta 97*BLIT_STRIDE + blitRoll,x - sta 98*BLIT_STRIDE + blitRoll,x - sta 99*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 97*BLIT_STRIDE + blitRoll,x + sta 98*BLIT_STRIDE + blitRoll,x + sta 99*BLIT_STRIDE + blitRoll,x ++ rts e_t0rooo: - iny - lda (pTex),y - bmi :+ - sta 0*BLIT_STRIDE + blitRoll,x -: asl + iny + lda (pTex),y + bmi + + sta 0*BLIT_STRIDE + blitRoll,x ++ asl e_1oo: - bmi :+ - sta 1*BLIT_STRIDE + blitRoll,x - sta 2*BLIT_STRIDE + blitRoll,x - sta 3*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 1*BLIT_STRIDE + blitRoll,x + sta 2*BLIT_STRIDE + blitRoll,x + sta 3*BLIT_STRIDE + blitRoll,x ++ rts e_tr0tooo: - iny - lda (pTex),y - asl - bmi :+ - sta 0*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_1oo + iny + lda (pTex),y + asl + bmi + + sta 0*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_1oo e_108oroo: - bmi :+ - sta 108*BLIT_STRIDE + blitRoll,x - sta 109*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 110*BLIT_STRIDE + blitRoll,x - sta 111*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 108*BLIT_STRIDE + blitRoll,x + sta 109*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 110*BLIT_STRIDE + blitRoll,x + sta 111*BLIT_STRIDE + blitRoll,x ++ rts e_t108oroo: - iny - lda (pTex),y - bvc e_108oroo + iny + lda (pTex),y + bvc e_108oroo e_116oroo: - bmi :+ - sta 116*BLIT_STRIDE + blitRoll,x - sta 117*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 118*BLIT_STRIDE + blitRoll,x - sta 119*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 116*BLIT_STRIDE + blitRoll,x + sta 117*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 118*BLIT_STRIDE + blitRoll,x + sta 119*BLIT_STRIDE + blitRoll,x ++ rts e_t116oroo: - iny - lda (pTex),y - bvc e_116oroo + iny + lda (pTex),y + bvc e_116oroo e_12oroo: - bmi :+ - sta 12*BLIT_STRIDE + blitRoll,x - sta 13*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 14*BLIT_STRIDE + blitRoll,x - sta 15*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 12*BLIT_STRIDE + blitRoll,x + sta 13*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 14*BLIT_STRIDE + blitRoll,x + sta 15*BLIT_STRIDE + blitRoll,x ++ rts e_t12oroo: - iny - lda (pTex),y - bvc e_12oroo + iny + lda (pTex),y + bvc e_12oroo e_120oroo: - bmi :+ - sta 120*BLIT_STRIDE + blitRoll,x - sta 121*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 122*BLIT_STRIDE + blitRoll,x - sta 123*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 120*BLIT_STRIDE + blitRoll,x + sta 121*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 122*BLIT_STRIDE + blitRoll,x + sta 123*BLIT_STRIDE + blitRoll,x ++ rts e_t120oroo: - iny - lda (pTex),y - bvc e_120oroo + iny + lda (pTex),y + bvc e_120oroo e_124oroo: - bmi :+ - sta 124*BLIT_STRIDE + blitRoll,x - sta 125*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 126*BLIT_STRIDE + blitRoll,x - sta 127*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 124*BLIT_STRIDE + blitRoll,x + sta 125*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 126*BLIT_STRIDE + blitRoll,x + sta 127*BLIT_STRIDE + blitRoll,x ++ rts e_t124oroo: - iny - lda (pTex),y - bvc e_124oroo + iny + lda (pTex),y + bvc e_124oroo e_4oroo: - bmi :+ - sta 4*BLIT_STRIDE + blitRoll,x - sta 5*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 6*BLIT_STRIDE + blitRoll,x - sta 7*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 4*BLIT_STRIDE + blitRoll,x + sta 5*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 6*BLIT_STRIDE + blitRoll,x + sta 7*BLIT_STRIDE + blitRoll,x ++ rts e_t4oroo: - iny - lda (pTex),y - bvc e_4oroo + iny + lda (pTex),y + bvc e_4oroo e_60oroo: - bmi :+ - sta 60*BLIT_STRIDE + blitRoll,x - sta 61*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 62*BLIT_STRIDE + blitRoll,x - sta 63*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 60*BLIT_STRIDE + blitRoll,x + sta 61*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 62*BLIT_STRIDE + blitRoll,x + sta 63*BLIT_STRIDE + blitRoll,x ++ rts e_t60oroo: - iny - lda (pTex),y - bvc e_60oroo + iny + lda (pTex),y + bvc e_60oroo e_8oroo: - bmi :+ - sta 8*BLIT_STRIDE + blitRoll,x - sta 9*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 10*BLIT_STRIDE + blitRoll,x - sta 11*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 8*BLIT_STRIDE + blitRoll,x + sta 9*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 10*BLIT_STRIDE + blitRoll,x + sta 11*BLIT_STRIDE + blitRoll,x ++ rts e_t8oroo: - iny - lda (pTex),y - bvc e_8oroo + iny + lda (pTex),y + bvc e_8oroo e_120rooto: - bmi :+ - sta 120*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 120*BLIT_STRIDE + blitRoll,x ++ asl e_121oto: - bmi :+ - sta 121*BLIT_STRIDE + blitRoll,x - sta 122*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 123*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 121*BLIT_STRIDE + blitRoll,x + sta 122*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 123*BLIT_STRIDE + blitRoll,x ++ rts e_r120ooto: - asl - bmi :+ - sta 120*BLIT_STRIDE + blitRoll,x -: bvc e_121oto + asl + bmi + + sta 120*BLIT_STRIDE + blitRoll,x ++ bvc e_121oto e_4rooto: - bmi :+ - sta 4*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 4*BLIT_STRIDE + blitRoll,x ++ asl e_5oto: - bmi :+ - sta 5*BLIT_STRIDE + blitRoll,x - sta 6*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 7*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 5*BLIT_STRIDE + blitRoll,x + sta 6*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 7*BLIT_STRIDE + blitRoll,x ++ rts e_r4ooto: - asl - bmi :+ - sta 4*BLIT_STRIDE + blitRoll,x -: bvc e_5oto + asl + bmi + + sta 4*BLIT_STRIDE + blitRoll,x ++ bvc e_5oto e_68otoo: - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 68*BLIT_STRIDE + blitRoll,x ++ e_69too: - bmi :+ - sta 69*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 70*BLIT_STRIDE + blitRoll,x - sta 71*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 69*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 70*BLIT_STRIDE + blitRoll,x + sta 71*BLIT_STRIDE + blitRoll,x ++ rts e_68rotoo: - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x -: asl - bvc e_69too + bmi + + sta 68*BLIT_STRIDE + blitRoll,x ++ asl + bvc e_69too e_t0rooto: - iny - lda (pTex),y - bmi :+ - sta 0*BLIT_STRIDE + blitRoll,x -: asl + iny + lda (pTex),y + bmi + + sta 0*BLIT_STRIDE + blitRoll,x ++ asl e_1oto: - bmi :+ - sta 1*BLIT_STRIDE + blitRoll,x - sta 2*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 3*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 1*BLIT_STRIDE + blitRoll,x + sta 2*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 3*BLIT_STRIDE + blitRoll,x ++ rts e_tr0ooto: - iny - lda (pTex),y - asl - bmi :+ - sta 0*BLIT_STRIDE + blitRoll,x -: bvc e_1oto + iny + lda (pTex),y + asl + bmi + + sta 0*BLIT_STRIDE + blitRoll,x ++ bvc e_1oto e_120ooro: - bmi :+ - sta 120*BLIT_STRIDE + blitRoll,x -: + bmi + + sta 120*BLIT_STRIDE + blitRoll,x ++ e_121oro: - bmi :+ - sta 121*BLIT_STRIDE + blitRoll,x - sta 122*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 123*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 121*BLIT_STRIDE + blitRoll,x + sta 122*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 123*BLIT_STRIDE + blitRoll,x ++ rts e_120tooro: - bmi :+ - sta 120*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_121oro + bmi + + sta 120*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_121oro e_124tooro: - bmi :+ - sta 124*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 124*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_125oro: - bmi :+ - sta 125*BLIT_STRIDE + blitRoll,x - sta 126*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 127*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 125*BLIT_STRIDE + blitRoll,x + sta 126*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 127*BLIT_STRIDE + blitRoll,x ++ rts e_r68toroo: - asl - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + asl + bmi + + sta 68*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_69roo: - bmi :+ - sta 69*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 70*BLIT_STRIDE + blitRoll,x - sta 71*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 69*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 70*BLIT_STRIDE + blitRoll,x + sta 71*BLIT_STRIDE + blitRoll,x ++ rts e_t68oroo: - iny - lda (pTex),y - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x -: bvc e_69roo + iny + lda (pTex),y + bmi + + sta 68*BLIT_STRIDE + blitRoll,x ++ bvc e_69roo e_t2o: - iny - lda (pTex),y - bmi :+ - sta 2*BLIT_STRIDE + blitRoll,x - sta 3*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 2*BLIT_STRIDE + blitRoll,x + sta 3*BLIT_STRIDE + blitRoll,x ++ rts e_tr0otoo: - iny - lda (pTex),y - asl - bmi :+ - sta 0*BLIT_STRIDE + blitRoll,x - sta 1*BLIT_STRIDE + blitRoll,x -: bvc e_t2o + iny + lda (pTex),y + asl + bmi + + sta 0*BLIT_STRIDE + blitRoll,x + sta 1*BLIT_STRIDE + blitRoll,x ++ bvc e_t2o e_100rooo: - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 100*BLIT_STRIDE + blitRoll,x ++ asl e_101oo: - bmi :+ - sta 101*BLIT_STRIDE + blitRoll,x - sta 102*BLIT_STRIDE + blitRoll,x - sta 103*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 101*BLIT_STRIDE + blitRoll,x + sta 102*BLIT_STRIDE + blitRoll,x + sta 103*BLIT_STRIDE + blitRoll,x ++ rts e_100tooo: - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_101oo + bmi + + sta 100*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_101oo e_112rooo: - bmi :+ - sta 112*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 112*BLIT_STRIDE + blitRoll,x ++ asl e_113oo: - bmi :+ - sta 113*BLIT_STRIDE + blitRoll,x - sta 114*BLIT_STRIDE + blitRoll,x - sta 115*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 113*BLIT_STRIDE + blitRoll,x + sta 114*BLIT_STRIDE + blitRoll,x + sta 115*BLIT_STRIDE + blitRoll,x ++ rts e_112tooo: - bmi :+ - sta 112*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_113oo + bmi + + sta 112*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_113oo e_120rooo: - bmi :+ - sta 120*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 120*BLIT_STRIDE + blitRoll,x ++ asl e_121oo: - bmi :+ - sta 121*BLIT_STRIDE + blitRoll,x - sta 122*BLIT_STRIDE + blitRoll,x - sta 123*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 121*BLIT_STRIDE + blitRoll,x + sta 122*BLIT_STRIDE + blitRoll,x + sta 123*BLIT_STRIDE + blitRoll,x ++ rts e_120tooo: - bmi :+ - sta 120*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_121oo + bmi + + sta 120*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_121oo e_16rooo: - bmi :+ - sta 16*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 16*BLIT_STRIDE + blitRoll,x ++ asl e_17oo: - bmi :+ - sta 17*BLIT_STRIDE + blitRoll,x - sta 18*BLIT_STRIDE + blitRoll,x - sta 19*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 17*BLIT_STRIDE + blitRoll,x + sta 18*BLIT_STRIDE + blitRoll,x + sta 19*BLIT_STRIDE + blitRoll,x ++ rts e_16tooo: - bmi :+ - sta 16*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_17oo + bmi + + sta 16*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_17oo e_20rooo: - bmi :+ - sta 20*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 20*BLIT_STRIDE + blitRoll,x ++ asl e_21oo: - bmi :+ - sta 21*BLIT_STRIDE + blitRoll,x - sta 22*BLIT_STRIDE + blitRoll,x - sta 23*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 21*BLIT_STRIDE + blitRoll,x + sta 22*BLIT_STRIDE + blitRoll,x + sta 23*BLIT_STRIDE + blitRoll,x ++ rts e_20tooo: - bmi :+ - sta 20*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_21oo + bmi + + sta 20*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_21oo e_24rooo: - bmi :+ - sta 24*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 24*BLIT_STRIDE + blitRoll,x ++ asl e_25oo: - bmi :+ - sta 25*BLIT_STRIDE + blitRoll,x - sta 26*BLIT_STRIDE + blitRoll,x - sta 27*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 25*BLIT_STRIDE + blitRoll,x + sta 26*BLIT_STRIDE + blitRoll,x + sta 27*BLIT_STRIDE + blitRoll,x ++ rts e_24tooo: - bmi :+ - sta 24*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_25oo + bmi + + sta 24*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_25oo e_32rooo: - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 32*BLIT_STRIDE + blitRoll,x ++ asl e_33oo: - bmi :+ - sta 33*BLIT_STRIDE + blitRoll,x - sta 34*BLIT_STRIDE + blitRoll,x - sta 35*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 33*BLIT_STRIDE + blitRoll,x + sta 34*BLIT_STRIDE + blitRoll,x + sta 35*BLIT_STRIDE + blitRoll,x ++ rts e_32tooo: - bmi :+ - sta 32*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_33oo + bmi + + sta 32*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_33oo e_48rooo: - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ asl e_49oo: - bmi :+ - sta 49*BLIT_STRIDE + blitRoll,x - sta 50*BLIT_STRIDE + blitRoll,x - sta 51*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 49*BLIT_STRIDE + blitRoll,x + sta 50*BLIT_STRIDE + blitRoll,x + sta 51*BLIT_STRIDE + blitRoll,x ++ rts e_48tooo: - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_49oo + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_49oo e_52rooo: - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ asl e_53oo: - bmi :+ - sta 53*BLIT_STRIDE + blitRoll,x - sta 54*BLIT_STRIDE + blitRoll,x - sta 55*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 53*BLIT_STRIDE + blitRoll,x + sta 54*BLIT_STRIDE + blitRoll,x + sta 55*BLIT_STRIDE + blitRoll,x ++ rts e_52tooo: - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_53oo + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_53oo e_56rooo: - bmi :+ - sta 56*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 56*BLIT_STRIDE + blitRoll,x ++ asl e_57oo: - bmi :+ - sta 57*BLIT_STRIDE + blitRoll,x - sta 58*BLIT_STRIDE + blitRoll,x - sta 59*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 57*BLIT_STRIDE + blitRoll,x + sta 58*BLIT_STRIDE + blitRoll,x + sta 59*BLIT_STRIDE + blitRoll,x ++ rts e_56tooo: - bmi :+ - sta 56*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_57oo + bmi + + sta 56*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_57oo e_64tooo: - bmi :+ - sta 64*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 64*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_65oo: - bmi :+ - sta 65*BLIT_STRIDE + blitRoll,x - sta 66*BLIT_STRIDE + blitRoll,x - sta 67*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 65*BLIT_STRIDE + blitRoll,x + sta 66*BLIT_STRIDE + blitRoll,x + sta 67*BLIT_STRIDE + blitRoll,x ++ rts e_t64ooo: - iny - lda (pTex),y - bmi :+ - sta 64*BLIT_STRIDE + blitRoll,x -: bvc e_65oo + iny + lda (pTex),y + bmi + + sta 64*BLIT_STRIDE + blitRoll,x ++ bvc e_65oo e_68tooo: - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y + bmi + + sta 68*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y e_69oo: - bmi :+ - sta 69*BLIT_STRIDE + blitRoll,x - sta 70*BLIT_STRIDE + blitRoll,x - sta 71*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 69*BLIT_STRIDE + blitRoll,x + sta 70*BLIT_STRIDE + blitRoll,x + sta 71*BLIT_STRIDE + blitRoll,x ++ rts e_r68ooo: - asl - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x -: bvc e_69oo + asl + bmi + + sta 68*BLIT_STRIDE + blitRoll,x ++ bvc e_69oo e_72rooo: - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ asl e_73oo: - bmi :+ - sta 73*BLIT_STRIDE + blitRoll,x - sta 74*BLIT_STRIDE + blitRoll,x - sta 75*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 73*BLIT_STRIDE + blitRoll,x + sta 74*BLIT_STRIDE + blitRoll,x + sta 75*BLIT_STRIDE + blitRoll,x ++ rts e_t72ooo: - iny - lda (pTex),y - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: bvc e_73oo + iny + lda (pTex),y + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ bvc e_73oo e_92rooo: - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: asl + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ asl e_93oo: - bmi :+ - sta 93*BLIT_STRIDE + blitRoll,x - sta 94*BLIT_STRIDE + blitRoll,x - sta 95*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 93*BLIT_STRIDE + blitRoll,x + sta 94*BLIT_STRIDE + blitRoll,x + sta 95*BLIT_STRIDE + blitRoll,x ++ rts e_92tooo: - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bvc e_93oo + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bvc e_93oo ; Produce 2 rows from 2 rows expand_2: - jsr selectMip5 - iny - lda (pTex),y - bmi :+ - sta 63*BLIT_STRIDE + blitRoll,x -: - asl - bmi :+ - sta 64*BLIT_STRIDE + blitRoll,x -: + jsr selectMip5 + iny + lda (pTex),y + bmi + + sta 63*BLIT_STRIDE + blitRoll,x ++ + asl + bmi + + sta 64*BLIT_STRIDE + blitRoll,x ++ expand_0: - rts + rts ; Produce 4 rows from 4 rows expand_4: - jsr selectMip4 - jsr e_t62ro - iny - lda (pTex),y - bmi :+ - sta 64*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 65*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip4 + jsr e_t62ro + iny + lda (pTex),y + bmi + + sta 64*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 65*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 6 rows from 4 rows expand_6: - jsr selectMip4 - iny - lda (pTex),y - bmi :+ - sta 61*BLIT_STRIDE + blitRoll,x -: jsr e_62ro - iny - lda (pTex),y - bmi :+ - sta 64*BLIT_STRIDE + blitRoll,x - sta 65*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 66*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip4 + iny + lda (pTex),y + bmi + + sta 61*BLIT_STRIDE + blitRoll,x ++ jsr e_62ro + iny + lda (pTex),y + bmi + + sta 64*BLIT_STRIDE + blitRoll,x + sta 65*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 66*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 8 rows from 8 rows expand_8: - jsr selectMip3 - jsr e_t60rotoro - jmp e_t64rotoro + jsr selectMip3 + jsr e_t60rotoro + jmp e_t64rotoro ; Produce 10 rows from 8 rows expand_10: - jsr selectMip3 - iny - lda (pTex),y - bmi :+ - sta 59*BLIT_STRIDE + blitRoll,x -: - jsr e_60rotoro - jsr e_t64oroto - asl - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip3 + iny + lda (pTex),y + bmi + + sta 59*BLIT_STRIDE + blitRoll,x ++ + jsr e_60rotoro + jsr e_t64oroto + asl + bmi + + sta 68*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 12 rows from 8 rows expand_12: - jsr selectMip3 - jsr e_t58o - jsr e_r60tooro - jsr e_t64oroto - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 69*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip3 + jsr e_t58o + jsr e_r60tooro + jsr e_t64oroto + bmi + + sta 68*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 69*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 14 rows from 8 rows expand_14: - jsr selectMip3 - iny - lda (pTex),y - bmi :+ - sta 57*BLIT_STRIDE + blitRoll,x -: jsr e_58ro - jsr e_60tooro - jsr e_t64oroo - iny - lda (pTex),y - bmi :+ - sta 68*BLIT_STRIDE + blitRoll,x - sta 69*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 70*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip3 + iny + lda (pTex),y + bmi + + sta 57*BLIT_STRIDE + blitRoll,x ++ jsr e_58ro + jsr e_60tooro + jsr e_t64oroo + iny + lda (pTex),y + bmi + + sta 68*BLIT_STRIDE + blitRoll,x + sta 69*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 70*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 16 rows from 16 rows expand_16: - jsr selectMip2 - jsr e_t56rotoro - jsr e_t60rotoro - jsr e_t64rotoro - jmp e_t68rotoro + jsr selectMip2 + jsr e_t56rotoro + jsr e_t60rotoro + jsr e_t64rotoro + jmp e_t68rotoro ; Produce 18 rows from 16 rows expand_18: - jsr selectMip2 - iny - lda (pTex),y - bmi :+ - sta 55*BLIT_STRIDE + blitRoll,x -: - jsr e_56rotoro - jsr e_t60rotoro - jsr e_t64oroto - jsr e_r68toroto - asl - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip2 + iny + lda (pTex),y + bmi + + sta 55*BLIT_STRIDE + blitRoll,x ++ + jsr e_56rotoro + jsr e_t60rotoro + jsr e_t64oroto + jsr e_r68toroto + asl + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 20 rows from 16 rows expand_20: - jsr selectMip2 - jsr e_t54o - jsr e_r56toroto - jsr e_60rotoro - jsr e_t64oroto - jsr e_r68tooro - iny - lda (pTex),y - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 73*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip2 + jsr e_t54o + jsr e_r56toroto + jsr e_60rotoro + jsr e_t64oroto + jsr e_r68tooro + iny + lda (pTex),y + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 73*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 22 rows from 16 rows expand_22: - jsr selectMip2 - jsr e_t53oro - jsr e_t56oroto - jsr e_r60otoro - jsr e_t64oroto - jsr e_68rotoro - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 73*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 74*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip2 + jsr e_t53oro + jsr e_t56oroto + jsr e_r60otoro + jsr e_t64oroto + jsr e_68rotoro + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 73*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 74*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 24 rows from 16 rows expand_24: - jsr selectMip2 - jsr e_t52oroto - jsr e_56rotoo - jsr e_r60tooro - jsr e_t64oroto - jsr e_68rotoo - jmp e_r72tooro + jsr selectMip2 + jsr e_t52oroto + jsr e_56rotoo + jsr e_r60tooro + jsr e_t64oroto + jsr e_68rotoo + jmp e_r72tooro ; Produce 26 rows from 16 rows expand_26: - jsr selectMip2 - iny - lda (pTex),y - bmi :+ - sta 51*BLIT_STRIDE + blitRoll,x -: - jsr e_52rooto - jsr e_r56otoo - jsr e_r60tooro - jsr e_t64oroo - jsr e_t68rooto - jsr e_72rotoo - asl - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip2 + iny + lda (pTex),y + bmi + + sta 51*BLIT_STRIDE + blitRoll,x ++ + jsr e_52rooto + jsr e_r56otoo + jsr e_r60tooro + jsr e_t64oroo + jsr e_t68rooto + jsr e_72rotoo + asl + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 28 rows from 16 rows expand_28: - jsr selectMip2 - jsr e_t50o - jsr e_r52otoo - jsr e_r56tooro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroto - jsr e_72rooto - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 77*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip2 + jsr e_t50o + jsr e_r52otoo + jsr e_r56tooro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroto + jsr e_72rooto + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 77*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 30 rows from 16 rows expand_30: - jsr selectMip2 - iny - lda (pTex),y - bmi :+ - sta 49*BLIT_STRIDE + blitRoll,x -: jsr e_50ro - jsr e_52tooro - jsr e_56tooro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroo - jsr e_t72oroo - iny - lda (pTex),y - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x - sta 77*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 78*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip2 + iny + lda (pTex),y + bmi + + sta 49*BLIT_STRIDE + blitRoll,x ++ jsr e_50ro + jsr e_52tooro + jsr e_56tooro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroo + jsr e_t72oroo + iny + lda (pTex),y + bmi + + sta 76*BLIT_STRIDE + blitRoll,x + sta 77*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 78*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 32 rows from 32 rows expand_32: - jsr selectMip1 - jsr e_t48rotoro - jsr e_t52rotoro - jsr e_t56rotoro - jsr e_t60rotoro - jsr e_t64rotoro - jsr e_t68rotoro - jsr e_t72rotoro - jmp e_t76rotoro + jsr selectMip1 + jsr e_t48rotoro + jsr e_t52rotoro + jsr e_t56rotoro + jsr e_t60rotoro + jsr e_t64rotoro + jsr e_t68rotoro + jsr e_t72rotoro + jmp e_t76rotoro ; Produce 34 rows from 32 rows expand_34: - jsr selectMip1 - iny - lda (pTex),y - bmi :+ - sta 47*BLIT_STRIDE + blitRoll,x -: - jsr e_48rotoro - jsr e_t52rotoro - jsr e_t56rotoro - jsr e_t60rotoro - jsr e_t64oroto - jsr e_r68toroto - jsr e_r72toroto - jsr e_r76toroto - asl - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip1 + iny + lda (pTex),y + bmi + + sta 47*BLIT_STRIDE + blitRoll,x ++ + jsr e_48rotoro + jsr e_t52rotoro + jsr e_t56rotoro + jsr e_t60rotoro + jsr e_t64oroto + jsr e_r68toroto + jsr e_r72toroto + jsr e_r76toroto + asl + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 36 rows from 32 rows expand_36: - jsr selectMip1 - jsr e_t46o - jsr e_r48toroto - jsr e_r52toroto - jsr e_56rotoro - jsr e_t60rotoro - jsr e_t64oroto - jsr e_r68toroto - jsr e_r72tooro - jsr e_t76rotoro - iny - lda (pTex),y - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 81*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip1 + jsr e_t46o + jsr e_r48toroto + jsr e_r52toroto + jsr e_56rotoro + jsr e_t60rotoro + jsr e_t64oroto + jsr e_r68toroto + jsr e_r72tooro + jsr e_t76rotoro + iny + lda (pTex),y + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 81*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 38 rows from 32 rows expand_38: - jsr selectMip1 - iny - lda (pTex),y - bmi :+ - sta 45*BLIT_STRIDE + blitRoll,x -: jsr e_46ro - jsr e_t48rotoro - jsr e_52toroto - jsr e_r56tooro - jsr e_t60rotoro - jsr e_t64oroto - jsr e_r68toroo - jsr e_t72rotoro - jsr e_t76oroto - asl - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 81*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 82*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip1 + iny + lda (pTex),y + bmi + + sta 45*BLIT_STRIDE + blitRoll,x ++ jsr e_46ro + jsr e_t48rotoro + jsr e_52toroto + jsr e_r56tooro + jsr e_t60rotoro + jsr e_t64oroto + jsr e_r68toroo + jsr e_t72rotoro + jsr e_t76oroto + asl + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 81*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 82*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 40 rows from 32 rows expand_40: - jsr selectMip1 - jsr e_t44oroto - jsr e_r48tooro - jsr e_t52rotoo - jsr e_r56toroto - jsr e_60rotoro - jsr e_t64oroto - jsr e_r68tooro - jsr e_t72rotoo - jsr e_r76toroto - jmp e_80rotoro + jsr selectMip1 + jsr e_t44oroto + jsr e_r48tooro + jsr e_t52rotoo + jsr e_r56toroto + jsr e_60rotoro + jsr e_t64oroto + jsr e_r68tooro + jsr e_t72rotoo + jsr e_r76toroto + jmp e_80rotoro ; Produce 42 rows from 32 rows expand_42: - jsr selectMip1 - iny - lda (pTex),y - bmi :+ - sta 43*BLIT_STRIDE + blitRoll,x -: - jsr e_44rotoro - jsr e_48toroto - jsr e_52rotoro - jsr e_56toroto - jsr e_60rotoro - jsr e_t64oroto - jsr e_r68otoro - jsr e_t72oroto - jsr e_r76otoro - jsr e_t80oroto - asl - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip1 + iny + lda (pTex),y + bmi + + sta 43*BLIT_STRIDE + blitRoll,x ++ + jsr e_44rotoro + jsr e_48toroto + jsr e_52rotoro + jsr e_56toroto + jsr e_60rotoro + jsr e_t64oroto + jsr e_r68otoro + jsr e_t72oroto + jsr e_r76otoro + jsr e_t80oroto + asl + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 44 rows from 32 rows expand_44: - jsr selectMip1 - jsr e_t42o - jsr e_r44tooro - jsr e_t48rooto - jsr e_r52tooro - jsr e_t56oroto - jsr e_r60otoro - jsr e_t64oroto - jsr e_68rotoro - jsr e_72toroto - jsr e_76rotoo - jsr e_r80toroo - iny - lda (pTex),y - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 85*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip1 + jsr e_t42o + jsr e_r44tooro + jsr e_t48rooto + jsr e_r52tooro + jsr e_t56oroto + jsr e_r60otoro + jsr e_t64oroto + jsr e_68rotoro + jsr e_72toroto + jsr e_76rotoo + jsr e_r80toroo + iny + lda (pTex),y + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 85*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 46 rows from 32 rows expand_46: - jsr selectMip1 - iny - lda (pTex),y - bmi :+ - sta 41*BLIT_STRIDE + blitRoll,x -: jsr e_42ro - jsr e_t44oroto - jsr e_48rotoo - jsr e_r52toroo - jsr e_t56rooto - jsr e_r60otoro - jsr e_t64oroto - jsr e_68rotoo - jsr e_r72tooro - jsr e_t76rooto - jsr e_r80otoro - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 85*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 86*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip1 + iny + lda (pTex),y + bmi + + sta 41*BLIT_STRIDE + blitRoll,x ++ jsr e_42ro + jsr e_t44oroto + jsr e_48rotoo + jsr e_r52toroo + jsr e_t56rooto + jsr e_r60otoro + jsr e_t64oroto + jsr e_68rotoo + jsr e_r72tooro + jsr e_t76rooto + jsr e_r80otoro + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 85*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 86*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 48 rows from 32 rows expand_48: - jsr selectMip1 - jsr e_t40oroto - jsr e_44rotoo - jsr e_r48tooro - jsr e_t52oroto - jsr e_56rotoo - jsr e_r60tooro - jsr e_t64oroto - jsr e_68rotoo - jsr e_r72tooro - jsr e_t76oroto - jsr e_80rotoo - jmp e_r84tooro + jsr selectMip1 + jsr e_t40oroto + jsr e_44rotoo + jsr e_r48tooro + jsr e_t52oroto + jsr e_56rotoo + jsr e_r60tooro + jsr e_t64oroto + jsr e_68rotoo + jsr e_r72tooro + jsr e_t76oroto + jsr e_80rotoo + jmp e_r84tooro ; Produce 50 rows from 32 rows expand_50: - jsr selectMip1 - iny - lda (pTex),y - bmi :+ - sta 39*BLIT_STRIDE + blitRoll,x -: - jsr e_40rooto - jsr e_r44otoro - jsr e_48toroo - jsr e_t52oroto - jsr e_56rotoo - jsr e_r60tooro - jsr e_t64oroo - jsr e_t68rooto - jsr e_r72otoro - jsr e_76tooro - jsr e_t80oroto - jsr e_84rotoo - asl - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip1 + iny + lda (pTex),y + bmi + + sta 39*BLIT_STRIDE + blitRoll,x ++ + jsr e_40rooto + jsr e_r44otoro + jsr e_48toroo + jsr e_t52oroto + jsr e_56rotoo + jsr e_r60tooro + jsr e_t64oroo + jsr e_t68rooto + jsr e_r72otoro + jsr e_76tooro + jsr e_t80oroto + jsr e_84rotoo + asl + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 52 rows from 32 rows expand_52: - jsr selectMip1 - jsr e_t38o - jsr e_r40otoro - jsr e_44tooro - jsr e_t48oroto - jsr e_52rooto - jsr e_r56otoo - jsr e_r60tooro - jsr e_t64oroo - jsr e_t68rooto - jsr e_72rotoo - jsr e_r76tooro - jsr e_80toroo - jsr e_t84oroto - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 89*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip1 + jsr e_t38o + jsr e_r40otoro + jsr e_44tooro + jsr e_t48oroto + jsr e_52rooto + jsr e_r56otoo + jsr e_r60tooro + jsr e_t64oroo + jsr e_t68rooto + jsr e_72rotoo + jsr e_r76tooro + jsr e_80toroo + jsr e_t84oroto + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 89*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 54 rows from 32 rows expand_54: - jsr selectMip1 - jsr e_t37oro - jsr e_40tooro - jsr e_t44oroo - jsr e_t48rooto - jsr e_52rotoo - jsr e_r56otoro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroto - jsr e_72rooto - jsr e_r76otoo - jsr e_r80tooro - jsr e_84toroo - iny - lda (pTex),y - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x - sta 89*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 90*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip1 + jsr e_t37oro + jsr e_40tooro + jsr e_t44oroo + jsr e_t48rooto + jsr e_52rotoo + jsr e_r56otoro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroto + jsr e_72rooto + jsr e_r76otoo + jsr e_r80tooro + jsr e_84toroo + iny + lda (pTex),y + bmi + + sta 88*BLIT_STRIDE + blitRoll,x + sta 89*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 90*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 56 rows from 32 rows expand_56: - jsr selectMip1 - jsr e_t36oroo - jsr e_t40oroto - jsr e_44rooto - jsr e_48rotoo - jsr e_r52otoo - jsr e_r56tooro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroto - jsr e_72rooto - jsr e_76rotoo - jsr e_r80otoo - jsr e_r84tooro - jmp e_88tooro + jsr selectMip1 + jsr e_t36oroo + jsr e_t40oroto + jsr e_44rooto + jsr e_48rotoo + jsr e_r52otoo + jsr e_r56tooro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroto + jsr e_72rooto + jsr e_76rotoo + jsr e_r80otoo + jsr e_r84tooro + jmp e_88tooro ; Produce 58 rows from 32 rows expand_58: - jsr selectMip1 - iny - lda (pTex),y - bmi :+ - sta 35*BLIT_STRIDE + blitRoll,x -: - jsr e_36rooto - jsr e_40rooto - jsr e_44rotoo - jsr e_r48otoo - jsr e_r52otoro - jsr e_56tooro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroo - jsr e_t72oroto - jsr e_76rooto - jsr e_80rooto - jsr e_r84otoo - jsr e_r88otoo - asl - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip1 + iny + lda (pTex),y + bmi + + sta 35*BLIT_STRIDE + blitRoll,x ++ + jsr e_36rooto + jsr e_40rooto + jsr e_44rotoo + jsr e_r48otoo + jsr e_r52otoro + jsr e_56tooro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroo + jsr e_t72oroto + jsr e_76rooto + jsr e_80rooto + jsr e_r84otoo + jsr e_r88otoo + asl + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 60 rows from 32 rows expand_60: - jsr selectMip1 - jsr e_t34o - jsr e_r36otoo - jsr e_r40otoo - jsr e_r44otoo - jsr e_r48tooro - jsr e_52tooro - jsr e_56tooro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroo - jsr e_t72oroo - jsr e_t76oroto - jsr e_80rooto - jsr e_84rooto - jsr e_88rooto - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 93*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip1 + jsr e_t34o + jsr e_r36otoo + jsr e_r40otoo + jsr e_r44otoo + jsr e_r48tooro + jsr e_52tooro + jsr e_56tooro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroo + jsr e_t72oroo + jsr e_t76oroto + jsr e_80rooto + jsr e_84rooto + jsr e_88rooto + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 93*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 62 rows from 32 rows expand_62: - jsr selectMip1 - iny - lda (pTex),y - bmi :+ - sta 33*BLIT_STRIDE + blitRoll,x -: jsr e_34ro - jsr e_36tooro - jsr e_40tooro - jsr e_44tooro - jsr e_48tooro - jsr e_52tooro - jsr e_56tooro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroo - jsr e_t72oroo - jsr e_t76oroo - jsr e_t80oroo - jsr e_t84oroo - jsr e_t88oroo - iny - lda (pTex),y - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x - sta 93*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 94*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip1 + iny + lda (pTex),y + bmi + + sta 33*BLIT_STRIDE + blitRoll,x ++ jsr e_34ro + jsr e_36tooro + jsr e_40tooro + jsr e_44tooro + jsr e_48tooro + jsr e_52tooro + jsr e_56tooro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroo + jsr e_t72oroo + jsr e_t76oroo + jsr e_t80oroo + jsr e_t84oroo + jsr e_t88oroo + iny + lda (pTex),y + bmi + + sta 92*BLIT_STRIDE + blitRoll,x + sta 93*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 94*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 64 rows from 64 rows expand_64: - jsr selectMip0 - jsr e_t32rotoro - jsr e_t36rotoro - jsr e_t40rotoro - jsr e_t44rotoro - jsr e_t48rotoro - jsr e_t52rotoro - jsr e_t56rotoro - jsr e_t60rotoro - jsr e_t64rotoro - jsr e_t68rotoro - jsr e_t72rotoro - jsr e_t76rotoro - jsr e_t80rotoro - jsr e_t84rotoro - jsr e_t88rotoro - jmp e_t92rotoro + jsr selectMip0 + jsr e_t32rotoro + jsr e_t36rotoro + jsr e_t40rotoro + jsr e_t44rotoro + jsr e_t48rotoro + jsr e_t52rotoro + jsr e_t56rotoro + jsr e_t60rotoro + jsr e_t64rotoro + jsr e_t68rotoro + jsr e_t72rotoro + jsr e_t76rotoro + jsr e_t80rotoro + jsr e_t84rotoro + jsr e_t88rotoro + jmp e_t92rotoro ; Produce 66 rows from 64 rows expand_66: - jsr selectMip0 - iny - lda (pTex),y - bmi :+ - sta 31*BLIT_STRIDE + blitRoll,x -: - jsr e_32rotoro - jsr e_t36rotoro - jsr e_t40rotoro - jsr e_t44rotoro - jsr e_t48rotoro - jsr e_t52rotoro - jsr e_t56rotoro - jsr e_t60rotoro - jsr e_t64oroto - jsr e_r68toroto - jsr e_r72toroto - jsr e_r76toroto - jsr e_r80toroto - jsr e_r84toroto - jsr e_r88toroto - jsr e_r92toroto - asl - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + iny + lda (pTex),y + bmi + + sta 31*BLIT_STRIDE + blitRoll,x ++ + jsr e_32rotoro + jsr e_t36rotoro + jsr e_t40rotoro + jsr e_t44rotoro + jsr e_t48rotoro + jsr e_t52rotoro + jsr e_t56rotoro + jsr e_t60rotoro + jsr e_t64oroto + jsr e_r68toroto + jsr e_r72toroto + jsr e_r76toroto + jsr e_r80toroto + jsr e_r84toroto + jsr e_r88toroto + jsr e_r92toroto + asl + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 68 rows from 64 rows expand_68: - jsr selectMip0 - jsr e_t30o - jsr e_r32toroto - jsr e_r36toroto - jsr e_r40toroto - jsr e_r44toroto - jsr e_48rotoro - jsr e_t52rotoro - jsr e_t56rotoro - jsr e_t60rotoro - jsr e_t64oroto - jsr e_r68toroto - jsr e_r72toroto - jsr e_r76toroto - jsr e_r80tooro - jsr e_t84rotoro - jsr e_t88rotoro - jsr e_t92rotoro - iny - lda (pTex),y - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 97*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t30o + jsr e_r32toroto + jsr e_r36toroto + jsr e_r40toroto + jsr e_r44toroto + jsr e_48rotoro + jsr e_t52rotoro + jsr e_t56rotoro + jsr e_t60rotoro + jsr e_t64oroto + jsr e_r68toroto + jsr e_r72toroto + jsr e_r76toroto + jsr e_r80tooro + jsr e_t84rotoro + jsr e_t88rotoro + jsr e_t92rotoro + iny + lda (pTex),y + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 97*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 70 rows from 64 rows expand_70: - jsr selectMip0 - jsr e_t29oro - jsr e_t32rotoro - jsr e_t36rotoro - jsr e_t40oroto - jsr e_r44toroto - jsr e_r48toroto - jsr e_r52otoro - jsr e_t56rotoro - jsr e_t60rotoro - jsr e_t64oroto - jsr e_r68toroto - jsr e_r72toroto - jsr e_76rotoro - jsr e_t80rotoro - jsr e_t84rotoro - jsr e_88toroto - jsr e_r92toroto - asl - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 97*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 98*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t29oro + jsr e_t32rotoro + jsr e_t36rotoro + jsr e_t40oroto + jsr e_r44toroto + jsr e_r48toroto + jsr e_r52otoro + jsr e_t56rotoro + jsr e_t60rotoro + jsr e_t64oroto + jsr e_r68toroto + jsr e_r72toroto + jsr e_76rotoro + jsr e_t80rotoro + jsr e_t84rotoro + jsr e_88toroto + jsr e_r92toroto + asl + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 97*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 98*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 72 rows from 64 rows expand_72: - jsr selectMip0 - jsr e_t28oroto - jsr e_r32toroto - jsr e_r36tooro - jsr e_t40rotoro - iny - lda (pTex),y - jsr e_44rotoo - jsr e_r48toroto - jsr e_r52toroto - jsr e_56rotoro - jsr e_t60rotoro - jsr e_t64oroto - jsr e_r68toroto - jsr e_r72tooro - jsr e_t76rotoro - jsr e_t80rotoo - jsr e_r84toroto - jsr e_r88toroto - jsr e_92rotoro - iny - lda (pTex),y - jsr e_96rotoro - rts + jsr selectMip0 + jsr e_t28oroto + jsr e_r32toroto + jsr e_r36tooro + jsr e_t40rotoro + iny + lda (pTex),y + jsr e_44rotoo + jsr e_r48toroto + jsr e_r52toroto + jsr e_56rotoro + jsr e_t60rotoro + jsr e_t64oroto + jsr e_r68toroto + jsr e_r72tooro + jsr e_t76rotoro + jsr e_t80rotoo + jsr e_r84toroto + jsr e_r88toroto + jsr e_92rotoro + iny + lda (pTex),y + jsr e_96rotoro + rts ; Produce 74 rows from 64 rows expand_74: - jsr selectMip0 - iny - lda (pTex),y - bmi :+ - sta 27*BLIT_STRIDE + blitRoll,x -: - jsr e_28rotoro - jsr e_t32rotoo - jsr e_r36toroto - jsr e_r40tooro - jsr e_t44rotoro - jsr e_t48rooto - jsr e_r52toroto - jsr e_r56otoro - jsr e_t60rotoro - jsr e_t64oroto - jsr e_r68toroto - jsr e_72rotoro - iny - lda (pTex),y - jsr e_76rotoo - jsr e_r80toroto - jsr e_r84toroo - jsr e_t88rotoro - jsr e_t92rooto - jsr e_r96toroto - asl - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + iny + lda (pTex),y + bmi + + sta 27*BLIT_STRIDE + blitRoll,x ++ + jsr e_28rotoro + jsr e_t32rotoo + jsr e_r36toroto + jsr e_r40tooro + jsr e_t44rotoro + jsr e_t48rooto + jsr e_r52toroto + jsr e_r56otoro + jsr e_t60rotoro + jsr e_t64oroto + jsr e_r68toroto + jsr e_72rotoro + iny + lda (pTex),y + jsr e_76rotoo + jsr e_r80toroto + jsr e_r84toroo + jsr e_t88rotoro + jsr e_t92rooto + jsr e_r96toroto + asl + bmi + + sta 100*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 76 rows from 64 rows expand_76: - jsr selectMip0 - jsr e_t26o - asl - jsr e_28toroto - jsr e_r32otoro - jsr e_t36rotoo - jsr e_r40toroto - jsr e_r44tooro - jsr e_t48rotoro - jsr e_52toroto - jsr e_r56tooro - jsr e_t60rotoro - jsr e_t64oroto - jsr e_r68toroo - jsr e_t72rotoro - jsr e_t76oroto - jsr e_r80toroto - jsr e_84rotoro - jsr e_t88rooto - jsr e_r92toroto - jsr e_96rotoro - iny - lda (pTex),y - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 101*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t26o + asl + jsr e_28toroto + jsr e_r32otoro + jsr e_t36rotoo + jsr e_r40toroto + jsr e_r44tooro + jsr e_t48rotoro + jsr e_52toroto + jsr e_r56tooro + jsr e_t60rotoro + jsr e_t64oroto + jsr e_r68toroo + jsr e_t72rotoro + jsr e_t76oroto + jsr e_r80toroto + jsr e_84rotoro + jsr e_t88rooto + jsr e_r92toroto + jsr e_96rotoro + iny + lda (pTex),y + bmi + + sta 100*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 101*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 78 rows from 64 rows expand_78: - jsr selectMip0 - jsr e_t25oro - jsr e_t28rotoo - jsr e_r32toroto - jsr e_r36otoro - jsr e_t40rooto - jsr e_r44toroto - jsr e_48rotoro - jsr e_t52oroto - asl - bmi :+ - sta 56*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - jsr e_57roo - jsr e_t60rotoro - jsr e_t64oroto - jsr e_r68tooro - jsr e_t72rotoro - jsr e_76toroto - jsr e_r80otoro - jsr e_t84rotoo - jsr e_r88toroto - jsr e_92rotoro - jsr e_t96rooto - asl - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 101*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 102*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t25oro + jsr e_t28rotoo + jsr e_r32toroto + jsr e_r36otoro + jsr e_t40rooto + jsr e_r44toroto + jsr e_48rotoro + jsr e_t52oroto + asl + bmi + + sta 56*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + jsr e_57roo + jsr e_t60rotoro + jsr e_t64oroto + jsr e_r68tooro + jsr e_t72rotoro + jsr e_76toroto + jsr e_r80otoro + jsr e_t84rotoo + jsr e_r88toroto + jsr e_92rotoro + jsr e_t96rooto + asl + bmi + + sta 100*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 101*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 102*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 80 rows from 64 rows expand_80: - jsr selectMip0 - jsr e_t24oroto - jsr e_r28tooro - jsr e_t32rotoo - jsr e_r36toroto - jsr e_40rotoro - jsr e_t44oroto - jsr e_r48tooro - jsr e_t52rotoo - jsr e_r56toroto - jsr e_60rotoro - jsr e_t64oroto - jsr e_r68tooro - jsr e_t72rotoo - jsr e_r76toroto - jsr e_80rotoro - jsr e_t84oroto - jsr e_r88tooro - iny - lda (pTex),y - jsr e_92rotoo - jsr e_r96toroto - jmp e_100rotoro + jsr selectMip0 + jsr e_t24oroto + jsr e_r28tooro + jsr e_t32rotoo + jsr e_r36toroto + jsr e_40rotoro + jsr e_t44oroto + jsr e_r48tooro + jsr e_t52rotoo + jsr e_r56toroto + jsr e_60rotoro + jsr e_t64oroto + jsr e_r68tooro + jsr e_t72rotoo + jsr e_r76toroto + jsr e_80rotoro + jsr e_t84oroto + jsr e_r88tooro + iny + lda (pTex),y + jsr e_92rotoo + jsr e_r96toroto + jmp e_100rotoro ; Produce 82 rows from 64 rows expand_82: - jsr selectMip0 - iny - lda (pTex),y - bmi :+ - sta 23*BLIT_STRIDE + blitRoll,x -: - jsr e_24rotoro - jsr e_28toroto - jsr e_r32otoro - jsr e_t36oroto - jsr e_r40tooro - jsr e_t44rooto - asl - jsr e_48toroo - jsr e_t52rotoo - jsr e_r56toroto - jsr e_60rotoro - jsr e_t64oroto - jsr e_r68otoro - jsr e_t72rooto - jsr e_r76tooro - jsr e_t80rotoo - jsr e_r84toroo - jsr e_t88rotoro - jsr e_92toroto - jsr e_96rotoro - jsr e_t100oroto - asl - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + iny + lda (pTex),y + bmi + + sta 23*BLIT_STRIDE + blitRoll,x ++ + jsr e_24rotoro + jsr e_28toroto + jsr e_r32otoro + jsr e_t36oroto + jsr e_r40tooro + jsr e_t44rooto + asl + jsr e_48toroo + jsr e_t52rotoo + jsr e_r56toroto + jsr e_60rotoro + jsr e_t64oroto + jsr e_r68otoro + jsr e_t72rooto + jsr e_r76tooro + jsr e_t80rotoo + jsr e_r84toroo + jsr e_t88rotoro + jsr e_92toroto + jsr e_96rotoro + jsr e_t100oroto + asl + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 84 rows from 64 rows expand_84: - jsr selectMip0 - jsr e_t22o - asl - jsr e_24toroo - jsr e_t28rotoo - asl - jsr e_32toroo - jsr e_t36rotoo - jsr e_r40toroto - jsr e_44rotoro - jsr e_48toroto - jsr e_52rotoro - jsr e_56toroto - jsr e_60rotoro - jsr e_t64oroto - jsr e_r68otoro - jsr e_t72oroto - jsr e_r76otoro - jsr e_t80oroto - jsr e_r84tooro - jsr e_t88rooto - jsr e_r92tooro - jsr e_t96rooto - jsr e_r100tooro - iny - lda (pTex),y - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 105*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t22o + asl + jsr e_24toroo + jsr e_t28rotoo + asl + jsr e_32toroo + jsr e_t36rotoo + jsr e_r40toroto + jsr e_44rotoro + jsr e_48toroto + jsr e_52rotoro + jsr e_56toroto + jsr e_60rotoro + jsr e_t64oroto + jsr e_r68otoro + jsr e_t72oroto + jsr e_r76otoro + jsr e_t80oroto + jsr e_r84tooro + jsr e_t88rooto + jsr e_r92tooro + jsr e_t96rooto + jsr e_r100tooro + iny + lda (pTex),y + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 105*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 86 rows from 64 rows expand_86: - jsr selectMip0 - jsr e_t21oro - jsr e_t24oroto - asl - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x - sta 29*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - jsr e_30ro - jsr e_t32oroto - jsr e_r36otoro - jsr e_t40oroto - jsr e_r44otoro - jsr e_t48oroto - jsr e_r52otoro - jsr e_t56oroto - jsr e_r60otoro - jsr e_t64oroto - jsr e_68rotoro - jsr e_72toroto - jsr e_76rotoro - jsr e_80toroto - jsr e_84rotoro - jsr e_88toroto - jsr e_92rotoro - jsr e_96toroto - jsr e_100rotoro - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 105*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 106*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t21oro + jsr e_t24oroto + asl + bmi + + sta 28*BLIT_STRIDE + blitRoll,x + sta 29*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + jsr e_30ro + jsr e_t32oroto + jsr e_r36otoro + jsr e_t40oroto + jsr e_r44otoro + jsr e_t48oroto + jsr e_r52otoro + jsr e_t56oroto + jsr e_r60otoro + jsr e_t64oroto + jsr e_68rotoro + jsr e_72toroto + jsr e_76rotoro + jsr e_80toroto + jsr e_84rotoro + jsr e_88toroto + jsr e_92rotoro + jsr e_96toroto + jsr e_100rotoro + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 105*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 106*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 88 rows from 64 rows expand_88: - jsr selectMip0 - jsr e_t20oroto - jsr e_24rotoro - jsr e_28toroto - jsr e_32rotoo - asl - jsr e_36toroo - iny - lda (pTex),y - jsr e_40rotoo - jsr e_r44tooro - jsr e_t48rooto - jsr e_r52tooro - jsr e_t56oroto - jsr e_r60otoro - jsr e_t64oroto - jsr e_68rotoro - jsr e_72toroto - jsr e_76rotoo - jsr e_r80toroo - jsr e_t84rotoo - jsr e_r88tooro - jsr e_t92rooto - jsr e_r96tooro - jsr e_t100oroto - jmp e_r104otoro + jsr selectMip0 + jsr e_t20oroto + jsr e_24rotoro + jsr e_28toroto + jsr e_32rotoo + asl + jsr e_36toroo + iny + lda (pTex),y + jsr e_40rotoo + jsr e_r44tooro + jsr e_t48rooto + jsr e_r52tooro + jsr e_t56oroto + jsr e_r60otoro + jsr e_t64oroto + jsr e_68rotoro + jsr e_72toroto + jsr e_76rotoo + jsr e_r80toroo + jsr e_t84rotoo + jsr e_r88tooro + jsr e_t92rooto + jsr e_r96tooro + jsr e_t100oroto + jmp e_r104otoro ; Produce 90 rows from 64 rows expand_90: - jsr selectMip0 - iny - lda (pTex),y - bmi :+ - sta 19*BLIT_STRIDE + blitRoll,x -: - jsr e_20rotoo - jsr e_r24tooro - jsr e_t28rooto - jsr e_r32otoro - jsr e_t36oroto - jsr e_40rotoro - jsr e_44toroo - iny - lda (pTex),y - jsr e_48rotoo - jsr e_r52tooro - jsr e_t56rooto - jsr e_r60otoro - jsr e_t64oroto - jsr e_68rotoo - asl - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - jsr e_73roo - jsr e_t76rooto - jsr e_r80tooro - jsr e_t84oroto - asl - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x - sta 89*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - jsr e_90ro - jsr e_92toroto - jsr e_96rotoo - asl - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - jsr e_101roo - jsr e_t104rooto - asl - bmi :+ - sta 108*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + iny + lda (pTex),y + bmi + + sta 19*BLIT_STRIDE + blitRoll,x ++ + jsr e_20rotoo + jsr e_r24tooro + jsr e_t28rooto + jsr e_r32otoro + jsr e_t36oroto + jsr e_40rotoro + jsr e_44toroo + iny + lda (pTex),y + jsr e_48rotoo + jsr e_r52tooro + jsr e_t56rooto + jsr e_r60otoro + jsr e_t64oroto + jsr e_68rotoo + asl + bmi + + sta 72*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + jsr e_73roo + jsr e_t76rooto + jsr e_r80tooro + jsr e_t84oroto + asl + bmi + + sta 88*BLIT_STRIDE + blitRoll,x + sta 89*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + jsr e_90ro + jsr e_92toroto + jsr e_96rotoo + asl + bmi + + sta 100*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + jsr e_101roo + jsr e_t104rooto + asl + bmi + + sta 108*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 92 rows from 64 rows expand_92: - jsr selectMip0 - jsr e_t18o - jsr e_r20tooro - jsr e_t24oroto - jsr e_28rotoro - jsr e_32toroo - jsr e_t36rooto - jsr e_r40tooro - jsr e_t44oroto - jsr e_48rotoo - jsr e_r52toroo - jsr e_t56rooto - jsr e_r60otoro - jsr e_t64oroto - jsr e_68rotoo - jsr e_r72tooro - jsr e_t76rooto - jsr e_r80otoro - jsr e_84toroto - jsr e_88rotoo - jsr e_r92tooro - jsr e_t96oroto - jsr e_r100otoro - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - jsr e_105roo - iny - lda (pTex),y - bmi :+ - sta 108*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 109*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t18o + jsr e_r20tooro + jsr e_t24oroto + jsr e_28rotoro + jsr e_32toroo + jsr e_t36rooto + jsr e_r40tooro + jsr e_t44oroto + jsr e_48rotoo + jsr e_r52toroo + jsr e_t56rooto + jsr e_r60otoro + jsr e_t64oroto + jsr e_68rotoo + jsr e_r72tooro + jsr e_t76rooto + jsr e_r80otoro + jsr e_84toroto + jsr e_88rotoo + jsr e_r92tooro + jsr e_t96oroto + jsr e_r100otoro + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + jsr e_105roo + iny + lda (pTex),y + bmi + + sta 108*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 109*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 94 rows from 64 rows expand_94: - jsr selectMip0 - jsr e_t17oro - jsr e_t20oroto - jsr e_24rotoo - jsr e_r28tooro - jsr e_t32oroto - jsr e_36rotoo - asl - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - jsr e_41roo - jsr e_t44rooto - asl - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x -: jsr e_49toro - jsr e_52toroo - jsr e_t56rooto - jsr e_r60otoro - jsr e_t64oroto - jsr e_68rotoo - jsr e_r72tooro - jsr e_t76oroto - jsr e_80rotoo - jsr e_r84tooro - jsr e_t88rooto - jsr e_r92otoro - jsr e_96toroo - jsr e_t100rooto - jsr e_r104otoro - bmi :+ - sta 108*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 109*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 110*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t17oro + jsr e_t20oroto + jsr e_24rotoo + jsr e_r28tooro + jsr e_t32oroto + jsr e_36rotoo + asl + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + jsr e_41roo + jsr e_t44rooto + asl + bmi + + sta 48*BLIT_STRIDE + blitRoll,x ++ jsr e_49toro + jsr e_52toroo + jsr e_t56rooto + jsr e_r60otoro + jsr e_t64oroto + jsr e_68rotoo + jsr e_r72tooro + jsr e_t76oroto + jsr e_80rotoo + jsr e_r84tooro + jsr e_t88rooto + jsr e_r92otoro + jsr e_96toroo + jsr e_t100rooto + jsr e_r104otoro + bmi + + sta 108*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 109*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 110*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 96 rows from 64 rows expand_96: - jsr selectMip0 - jsr e_t16oroto - jsr e_20rotoo - jsr e_r24tooro - jsr e_t28oroto - jsr e_32rotoo - jsr e_r36tooro - jsr e_t40oroto - jsr e_44rotoo - jsr e_r48tooro - jsr e_t52oroto - jsr e_56rotoo - jsr e_r60tooro - jsr e_t64oroto - jsr e_68rotoo - jsr e_r72tooro - jsr e_t76oroto - jsr e_80rotoo - jsr e_r84tooro - jsr e_t88oroto - jsr e_92rotoo - jsr e_r96tooro - jsr e_t100oroto - jsr e_104rotoo - jmp e_r108tooro + jsr selectMip0 + jsr e_t16oroto + jsr e_20rotoo + jsr e_r24tooro + jsr e_t28oroto + jsr e_32rotoo + jsr e_r36tooro + jsr e_t40oroto + jsr e_44rotoo + jsr e_r48tooro + jsr e_t52oroto + jsr e_56rotoo + jsr e_r60tooro + jsr e_t64oroto + jsr e_68rotoo + jsr e_r72tooro + jsr e_t76oroto + jsr e_80rotoo + jsr e_r84tooro + jsr e_t88oroto + jsr e_92rotoo + jsr e_r96tooro + jsr e_t100oroto + jsr e_104rotoo + jmp e_r108tooro ; Produce 98 rows from 64 rows expand_98: - jsr selectMip0 - iny - lda (pTex),y - bmi :+ - sta 15*BLIT_STRIDE + blitRoll,x -: - jsr e_16rooto - asl - bmi :+ - sta 20*BLIT_STRIDE + blitRoll,x - sta 21*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - jsr e_22ro - jsr e_24toroo - jsr e_t28rooto - jsr e_r32otoro - jsr e_36toroo - jsr e_t40oroto - jsr e_44rotoo - jsr e_r48tooro - jsr e_t52oroto - jsr e_56rotoo - jsr e_r60tooro - jsr e_t64oroo - jsr e_t68rooto - jsr e_r72otoro - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - jsr e_77roo - iny - lda (pTex),y - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 81*BLIT_STRIDE + blitRoll,x -: jsr e_82to - asl - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: jsr e_85toro - jsr e_88tooro - jsr e_t92oroto - jsr e_96rotoo - jsr e_r100tooro - iny - lda (pTex),y - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x - sta 105*BLIT_STRIDE + blitRoll,x -: asl - jsr e_106to - bmi :+ - sta 108*BLIT_STRIDE + blitRoll,x -: asl - jsr e_109too - asl - bmi :+ - sta 112*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + iny + lda (pTex),y + bmi + + sta 15*BLIT_STRIDE + blitRoll,x ++ + jsr e_16rooto + asl + bmi + + sta 20*BLIT_STRIDE + blitRoll,x + sta 21*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + jsr e_22ro + jsr e_24toroo + jsr e_t28rooto + jsr e_r32otoro + jsr e_36toroo + jsr e_t40oroto + jsr e_44rotoo + jsr e_r48tooro + jsr e_t52oroto + jsr e_56rotoo + jsr e_r60tooro + jsr e_t64oroo + jsr e_t68rooto + jsr e_r72otoro + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + jsr e_77roo + iny + lda (pTex),y + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 81*BLIT_STRIDE + blitRoll,x ++ jsr e_82to + asl + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ jsr e_85toro + jsr e_88tooro + jsr e_t92oroto + jsr e_96rotoo + jsr e_r100tooro + iny + lda (pTex),y + bmi + + sta 104*BLIT_STRIDE + blitRoll,x + sta 105*BLIT_STRIDE + blitRoll,x ++ asl + jsr e_106to + bmi + + sta 108*BLIT_STRIDE + blitRoll,x ++ asl + jsr e_109too + asl + bmi + + sta 112*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 100 rows from 64 rows expand_100: - jsr selectMip0 - jsr e_t14o - asl - bmi :+ - sta 16*BLIT_STRIDE + blitRoll,x - sta 17*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - jsr e_18ro - jsr e_20toroo - iny - lda (pTex),y - jsr e_24rooto - jsr e_28rotoo - jsr e_r32tooro - jsr e_t36oroto - jsr e_40rooto - jsr e_r44otoro - jsr e_48toroo - jsr e_t52oroto - jsr e_56rotoo - jsr e_r60tooro - jsr e_t64oroo - jsr e_t68rooto - jsr e_r72otoro - jsr e_76tooro - jsr e_t80oroto - jsr e_84rotoo - jsr e_r88tooro - bmi :+ - sta 92*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - jsr e_93roo - jsr e_t96rooto - jsr e_r100otoo - asl - jsr e_104tooro - iny - lda (pTex),y - bmi :+ - sta 108*BLIT_STRIDE + blitRoll,x - sta 109*BLIT_STRIDE + blitRoll,x -: asl - jsr e_110to - bmi :+ - sta 112*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 113*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t14o + asl + bmi + + sta 16*BLIT_STRIDE + blitRoll,x + sta 17*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + jsr e_18ro + jsr e_20toroo + iny + lda (pTex),y + jsr e_24rooto + jsr e_28rotoo + jsr e_r32tooro + jsr e_t36oroto + jsr e_40rooto + jsr e_r44otoro + jsr e_48toroo + jsr e_t52oroto + jsr e_56rotoo + jsr e_r60tooro + jsr e_t64oroo + jsr e_t68rooto + jsr e_r72otoro + jsr e_76tooro + jsr e_t80oroto + jsr e_84rotoo + jsr e_r88tooro + bmi + + sta 92*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + jsr e_93roo + jsr e_t96rooto + jsr e_r100otoo + asl + jsr e_104tooro + iny + lda (pTex),y + bmi + + sta 108*BLIT_STRIDE + blitRoll,x + sta 109*BLIT_STRIDE + blitRoll,x ++ asl + jsr e_110to + bmi + + sta 112*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 113*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 102 rows from 64 rows expand_102: - jsr selectMip0 - jsr e_t13oro - jsr e_16toroo - iny - lda (pTex),y - jsr e_20rooto - jsr e_24rotoo - jsr e_r28tooro - jsr e_32toroo - jsr e_t36rooto - jsr e_40rotoo - jsr e_r44tooro - jsr e_48toroo - iny - lda (pTex),y - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 53*BLIT_STRIDE + blitRoll,x -: jsr e_54to - jsr e_56rotoo - jsr e_r60tooro - jsr e_t64oroo - jsr e_t68rooto - jsr e_r72otoo - jsr e_r76tooro - jsr e_t80oroo - jsr e_t84rooto - jsr e_r88otoo - jsr e_r92tooro - jsr e_t96oroo - jsr e_t100rooto - jsr e_r104otoo - jsr e_r108tooro - iny - lda (pTex),y - bmi :+ - sta 112*BLIT_STRIDE + blitRoll,x - sta 113*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 114*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t13oro + jsr e_16toroo + iny + lda (pTex),y + jsr e_20rooto + jsr e_24rotoo + jsr e_r28tooro + jsr e_32toroo + jsr e_t36rooto + jsr e_40rotoo + jsr e_r44tooro + jsr e_48toroo + iny + lda (pTex),y + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 53*BLIT_STRIDE + blitRoll,x ++ jsr e_54to + jsr e_56rotoo + jsr e_r60tooro + jsr e_t64oroo + jsr e_t68rooto + jsr e_r72otoo + jsr e_r76tooro + jsr e_t80oroo + jsr e_t84rooto + jsr e_r88otoo + jsr e_r92tooro + jsr e_t96oroo + jsr e_t100rooto + jsr e_r104otoo + jsr e_r108tooro + iny + lda (pTex),y + bmi + + sta 112*BLIT_STRIDE + blitRoll,x + sta 113*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 114*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 104 rows from 64 rows expand_104: - jsr selectMip0 - jsr e_t12oroo - iny - lda (pTex),y - jsr e_16rooto - jsr e_20rotoo - jsr e_r24tooro - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - jsr e_29roo - jsr e_t32oroto - jsr e_36rotoo - jsr e_r40otoro - jsr e_44tooro - jsr e_t48oroto - jsr e_52rooto - jsr e_r56otoo - jsr e_r60tooro - jsr e_t64oroo - jsr e_t68rooto - jsr e_72rotoo - jsr e_r76tooro - jsr e_80toroo - jsr e_t84oroto - jsr e_88rotoo - jsr e_r92otoro - jsr e_96tooro - jsr e_t100oroto - jsr e_104rooto - jsr e_r108otoo - jmp e_r112tooro + jsr selectMip0 + jsr e_t12oroo + iny + lda (pTex),y + jsr e_16rooto + jsr e_20rotoo + jsr e_r24tooro + bmi + + sta 28*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + jsr e_29roo + jsr e_t32oroto + jsr e_36rotoo + jsr e_r40otoro + jsr e_44tooro + jsr e_t48oroto + jsr e_52rooto + jsr e_r56otoo + jsr e_r60tooro + jsr e_t64oroo + jsr e_t68rooto + jsr e_72rotoo + jsr e_r76tooro + jsr e_80toroo + jsr e_t84oroto + jsr e_88rotoo + jsr e_r92otoro + jsr e_96tooro + jsr e_t100oroto + jsr e_104rooto + jsr e_r108otoo + jmp e_r112tooro ; Produce 106 rows from 64 rows expand_106: - jsr selectMip0 - iny - lda (pTex),y - bmi :+ - sta 11*BLIT_STRIDE + blitRoll,x -: - jsr e_12rooto - jsr e_r16otoo - jsr e_r20tooro - jsr e_24toroo - jsr e_t28oroto - jsr e_32rooto - jsr e_r36otoo - jsr e_r40tooro - jsr e_44toroo - jsr e_t48oroto - jsr e_52rooto - jsr e_r56otoo - jsr e_r60tooro - jsr e_t64oroo - jsr e_t68rooto - jsr e_72rotoo - jsr e_r76otoro - jsr e_80tooro - jsr e_t84oroo - jsr e_t88rooto - jsr e_92rotoo - asl - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: jsr e_97toro - jsr e_100tooro - jsr e_t104oroo - iny - lda (pTex),y - jsr e_108rooto - jsr e_112rotoo - asl - bmi :+ - sta 116*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + iny + lda (pTex),y + bmi + + sta 11*BLIT_STRIDE + blitRoll,x ++ + jsr e_12rooto + jsr e_r16otoo + jsr e_r20tooro + jsr e_24toroo + jsr e_t28oroto + jsr e_32rooto + jsr e_r36otoo + jsr e_r40tooro + jsr e_44toroo + jsr e_t48oroto + jsr e_52rooto + jsr e_r56otoo + jsr e_r60tooro + jsr e_t64oroo + jsr e_t68rooto + jsr e_72rotoo + jsr e_r76otoro + jsr e_80tooro + jsr e_t84oroo + jsr e_t88rooto + jsr e_92rotoo + asl + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ jsr e_97toro + jsr e_100tooro + jsr e_t104oroo + iny + lda (pTex),y + jsr e_108rooto + jsr e_112rotoo + asl + bmi + + sta 116*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 108 rows from 64 rows expand_108: - jsr selectMip0 - jsr e_t10o - jsr e_r12otoo - jsr e_r16tooro - jsr e_20toroo - jsr e_t24oroto - jsr e_28rooto - jsr e_r32otoo - jsr e_r36tooro - jsr e_40tooro - jsr e_t44oroo - jsr e_t48rooto - jsr e_52rotoo - jsr e_r56otoro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroto - jsr e_72rooto - jsr e_r76otoo - jsr e_r80tooro - jsr e_84toroo - jsr e_t88oroto - jsr e_92rooto - jsr e_96rotoo - jsr e_r100otoro - jsr e_104tooro - jsr e_t108oroo - jsr e_t112rooto - bmi :+ - sta 116*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 117*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t10o + jsr e_r12otoo + jsr e_r16tooro + jsr e_20toroo + jsr e_t24oroto + jsr e_28rooto + jsr e_r32otoo + jsr e_r36tooro + jsr e_40tooro + jsr e_t44oroo + jsr e_t48rooto + jsr e_52rotoo + jsr e_r56otoro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroto + jsr e_72rooto + jsr e_r76otoo + jsr e_r80tooro + jsr e_84toroo + jsr e_t88oroto + jsr e_92rooto + jsr e_96rotoo + jsr e_r100otoro + jsr e_104tooro + jsr e_t108oroo + jsr e_t112rooto + bmi + + sta 116*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 117*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 110 rows from 64 rows expand_110: - jsr selectMip0 - jsr e_t9oro - jsr e_12tooro - jsr e_t16oroo - jsr e_t20oroto - jsr e_24rooto - jsr e_r28otoo - jsr e_r32otoro - jsr e_36tooro - jsr e_t40oroo - jsr e_t44oroto - jsr e_48rooto - jsr e_r52otoo - jsr e_r56otoro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroto - jsr e_72rooto - jsr e_76rotoo - jsr e_r80otoro - jsr e_84tooro - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - jsr e_89roo - jsr e_t92oroto - jsr e_96rooto - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x -: asl - jsr e_101too - jsr e_r104otoro - jsr e_108tooro - bmi :+ - sta 112*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - jsr e_113roo - iny - lda (pTex),y - bmi :+ - sta 116*BLIT_STRIDE + blitRoll,x - sta 117*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 118*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t9oro + jsr e_12tooro + jsr e_t16oroo + jsr e_t20oroto + jsr e_24rooto + jsr e_r28otoo + jsr e_r32otoro + jsr e_36tooro + jsr e_t40oroo + jsr e_t44oroto + jsr e_48rooto + jsr e_r52otoo + jsr e_r56otoro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroto + jsr e_72rooto + jsr e_76rotoo + jsr e_r80otoro + jsr e_84tooro + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + jsr e_89roo + jsr e_t92oroto + jsr e_96rooto + bmi + + sta 100*BLIT_STRIDE + blitRoll,x ++ asl + jsr e_101too + jsr e_r104otoro + jsr e_108tooro + bmi + + sta 112*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + jsr e_113roo + iny + lda (pTex),y + bmi + + sta 116*BLIT_STRIDE + blitRoll,x + sta 117*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 118*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 112 rows from 64 rows expand_112: - jsr selectMip0 - jsr e_t8oroo - iny - lda (pTex),y - bmi :+ - sta 12*BLIT_STRIDE + blitRoll,x - sta 13*BLIT_STRIDE + blitRoll,x -: asl - jsr e_14to - jsr e_16rooto - jsr e_20rotoo - jsr e_r24otoo - jsr e_r28tooro - jsr e_32tooro - jsr e_t36oroo - jsr e_t40oroto - jsr e_44rooto - jsr e_48rotoo - jsr e_r52otoo - jsr e_r56tooro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroto - jsr e_72rooto - jsr e_76rotoo - jsr e_r80otoo - jsr e_r84tooro - jsr e_88tooro - jsr e_t92oroo - jsr e_t96oroto - jsr e_100rooto - jsr e_104rotoo - jsr e_r108otoo - jsr e_r112tooro - jmp e_116tooro + jsr selectMip0 + jsr e_t8oroo + iny + lda (pTex),y + bmi + + sta 12*BLIT_STRIDE + blitRoll,x + sta 13*BLIT_STRIDE + blitRoll,x ++ asl + jsr e_14to + jsr e_16rooto + jsr e_20rotoo + jsr e_r24otoo + jsr e_r28tooro + jsr e_32tooro + jsr e_t36oroo + jsr e_t40oroto + jsr e_44rooto + jsr e_48rotoo + jsr e_r52otoo + jsr e_r56tooro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroto + jsr e_72rooto + jsr e_76rotoo + jsr e_r80otoo + jsr e_r84tooro + jsr e_88tooro + jsr e_t92oroo + jsr e_t96oroto + jsr e_100rooto + jsr e_104rotoo + jsr e_r108otoo + jsr e_r112tooro + jmp e_116tooro ; Produce 114 rows from 64 rows expand_114: - jsr selectMip0 - iny - lda (pTex),y - bmi :+ - sta 7*BLIT_STRIDE + blitRoll,x -: - jsr e_8rooto - jsr e_12rooto - jsr e_r16otoo - jsr e_r20otoo - jsr e_r24tooro - jsr e_28tooro - jsr e_t32oroo - jsr e_t36oroo - jsr e_t40rooto - jsr e_44rooto - jsr e_r48otoo - jsr e_r52otoo - jsr e_r56tooro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroo - jsr e_t72rooto - jsr e_76rooto - jsr e_80rotoo - jsr e_r84otoo - jsr e_r88tooro - jsr e_92tooro - jsr e_96toroo - jsr e_t100oroo - jsr e_t104rooto - jsr e_108rooto - jsr e_112rotoo - jsr e_r116otoo - asl - bmi :+ - sta 120*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + iny + lda (pTex),y + bmi + + sta 7*BLIT_STRIDE + blitRoll,x ++ + jsr e_8rooto + jsr e_12rooto + jsr e_r16otoo + jsr e_r20otoo + jsr e_r24tooro + jsr e_28tooro + jsr e_t32oroo + jsr e_t36oroo + jsr e_t40rooto + jsr e_44rooto + jsr e_r48otoo + jsr e_r52otoo + jsr e_r56tooro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroo + jsr e_t72rooto + jsr e_76rooto + jsr e_80rotoo + jsr e_r84otoo + jsr e_r88tooro + jsr e_92tooro + jsr e_96toroo + jsr e_t100oroo + jsr e_t104rooto + jsr e_108rooto + jsr e_112rotoo + jsr e_r116otoo + asl + bmi + + sta 120*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 116 rows from 64 rows expand_116: - jsr selectMip0 - jsr e_t6o - jsr e_r8otoo - jsr e_r12otoo - jsr e_r16tooro - jsr e_20tooro - jsr e_24toroo - jsr e_t28oroo - jsr e_t32oroto - jsr e_36rooto - jsr e_40rooto - jsr e_44rotoo - jsr e_r48otoo - jsr e_r52otoro - jsr e_56tooro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroo - jsr e_t72oroto - jsr e_76rooto - jsr e_80rooto - jsr e_r84otoo - jsr e_r88otoo - jsr e_r92tooro - jsr e_96tooro - jsr e_100tooro - jsr e_t104oroo - jsr e_t108oroo - jsr e_t112rooto - jsr e_116rooto - bmi :+ - sta 120*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 121*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t6o + jsr e_r8otoo + jsr e_r12otoo + jsr e_r16tooro + jsr e_20tooro + jsr e_24toroo + jsr e_t28oroo + jsr e_t32oroto + jsr e_36rooto + jsr e_40rooto + jsr e_44rotoo + jsr e_r48otoo + jsr e_r52otoro + jsr e_56tooro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroo + jsr e_t72oroto + jsr e_76rooto + jsr e_80rooto + jsr e_r84otoo + jsr e_r88otoo + jsr e_r92tooro + jsr e_96tooro + jsr e_100tooro + jsr e_t104oroo + jsr e_t108oroo + jsr e_t112rooto + jsr e_116rooto + bmi + + sta 120*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 121*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 118 rows from 64 rows expand_118: - jsr selectMip0 - jsr e_t5oro - jsr e_8tooro - jsr e_12tooro - jsr e_16toroo - jsr e_t20oroo - jsr e_t24oroo - jsr e_t28rooto - jsr e_32rooto - jsr e_36rooto - jsr e_40rotoo - jsr e_r44otoo - jsr e_r48otoo - jsr e_r52tooro - jsr e_56tooro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroo - jsr e_t72oroo - jsr e_t76rooto - jsr e_80rooto - jsr e_84rooto - jsr e_r88otoo - jsr e_r92otoo - jsr e_r96otoo - jsr e_r100tooro - jsr e_104tooro - jsr e_108tooro - jsr e_t112oroo - jsr e_t116oroo - iny - lda (pTex),y - bmi :+ - sta 120*BLIT_STRIDE + blitRoll,x - sta 121*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 122*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t5oro + jsr e_8tooro + jsr e_12tooro + jsr e_16toroo + jsr e_t20oroo + jsr e_t24oroo + jsr e_t28rooto + jsr e_32rooto + jsr e_36rooto + jsr e_40rotoo + jsr e_r44otoo + jsr e_r48otoo + jsr e_r52tooro + jsr e_56tooro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroo + jsr e_t72oroo + jsr e_t76rooto + jsr e_80rooto + jsr e_84rooto + jsr e_r88otoo + jsr e_r92otoo + jsr e_r96otoo + jsr e_r100tooro + jsr e_104tooro + jsr e_108tooro + jsr e_t112oroo + jsr e_t116oroo + iny + lda (pTex),y + bmi + + sta 120*BLIT_STRIDE + blitRoll,x + sta 121*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 122*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 120 rows from 64 rows expand_120: - jsr selectMip0 - jsr e_t4oroo - jsr e_t8oroo - jsr e_t12oroo - jsr e_t16oroto - jsr e_20rooto - jsr e_24rooto - jsr e_28rooto - jsr e_32rotoo - jsr e_r36otoo - jsr e_r40otoo - jsr e_r44otoo - jsr e_r48tooro - jsr e_52tooro - jsr e_56tooro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroo - jsr e_t72oroo - jsr e_t76oroto - jsr e_80rooto - jsr e_84rooto - jsr e_88rooto - jsr e_92rotoo - jsr e_r96otoo - jsr e_r100otoo - jsr e_r104otoo - jsr e_r108tooro - jsr e_112tooro - jsr e_116tooro - jmp e_120tooro + jsr selectMip0 + jsr e_t4oroo + jsr e_t8oroo + jsr e_t12oroo + jsr e_t16oroto + jsr e_20rooto + jsr e_24rooto + jsr e_28rooto + jsr e_32rotoo + jsr e_r36otoo + jsr e_r40otoo + jsr e_r44otoo + jsr e_r48tooro + jsr e_52tooro + jsr e_56tooro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroo + jsr e_t72oroo + jsr e_t76oroto + jsr e_80rooto + jsr e_84rooto + jsr e_88rooto + jsr e_92rotoo + jsr e_r96otoo + jsr e_r100otoo + jsr e_r104otoo + jsr e_r108tooro + jsr e_112tooro + jsr e_116tooro + jmp e_120tooro ; Produce 122 rows from 64 rows expand_122: - jsr selectMip0 - iny - lda (pTex),y - bmi :+ - sta 3*BLIT_STRIDE + blitRoll,x -: - jsr e_4rooto - jsr e_8rooto - jsr e_12rooto - jsr e_16rooto - jsr e_20rooto - jsr e_r24otoo - jsr e_r28otoo - jsr e_r32otoo - jsr e_r36otoo - jsr e_r40otoo - jsr e_r44tooro - jsr e_48tooro - jsr e_52tooro - jsr e_56tooro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroo - jsr e_t72oroo - jsr e_t76oroo - jsr e_t80oroo - jsr e_t84rooto - jsr e_88rooto - jsr e_92rooto - jsr e_96rooto - jsr e_100rooto - jsr e_104rotoo - jsr e_r108otoo - jsr e_r112otoo - jsr e_r116otoo - jsr e_r120otoo - asl - bmi :+ - sta 124*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + iny + lda (pTex),y + bmi + + sta 3*BLIT_STRIDE + blitRoll,x ++ + jsr e_4rooto + jsr e_8rooto + jsr e_12rooto + jsr e_16rooto + jsr e_20rooto + jsr e_r24otoo + jsr e_r28otoo + jsr e_r32otoo + jsr e_r36otoo + jsr e_r40otoo + jsr e_r44tooro + jsr e_48tooro + jsr e_52tooro + jsr e_56tooro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroo + jsr e_t72oroo + jsr e_t76oroo + jsr e_t80oroo + jsr e_t84rooto + jsr e_88rooto + jsr e_92rooto + jsr e_96rooto + jsr e_100rooto + jsr e_104rotoo + jsr e_r108otoo + jsr e_r112otoo + jsr e_r116otoo + jsr e_r120otoo + asl + bmi + + sta 124*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 124 rows from 64 rows expand_124: - jsr selectMip0 - jsr e_t2o - jsr e_r4otoo - jsr e_r8otoo - jsr e_r12otoo - jsr e_r16otoo - jsr e_r20otoo - jsr e_r24otoo - jsr e_r28otoo - jsr e_r32tooro - jsr e_36tooro - jsr e_40tooro - jsr e_44tooro - jsr e_48tooro - jsr e_52tooro - jsr e_56tooro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroo - jsr e_t72oroo - jsr e_t76oroo - jsr e_t80oroo - jsr e_t84oroo - jsr e_t88oroo - jsr e_t92oroto - jsr e_96rooto - jsr e_100rooto - jsr e_104rooto - jsr e_108rooto - jsr e_112rooto - jsr e_116rooto - jsr e_120rooto - bmi :+ - sta 124*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 125*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t2o + jsr e_r4otoo + jsr e_r8otoo + jsr e_r12otoo + jsr e_r16otoo + jsr e_r20otoo + jsr e_r24otoo + jsr e_r28otoo + jsr e_r32tooro + jsr e_36tooro + jsr e_40tooro + jsr e_44tooro + jsr e_48tooro + jsr e_52tooro + jsr e_56tooro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroo + jsr e_t72oroo + jsr e_t76oroo + jsr e_t80oroo + jsr e_t84oroo + jsr e_t88oroo + jsr e_t92oroto + jsr e_96rooto + jsr e_100rooto + jsr e_104rooto + jsr e_108rooto + jsr e_112rooto + jsr e_116rooto + jsr e_120rooto + bmi + + sta 124*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 125*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 126 rows from 64 rows expand_126: - jsr selectMip0 - jsr e_t1oro - jsr e_4tooro - jsr e_8tooro - jsr e_12tooro - jsr e_16tooro - jsr e_20tooro - jsr e_24tooro - jsr e_28tooro - jsr e_32tooro - jsr e_36tooro - jsr e_40tooro - jsr e_44tooro - jsr e_48tooro - jsr e_52tooro - jsr e_56tooro - jsr e_60tooro - jsr e_t64oroo - jsr e_t68oroo - jsr e_t72oroo - jsr e_t76oroo - jsr e_t80oroo - jsr e_t84oroo - jsr e_t88oroo - jsr e_t92oroo - jsr e_t96oroo - jsr e_t100oroo - jsr e_t104oroo - jsr e_t108oroo - jsr e_t112oroo - jsr e_t116oroo - jsr e_t120oroo - iny - lda (pTex),y - bmi :+ - sta 124*BLIT_STRIDE + blitRoll,x - sta 125*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 126*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + jsr e_t1oro + jsr e_4tooro + jsr e_8tooro + jsr e_12tooro + jsr e_16tooro + jsr e_20tooro + jsr e_24tooro + jsr e_28tooro + jsr e_32tooro + jsr e_36tooro + jsr e_40tooro + jsr e_44tooro + jsr e_48tooro + jsr e_52tooro + jsr e_56tooro + jsr e_60tooro + jsr e_t64oroo + jsr e_t68oroo + jsr e_t72oroo + jsr e_t76oroo + jsr e_t80oroo + jsr e_t84oroo + jsr e_t88oroo + jsr e_t92oroo + jsr e_t96oroo + jsr e_t100oroo + jsr e_t104oroo + jsr e_t108oroo + jsr e_t112oroo + jsr e_t116oroo + jsr e_t120oroo + iny + lda (pTex),y + bmi + + sta 124*BLIT_STRIDE + blitRoll,x + sta 125*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 126*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 128 rows from 64 rows expand_128: - jsr selectMip0 - jsr e_t0oroo - jsr e_t4oroo - jsr e_t8oroo - jsr e_t12oroo - jsr e_t16oroo - jsr e_t20oroo - jsr e_t24oroo - jsr e_t28oroo - jsr e_t32oroo - jsr e_t36oroo - jsr e_t40oroo - jsr e_t44oroo - jsr e_t48oroo - jsr e_t52oroo - jsr e_t56oroo - jsr e_t60oroo - jsr e_t64oroo - jsr e_t68oroo - jsr e_t72oroo - jsr e_t76oroo - jsr e_t80oroo - jsr e_t84oroo - jsr e_t88oroo - jsr e_t92oroo - jsr e_t96oroo - jsr e_t100oroo - jsr e_t104oroo - jsr e_t108oroo - jsr e_t112oroo - jsr e_t116oroo - jsr e_t120oroo - jmp e_t124oroo + jsr selectMip0 + jsr e_t0oroo + jsr e_t4oroo + jsr e_t8oroo + jsr e_t12oroo + jsr e_t16oroo + jsr e_t20oroo + jsr e_t24oroo + jsr e_t28oroo + jsr e_t32oroo + jsr e_t36oroo + jsr e_t40oroo + jsr e_t44oroo + jsr e_t48oroo + jsr e_t52oroo + jsr e_t56oroo + jsr e_t60oroo + jsr e_t64oroo + jsr e_t68oroo + jsr e_t72oroo + jsr e_t76oroo + jsr e_t80oroo + jsr e_t84oroo + jsr e_t88oroo + jsr e_t92oroo + jsr e_t96oroo + jsr e_t100oroo + jsr e_t104oroo + jsr e_t108oroo + jsr e_t112oroo + jsr e_t116oroo + jsr e_t120oroo + jmp e_t124oroo ; Produce 132 rows from 64 rows expand_132: - jsr selectMip0 - jsr e_t0rooto - jsr e_4rooto - jsr e_8rooto - jsr e_12rooto - jsr e_16rooto - jsr e_20rooto - jsr e_24rooto - jsr e_28rooto - jsr e_32oroo - jsr e_t36oroo - jsr e_t40oroo - jsr e_t44oroo - jsr e_t48oroo - jsr e_t52oroo - jsr e_t56oroo - jsr e_t60oroo - jsr e_t64ooro - jsr e_68tooro - jsr e_72tooro - jsr e_76tooro - jsr e_80tooro - jsr e_84tooro - jsr e_88tooro - jsr e_92tooro - jsr e_96tooo - jsr e_r100otoo - jsr e_r104otoo - jsr e_r108otoo - jsr e_r112otoo - jsr e_r116otoo - jsr e_r120otoo - jmp e_r124otoo + jsr selectMip0 + jsr e_t0rooto + jsr e_4rooto + jsr e_8rooto + jsr e_12rooto + jsr e_16rooto + jsr e_20rooto + jsr e_24rooto + jsr e_28rooto + jsr e_32oroo + jsr e_t36oroo + jsr e_t40oroo + jsr e_t44oroo + jsr e_t48oroo + jsr e_t52oroo + jsr e_t56oroo + jsr e_t60oroo + jsr e_t64ooro + jsr e_68tooro + jsr e_72tooro + jsr e_76tooro + jsr e_80tooro + jsr e_84tooro + jsr e_88tooro + jsr e_92tooro + jsr e_96tooo + jsr e_r100otoo + jsr e_r104otoo + jsr e_r108otoo + jsr e_r112otoo + jsr e_r116otoo + jsr e_r120otoo + jmp e_r124otoo ; Produce 136 rows from 64 rows expand_136: - jsr selectMip0 - iny - lda (pTex),y - asl - bmi :+ - sta 0*BLIT_STRIDE + blitRoll,x -: jsr e_t1oro - jsr e_4tooro - jsr e_8tooro - jsr e_12tooo - jsr e_r16otoo - jsr e_r20otoo - jsr e_r24otoo - jsr e_r28otoo - jsr e_32rooto - jsr e_36rooto - jsr e_40rooto - jsr e_44rooto - jsr e_48oroo - jsr e_t52oroo - jsr e_t56oroo - jsr e_t60oroo - jsr e_t64ooro - jsr e_68tooro - jsr e_72tooro - jsr e_76tooro - jsr e_80tooo - jsr e_r84otoo - jsr e_r88otoo - jsr e_r92otoo - jsr e_r96otoo - jsr e_100rooto - jsr e_104rooto - jsr e_108rooto - jsr e_112rooto - jsr e_116oroo - jsr e_t120oroo - jmp e_t124oroo + jsr selectMip0 + iny + lda (pTex),y + asl + bmi + + sta 0*BLIT_STRIDE + blitRoll,x ++ jsr e_t1oro + jsr e_4tooro + jsr e_8tooro + jsr e_12tooo + jsr e_r16otoo + jsr e_r20otoo + jsr e_r24otoo + jsr e_r28otoo + jsr e_32rooto + jsr e_36rooto + jsr e_40rooto + jsr e_44rooto + jsr e_48oroo + jsr e_t52oroo + jsr e_t56oroo + jsr e_t60oroo + jsr e_t64ooro + jsr e_68tooro + jsr e_72tooro + jsr e_76tooro + jsr e_80tooo + jsr e_r84otoo + jsr e_r88otoo + jsr e_r92otoo + jsr e_r96otoo + jsr e_100rooto + jsr e_104rooto + jsr e_108rooto + jsr e_112rooto + jsr e_116oroo + jsr e_t120oroo + jmp e_t124oroo ; Produce 140 rows from 64 rows expand_140: - jsr selectMip0 - ldy #0 - jsr e_t0rooto - jsr e_4rooo - jsr e_t8oroo - jsr e_t12oroo - jsr e_t16ooro - jsr e_20tooro - jsr e_24tooro - jsr e_28tooo - jsr e_r32otoo - jsr e_r36otoo - jsr e_r40ooto - jsr e_44rooto - jsr e_48rooto - jsr e_52oroo - jsr e_t56oroo - jsr e_t60oroo - jsr e_t64ooro - jsr e_68tooro - jsr e_72tooro - jsr e_76otoo - jsr e_r80otoo - jsr e_r84otoo - jsr e_88rooto - jsr e_92rooto - jsr e_96rooto - jsr e_100oroo - jsr e_t104oroo - jsr e_t108oroo - jsr e_112tooro - jsr e_116tooro - jsr e_120tooo - jmp e_r124otoo + jsr selectMip0 + ldy #0 + jsr e_t0rooto + jsr e_4rooo + jsr e_t8oroo + jsr e_t12oroo + jsr e_t16ooro + jsr e_20tooro + jsr e_24tooro + jsr e_28tooo + jsr e_r32otoo + jsr e_r36otoo + jsr e_r40ooto + jsr e_44rooto + jsr e_48rooto + jsr e_52oroo + jsr e_t56oroo + jsr e_t60oroo + jsr e_t64ooro + jsr e_68tooro + jsr e_72tooro + jsr e_76otoo + jsr e_r80otoo + jsr e_r84otoo + jsr e_88rooto + jsr e_92rooto + jsr e_96rooto + jsr e_100oroo + jsr e_t104oroo + jsr e_t108oroo + jsr e_112tooro + jsr e_116tooro + jsr e_120tooo + jmp e_r124otoo ; Produce 144 rows from 64 rows expand_144: - jsr selectMip0 - ldy #0 - jsr e_tr0otoo - jsr e_r4otoo - jsr e_r8ooto - jsr e_12rooto - jsr e_16rooo - jsr e_t20oroo - jsr e_t24oroo - jsr e_28tooro - jsr e_32tooro - jsr e_36otoo - jsr e_r40otoo - jsr e_r44ooto - jsr e_48rooto - jsr e_52rooo - jsr e_t56oroo - jsr e_t60oroo - jsr e_64tooro - jsr e_68tooro - jsr e_72otoo - jsr e_r76otoo - jsr e_r80ooto - jsr e_84rooto - jsr e_88rooo - jsr e_t92oroo - jsr e_t96oroo - jsr e_100tooro - jsr e_104tooro - jsr e_108otoo - jsr e_r112otoo - jsr e_r116ooto - jsr e_120rooto - jmp e_124rooo + jsr selectMip0 + ldy #0 + jsr e_tr0otoo + jsr e_r4otoo + jsr e_r8ooto + jsr e_12rooto + jsr e_16rooo + jsr e_t20oroo + jsr e_t24oroo + jsr e_28tooro + jsr e_32tooro + jsr e_36otoo + jsr e_r40otoo + jsr e_r44ooto + jsr e_48rooto + jsr e_52rooo + jsr e_t56oroo + jsr e_t60oroo + jsr e_64tooro + jsr e_68tooro + jsr e_72otoo + jsr e_r76otoo + jsr e_r80ooto + jsr e_84rooto + jsr e_88rooo + jsr e_t92oroo + jsr e_t96oroo + jsr e_100tooro + jsr e_104tooro + jsr e_108otoo + jsr e_r112otoo + jsr e_r116ooto + jsr e_120rooto + jmp e_124rooo ; Produce 148 rows from 64 rows expand_148: - jsr selectMip0 - ldy #1 - jsr e_t0oroo - jsr e_t4ooro - jsr e_8tooro - jsr e_12otoo - jsr e_r16otoo - jsr e_20rooto - jsr e_24rooto - jsr e_28oroo - jsr e_t32oroo - jsr e_36tooro - jsr e_40tooo - jsr e_r44otoo - jsr e_r48ooto - jsr e_52rooto - jsr e_56oroo - jsr e_t60oroo - jsr e_t64ooro - jsr e_68tooro - jsr e_72otoo - jsr e_r76otoo - jsr e_80rooto - jsr e_84rooo - jsr e_t88oroo - jsr e_t92ooro - jsr e_96tooro - jsr e_100tooo - jsr e_r104otoo - jsr e_r108ooto - jsr e_112rooto - jsr e_116oroo - jsr e_t120oroo - jmp e_124tooro + jsr selectMip0 + ldy #1 + jsr e_t0oroo + jsr e_t4ooro + jsr e_8tooro + jsr e_12otoo + jsr e_r16otoo + jsr e_20rooto + jsr e_24rooto + jsr e_28oroo + jsr e_t32oroo + jsr e_36tooro + jsr e_40tooo + jsr e_r44otoo + jsr e_r48ooto + jsr e_52rooto + jsr e_56oroo + jsr e_t60oroo + jsr e_t64ooro + jsr e_68tooro + jsr e_72otoo + jsr e_r76otoo + jsr e_80rooto + jsr e_84rooo + jsr e_t88oroo + jsr e_t92ooro + jsr e_96tooro + jsr e_100tooo + jsr e_r104otoo + jsr e_r108ooto + jsr e_112rooto + jsr e_116oroo + jsr e_t120oroo + jmp e_124tooro ; Produce 152 rows from 64 rows expand_152: - jsr selectMip0 - ldy #1 - jsr e_tr0ooto - jsr e_4rooo - jsr e_t8oroo - jsr e_t12ooro - jsr e_16tooro - jsr e_20otoo - jsr e_r24ooto - jsr e_28rooto - jsr e_32oroo - jsr e_t36oroo - jsr e_40tooro - jsr e_44otoo - jsr e_r48otoo - jsr e_52rooto - jsr e_56rooo - jsr e_t60oroo - jsr e_64tooro - jsr e_68tooo - jsr e_r72otoo - jsr e_r76ooto - jsr e_80rooo - jsr e_t84oroo - jsr e_t88ooro - jsr e_92tooro - jsr e_96otoo - jsr e_r100ooto - jsr e_104rooto - jsr e_108oroo - jsr e_t112oroo - jsr e_116tooro - jsr e_120otoo - jmp e_r124otoo + jsr selectMip0 + ldy #1 + jsr e_tr0ooto + jsr e_4rooo + jsr e_t8oroo + jsr e_t12ooro + jsr e_16tooro + jsr e_20otoo + jsr e_r24ooto + jsr e_28rooto + jsr e_32oroo + jsr e_t36oroo + jsr e_40tooro + jsr e_44otoo + jsr e_r48otoo + jsr e_52rooto + jsr e_56rooo + jsr e_t60oroo + jsr e_64tooro + jsr e_68tooo + jsr e_r72otoo + jsr e_r76ooto + jsr e_80rooo + jsr e_t84oroo + jsr e_t88ooro + jsr e_92tooro + jsr e_96otoo + jsr e_r100ooto + jsr e_104rooto + jsr e_108oroo + jsr e_t112oroo + jsr e_116tooro + jsr e_120otoo + jmp e_r124otoo ; Produce 156 rows from 64 rows expand_156: - jsr selectMip0 - ldy #1 - jsr e_tr0tooo - jsr e_r4otoo - jsr e_r8ooto - jsr e_12rooo - jsr e_t16oroo - jsr e_20tooro - jsr e_24tooo - jsr e_r28otoo - jsr e_32rooto - jsr e_36oroo - jsr e_t40ooro - jsr e_44tooro - jsr e_48otoo - asl - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x - sta 53*BLIT_STRIDE + blitRoll,x -: jsr e_54to - jsr e_56rooo - jsr e_t60oroo - jsr e_t64ooro - jsr e_68tooo - jsr e_r72otoo - jsr e_76rooto - jsr e_80oroo - jsr e_t84oroo - jsr e_88tooro - jsr e_92otoo - jsr e_r96ooto - jsr e_100rooto - jsr e_104oroo - jsr e_t108ooro - jsr e_112tooo - jsr e_r116otoo - jsr e_120rooto - jmp e_124rooo + jsr selectMip0 + ldy #1 + jsr e_tr0tooo + jsr e_r4otoo + jsr e_r8ooto + jsr e_12rooo + jsr e_t16oroo + jsr e_20tooro + jsr e_24tooo + jsr e_r28otoo + jsr e_32rooto + jsr e_36oroo + jsr e_t40ooro + jsr e_44tooro + jsr e_48otoo + asl + bmi + + sta 52*BLIT_STRIDE + blitRoll,x + sta 53*BLIT_STRIDE + blitRoll,x ++ jsr e_54to + jsr e_56rooo + jsr e_t60oroo + jsr e_t64ooro + jsr e_68tooo + jsr e_r72otoo + jsr e_76rooto + jsr e_80oroo + jsr e_t84oroo + jsr e_88tooro + jsr e_92otoo + jsr e_r96ooto + jsr e_100rooto + jsr e_104oroo + jsr e_t108ooro + jsr e_112tooo + jsr e_r116otoo + jsr e_120rooto + jmp e_124rooo ; Produce 160 rows from 64 rows expand_160: - jsr selectMip0 - ldy #2 - jsr e_t0oroo - jsr e_t4ooro - jsr e_8tooo - jsr e_r12otoo - jsr e_16rooto - jsr e_20oroo - jsr e_t24ooro - jsr e_28tooo - jsr e_r32otoo - jsr e_36rooto - jsr e_40oroo - jsr e_t44ooro - jsr e_48tooo - jsr e_r52otoo - jsr e_56rooto - jsr e_60oroo - jsr e_t64ooro - jsr e_68tooo - jsr e_r72otoo - jsr e_76rooto - jsr e_80oroo - jsr e_t84ooro - jsr e_88tooo - jsr e_r92otoo - jsr e_96rooto - jsr e_100oroo - jsr e_t104ooro - jsr e_108tooo - jsr e_r112otoo - jsr e_116rooto - jsr e_120oroo - iny - lda (pTex),y - bmi :+ - sta 124*BLIT_STRIDE + blitRoll,x -: jsr e_125oro - rts + jsr selectMip0 + ldy #2 + jsr e_t0oroo + jsr e_t4ooro + jsr e_8tooo + jsr e_r12otoo + jsr e_16rooto + jsr e_20oroo + jsr e_t24ooro + jsr e_28tooo + jsr e_r32otoo + jsr e_36rooto + jsr e_40oroo + jsr e_t44ooro + jsr e_48tooo + jsr e_r52otoo + jsr e_56rooto + jsr e_60oroo + jsr e_t64ooro + jsr e_68tooo + jsr e_r72otoo + jsr e_76rooto + jsr e_80oroo + jsr e_t84ooro + jsr e_88tooo + jsr e_r92otoo + jsr e_96rooto + jsr e_100oroo + jsr e_t104ooro + jsr e_108tooo + jsr e_r112otoo + jsr e_116rooto + jsr e_120oroo + iny + lda (pTex),y + bmi + + sta 124*BLIT_STRIDE + blitRoll,x ++ jsr e_125oro + rts ; Produce 164 rows from 64 rows expand_164: - jsr selectMip0 - ldy #2 - jsr e_tr0ooto - jsr e_4oroo - jsr e_t8ooro - jsr e_12tooo - jsr e_r16otoo - jsr e_20rooto - jsr e_24oroo - jsr e_28tooro - jsr e_32otoo - asl - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: jsr e_37oto - jsr e_40rooo - jsr e_t44ooro - jsr e_48tooo - jsr e_r52otoo - jsr e_56rooto - jsr e_60oroo - jsr e_t64ooro - jsr e_68otoo - jsr e_r72ooto - jsr e_76rooo - jsr e_t80oroo - jsr e_84tooo - jsr e_r88otoo - jsr e_92rooto - jsr e_96oroo - jsr e_t100ooro - jsr e_104tooo - jsr e_r108ooto - jsr e_112rooo - jsr e_t116oroo - jsr e_120tooro - jmp e_124otoo + jsr selectMip0 + ldy #2 + jsr e_tr0ooto + jsr e_4oroo + jsr e_t8ooro + jsr e_12tooo + jsr e_r16otoo + jsr e_20rooto + jsr e_24oroo + jsr e_28tooro + jsr e_32otoo + asl + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ jsr e_37oto + jsr e_40rooo + jsr e_t44ooro + jsr e_48tooo + jsr e_r52otoo + jsr e_56rooto + jsr e_60oroo + jsr e_t64ooro + jsr e_68otoo + jsr e_r72ooto + jsr e_76rooo + jsr e_t80oroo + jsr e_84tooo + jsr e_r88otoo + jsr e_92rooto + jsr e_96oroo + jsr e_t100ooro + jsr e_104tooo + jsr e_r108ooto + jsr e_112rooo + jsr e_t116oroo + jsr e_120tooro + jmp e_124otoo ; Produce 168 rows from 64 rows expand_168: - jsr selectMip0 - ldy #2 - jsr e_tr0otoo - jsr e_r4ooto - jsr e_8rooo - jsr e_t12ooro - jsr e_16tooo - jsr e_r20ooto - jsr e_24rooo - jsr e_t28oroo - jsr e_32tooo - jsr e_r36otoo - jsr e_40rooo - jsr e_t44oroo - jsr e_48tooro - jsr e_52otoo - jsr e_56rooto - jsr e_60oroo - jsr e_64tooro - jsr e_68otoo - jsr e_r72ooto - jsr e_76oroo - iny - lda (pTex),y - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x - sta 81*BLIT_STRIDE + blitRoll,x -: jsr e_82ro - jsr e_84otoo - asl - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x - sta 89*BLIT_STRIDE + blitRoll,x -: jsr e_90to - jsr e_92rooo - jsr e_t96ooro - jsr e_100tooo - jsr e_r104ooto - bmi :+ - sta 108*BLIT_STRIDE + blitRoll,x -: asl - jsr e_109oo - jsr e_t112oroo - jsr e_116tooo - jsr e_r120otoo - jmp e_124rooo + jsr selectMip0 + ldy #2 + jsr e_tr0otoo + jsr e_r4ooto + jsr e_8rooo + jsr e_t12ooro + jsr e_16tooo + jsr e_r20ooto + jsr e_24rooo + jsr e_t28oroo + jsr e_32tooo + jsr e_r36otoo + jsr e_40rooo + jsr e_t44oroo + jsr e_48tooro + jsr e_52otoo + jsr e_56rooto + jsr e_60oroo + jsr e_64tooro + jsr e_68otoo + jsr e_r72ooto + jsr e_76oroo + iny + lda (pTex),y + bmi + + sta 80*BLIT_STRIDE + blitRoll,x + sta 81*BLIT_STRIDE + blitRoll,x ++ jsr e_82ro + jsr e_84otoo + asl + bmi + + sta 88*BLIT_STRIDE + blitRoll,x + sta 89*BLIT_STRIDE + blitRoll,x ++ jsr e_90to + jsr e_92rooo + jsr e_t96ooro + jsr e_100tooo + jsr e_r104ooto + bmi + + sta 108*BLIT_STRIDE + blitRoll,x ++ asl + jsr e_109oo + jsr e_t112oroo + jsr e_116tooo + jsr e_r120otoo + jmp e_124rooo ; Produce 172 rows from 64 rows expand_172: - jsr selectMip0 - ldy #3 - jsr e_t0ooro - jsr e_4tooo - jsr e_r8ooto - jsr e_12rooo - jsr e_t16ooro - jsr e_20tooo - jsr e_r24ooto - jsr e_28oroo - jsr e_t32ooro - jsr e_36otoo - jsr e_r40ooto - jsr e_44oroo - jsr e_t48ooro - jsr e_52otoo - jsr e_r56ooto - jsr e_60oroo - jsr e_t64ooro - jsr e_68otoo - jsr e_72rooto - jsr e_76oroo - jsr e_80tooro - jsr e_84otoo - jsr e_88rooto - jsr e_92oroo - jsr e_96tooro - jsr e_100otoo - jsr e_104rooto - jsr e_108oroo - jsr e_112tooo - jsr e_r116otoo - jsr e_120rooo - jmp e_t124oroo + jsr selectMip0 + ldy #3 + jsr e_t0ooro + jsr e_4tooo + jsr e_r8ooto + jsr e_12rooo + jsr e_t16ooro + jsr e_20tooo + jsr e_r24ooto + jsr e_28oroo + jsr e_t32ooro + jsr e_36otoo + jsr e_r40ooto + jsr e_44oroo + jsr e_t48ooro + jsr e_52otoo + jsr e_r56ooto + jsr e_60oroo + jsr e_t64ooro + jsr e_68otoo + jsr e_72rooto + jsr e_76oroo + jsr e_80tooro + jsr e_84otoo + jsr e_88rooto + jsr e_92oroo + jsr e_96tooro + jsr e_100otoo + jsr e_104rooto + jsr e_108oroo + jsr e_112tooo + jsr e_r116otoo + jsr e_120rooo + jmp e_t124oroo ; Produce 176 rows from 64 rows expand_176: - jsr selectMip0 - ldy #3 - jsr e_t0rooo - jsr e_t4ooro - jsr e_8otoo - asl - jsr e_12ooto - jsr e_16oroo - jsr e_20tooro - jsr e_24otoo - jsr e_28rooo - jsr e_t32oroo - jsr e_36tooo - jsr e_r40ooto - jsr e_44rooo - jsr e_t48ooro - jsr e_52otoo - jsr e_r56ooto - jsr e_60oroo - jsr e_64tooro - jsr e_68otoo - jsr e_72rooo - jsr e_t76oroo - jsr e_80tooo - jsr e_r84ooto - jsr e_88rooo - jsr e_t92ooro - jsr e_96otoo - jsr e_r100ooto - jsr e_104oroo - jsr e_108tooro - jsr e_112otoo - jsr e_116rooo - jsr e_t120oroo - jmp e_124tooo + jsr selectMip0 + ldy #3 + jsr e_t0rooo + jsr e_t4ooro + jsr e_8otoo + asl + jsr e_12ooto + jsr e_16oroo + jsr e_20tooro + jsr e_24otoo + jsr e_28rooo + jsr e_t32oroo + jsr e_36tooo + jsr e_r40ooto + jsr e_44rooo + jsr e_t48ooro + jsr e_52otoo + jsr e_r56ooto + jsr e_60oroo + jsr e_64tooro + jsr e_68otoo + jsr e_72rooo + jsr e_t76oroo + jsr e_80tooo + jsr e_r84ooto + jsr e_88rooo + jsr e_t92ooro + jsr e_96otoo + jsr e_r100ooto + jsr e_104oroo + jsr e_108tooro + jsr e_112otoo + jsr e_116rooo + jsr e_t120oroo + jmp e_124tooo ; Produce 180 rows from 64 rows expand_180: - jsr selectMip0 - ldy #3 - jsr e_tr0ooto - jsr e_4rooo - jsr e_t8ooro - jsr e_12otoo - jsr e_16rooo - jsr e_t20oroo - jsr e_24tooo - asl - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x - sta 29*BLIT_STRIDE + blitRoll,x -: jsr e_30to - jsr e_32oroo - jsr e_t36ooro - jsr e_40otoo - jsr e_44rooo - jsr e_t48oroo - jsr e_52tooo - jsr e_r56ooto - jsr e_60oroo - jsr e_64tooro - jsr e_68otoo - jsr e_72rooo - jsr e_t76ooro - jsr e_80tooo - jsr e_r84ooto - jsr e_88oroo - jsr e_92tooro - jsr e_96otoo - jsr e_100rooo - jsr e_t104ooro - jsr e_108otoo - jsr e_r112ooto - jsr e_116oroo - jsr e_120tooo - jmp e_r124otoo + jsr selectMip0 + ldy #3 + jsr e_tr0ooto + jsr e_4rooo + jsr e_t8ooro + jsr e_12otoo + jsr e_16rooo + jsr e_t20oroo + jsr e_24tooo + asl + bmi + + sta 28*BLIT_STRIDE + blitRoll,x + sta 29*BLIT_STRIDE + blitRoll,x ++ jsr e_30to + jsr e_32oroo + jsr e_t36ooro + jsr e_40otoo + jsr e_44rooo + jsr e_t48oroo + jsr e_52tooo + jsr e_r56ooto + jsr e_60oroo + jsr e_64tooro + jsr e_68otoo + jsr e_72rooo + jsr e_t76ooro + jsr e_80tooo + jsr e_r84ooto + jsr e_88oroo + jsr e_92tooro + jsr e_96otoo + jsr e_100rooo + jsr e_t104ooro + jsr e_108otoo + jsr e_r112ooto + jsr e_116oroo + jsr e_120tooo + jmp e_r124otoo ; Produce 184 rows from 64 rows expand_184: - jsr selectMip0 - ldy #3 - jsr e_tr0tooo - jsr e_r4ooto - jsr e_8oroo - jsr e_12tooo - jsr e_r16otoo - jsr e_20rooo - jsr e_t24ooro - jsr e_28otoo - jsr e_32rooo - jsr e_t36ooro - jsr e_40tooo - jsr e_r44ooto - jsr e_48oroo - jsr e_52tooo - jsr e_r56ooto - jsr e_60oroo - jsr e_t64ooro - jsr e_68otoo - jsr e_72rooo - jsr e_t76ooro - jsr e_80otoo - jsr e_84rooto - jsr e_88oroo - jsr e_92tooo - jsr e_r96ooto - jsr e_100oroo - jsr e_104tooo - jsr e_r108otoo - jsr e_112rooo - iny - lda (pTex),y - jsr e_116ooro - jsr e_120otoo - jmp e_124rooo + jsr selectMip0 + ldy #3 + jsr e_tr0tooo + jsr e_r4ooto + jsr e_8oroo + jsr e_12tooo + jsr e_r16otoo + jsr e_20rooo + jsr e_t24ooro + jsr e_28otoo + jsr e_32rooo + jsr e_t36ooro + jsr e_40tooo + jsr e_r44ooto + jsr e_48oroo + jsr e_52tooo + jsr e_r56ooto + jsr e_60oroo + jsr e_t64ooro + jsr e_68otoo + jsr e_72rooo + jsr e_t76ooro + jsr e_80otoo + jsr e_84rooto + jsr e_88oroo + jsr e_92tooo + jsr e_r96ooto + jsr e_100oroo + jsr e_104tooo + jsr e_r108otoo + jsr e_112rooo + iny + lda (pTex),y + jsr e_116ooro + jsr e_120otoo + jmp e_124rooo ; Produce 188 rows from 64 rows expand_188: - jsr selectMip0 - ldy #4 - jsr e_t0ooro - jsr e_4otoo - jsr e_8rooo - jsr e_t12ooro - jsr e_16tooo - jsr e_r20ooto - jsr e_24oroo - jsr e_28tooo - jsr e_r32ooto - jsr e_36oroo - jsr e_40tooo - jsr e_r44ooto - jsr e_48oroo - jsr e_52tooo - jsr e_r56ooto - jsr e_60oroo - jsr e_t64ooro - jsr e_68otoo - jsr e_72rooo - jsr e_t76ooro - jsr e_80otoo - jsr e_84rooo - jsr e_t88ooro - jsr e_92otoo - jsr e_96rooo - jsr e_t100ooro - jsr e_104otoo - jsr e_108rooto - jsr e_112oroo - jsr e_116tooo - jsr e_r120ooto - jmp e_124oroo + jsr selectMip0 + ldy #4 + jsr e_t0ooro + jsr e_4otoo + jsr e_8rooo + jsr e_t12ooro + jsr e_16tooo + jsr e_r20ooto + jsr e_24oroo + jsr e_28tooo + jsr e_r32ooto + jsr e_36oroo + jsr e_40tooo + jsr e_r44ooto + jsr e_48oroo + jsr e_52tooo + jsr e_r56ooto + jsr e_60oroo + jsr e_t64ooro + jsr e_68otoo + jsr e_72rooo + jsr e_t76ooro + jsr e_80otoo + jsr e_84rooo + jsr e_t88ooro + jsr e_92otoo + jsr e_96rooo + jsr e_t100ooro + jsr e_104otoo + jsr e_108rooto + jsr e_112oroo + jsr e_116tooo + jsr e_r120ooto + jmp e_124oroo ; Produce 192 rows from 64 rows expand_192: - jsr selectMip0 - ldy #4 - jsr e_t0oroo - jsr e_4tooo - jsr e_r8ooto - jsr e_12oroo - jsr e_16tooo - jsr e_r20ooto - jsr e_24oroo - jsr e_28tooo - jsr e_r32ooto - jsr e_36oroo - jsr e_40tooo - jsr e_r44ooto - jsr e_48oroo - jsr e_52tooo - jsr e_r56ooto - jsr e_60oroo - jsr e_64tooo - jsr e_r68ooto - jsr e_72oroo - jsr e_76tooo - jsr e_r80ooto - jsr e_84oroo - jsr e_88tooo - jsr e_r92ooto - jsr e_96oroo - jsr e_100tooo - jsr e_r104ooto - jsr e_108oroo - jsr e_112tooo - jsr e_r116ooto - jsr e_120oroo - jmp e_124tooo + jsr selectMip0 + ldy #4 + jsr e_t0oroo + jsr e_4tooo + jsr e_r8ooto + jsr e_12oroo + jsr e_16tooo + jsr e_r20ooto + jsr e_24oroo + jsr e_28tooo + jsr e_r32ooto + jsr e_36oroo + jsr e_40tooo + jsr e_r44ooto + jsr e_48oroo + jsr e_52tooo + jsr e_r56ooto + jsr e_60oroo + jsr e_64tooo + jsr e_r68ooto + jsr e_72oroo + jsr e_76tooo + jsr e_r80ooto + jsr e_84oroo + jsr e_88tooo + jsr e_r92ooto + jsr e_96oroo + jsr e_100tooo + jsr e_r104ooto + jsr e_108oroo + jsr e_112tooo + jsr e_r116ooto + jsr e_120oroo + jmp e_124tooo ; Produce 200 rows from 64 rows expand_200: - jsr selectMip0 - ldy #4 - jsr e_tr0otoo - jsr e_4rooo - jsr e_t8ooro - jsr e_12ooto - jsr e_16oroo - jsr e_20tooo - jsr e_r24ooto - jsr e_28oroo - jsr e_32tooo - asl - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: jsr e_37oo - jsr e_t40ooro - jsr e_44otoo - jsr e_48rooo - iny - lda (pTex),y - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: jsr e_53oro - jsr e_56otoo - jsr e_60rooo - jsr e_64tooo - jsr e_r68ooto - jsr e_72oroo - jsr e_76tooo - jsr e_r80ooto - jsr e_84oroo - jsr e_88otoo - jsr e_92rooo - jsr e_t96ooro - jsr e_100otoo - jsr e_104rooo - jsr e_t108ooro - bmi :+ - sta 112*BLIT_STRIDE + blitRoll,x -: jsr e_113oto - jsr e_116oroo - jsr e_120tooo - asl - bmi :+ - sta 124*BLIT_STRIDE + blitRoll,x - sta 125*BLIT_STRIDE + blitRoll,x - sta 126*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 127*BLIT_STRIDE + blitRoll,x -: - rts + jsr selectMip0 + ldy #4 + jsr e_tr0otoo + jsr e_4rooo + jsr e_t8ooro + jsr e_12ooto + jsr e_16oroo + jsr e_20tooo + jsr e_r24ooto + jsr e_28oroo + jsr e_32tooo + asl + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ jsr e_37oo + jsr e_t40ooro + jsr e_44otoo + jsr e_48rooo + iny + lda (pTex),y + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ jsr e_53oro + jsr e_56otoo + jsr e_60rooo + jsr e_64tooo + jsr e_r68ooto + jsr e_72oroo + jsr e_76tooo + jsr e_r80ooto + jsr e_84oroo + jsr e_88otoo + jsr e_92rooo + jsr e_t96ooro + jsr e_100otoo + jsr e_104rooo + jsr e_t108ooro + bmi + + sta 112*BLIT_STRIDE + blitRoll,x ++ jsr e_113oto + jsr e_116oroo + jsr e_120tooo + asl + bmi + + sta 124*BLIT_STRIDE + blitRoll,x + sta 125*BLIT_STRIDE + blitRoll,x + sta 126*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 127*BLIT_STRIDE + blitRoll,x ++ + rts ; Produce 208 rows from 64 rows expand_208: - jsr selectMip0 - ldy #5 - jsr e_t0ooro - jsr e_4otoo - jsr e_8rooo - jsr e_t12ooo - jsr e_r16ooto - jsr e_20oroo - jsr e_24tooo - jsr e_28rooo - jsr e_t32ooro - jsr e_36otoo - jsr e_40oroo - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - jsr e_45oo - jsr e_r48ooto - bmi :+ - sta 52*BLIT_STRIDE + blitRoll,x -: jsr e_53oro - jsr e_56otoo - jsr e_60rooo - jsr e_t64ooo - jsr e_r68ooto - jsr e_72oroo - jsr e_76tooo - jsr e_80rooo - jsr e_t84ooro - jsr e_88otoo - jsr e_92oroo - jsr e_96tooo - jsr e_r100ooto - jsr e_104ooro - jsr e_108otoo - jsr e_112rooo - iny - lda (pTex),y - bmi :+ - sta 116*BLIT_STRIDE + blitRoll,x -: jsr e_117oo - jsr e_r120ooto - jmp e_124oroo + jsr selectMip0 + ldy #5 + jsr e_t0ooro + jsr e_4otoo + jsr e_8rooo + jsr e_t12ooo + jsr e_r16ooto + jsr e_20oroo + jsr e_24tooo + jsr e_28rooo + jsr e_t32ooro + jsr e_36otoo + jsr e_40oroo + bmi + + sta 44*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + jsr e_45oo + jsr e_r48ooto + bmi + + sta 52*BLIT_STRIDE + blitRoll,x ++ jsr e_53oro + jsr e_56otoo + jsr e_60rooo + jsr e_t64ooo + jsr e_r68ooto + jsr e_72oroo + jsr e_76tooo + jsr e_80rooo + jsr e_t84ooro + jsr e_88otoo + jsr e_92oroo + jsr e_96tooo + jsr e_r100ooto + jsr e_104ooro + jsr e_108otoo + jsr e_112rooo + iny + lda (pTex),y + bmi + + sta 116*BLIT_STRIDE + blitRoll,x ++ jsr e_117oo + jsr e_r120ooto + jmp e_124oroo ; Produce 216 rows from 64 rows expand_216: - jsr selectMip0 - ldy #5 - iny - lda (pTex),y - asl - bmi :+ - sta 0*BLIT_STRIDE + blitRoll,x -: jsr e_1oo - jsr e_t4ooro - jsr e_8ooto - jsr e_12oroo - jsr e_16tooo - jsr e_20rooo - jsr e_t24ooro - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x - sta 29*BLIT_STRIDE + blitRoll,x -: jsr e_30to - jsr e_32oroo - jsr e_36otoo - jsr e_40rooo - iny - lda (pTex),y - bmi :+ - sta 44*BLIT_STRIDE + blitRoll,x -: jsr e_45oo - jsr e_r48ooto - jsr e_52oroo - jsr e_56otoo - jsr e_60rooo - jsr e_64tooo - jsr e_r68ooto - bmi :+ - sta 72*BLIT_STRIDE + blitRoll,x - sta 73*BLIT_STRIDE + blitRoll,x -: jsr e_74ro - jsr e_76otoo - jsr e_80rooo - jsr e_84tooo - jsr e_r88ooo - jsr e_t92ooro - jsr e_96otoo - jsr e_100oroo - jsr e_104tooo - jsr e_r108ooo - iny - lda (pTex),y - bmi :+ - sta 112*BLIT_STRIDE + blitRoll,x -: jsr e_113oro - jsr e_116ooto - jsr e_120oroo - jmp e_124tooo + jsr selectMip0 + ldy #5 + iny + lda (pTex),y + asl + bmi + + sta 0*BLIT_STRIDE + blitRoll,x ++ jsr e_1oo + jsr e_t4ooro + jsr e_8ooto + jsr e_12oroo + jsr e_16tooo + jsr e_20rooo + jsr e_t24ooro + bmi + + sta 28*BLIT_STRIDE + blitRoll,x + sta 29*BLIT_STRIDE + blitRoll,x ++ jsr e_30to + jsr e_32oroo + jsr e_36otoo + jsr e_40rooo + iny + lda (pTex),y + bmi + + sta 44*BLIT_STRIDE + blitRoll,x ++ jsr e_45oo + jsr e_r48ooto + jsr e_52oroo + jsr e_56otoo + jsr e_60rooo + jsr e_64tooo + jsr e_r68ooto + bmi + + sta 72*BLIT_STRIDE + blitRoll,x + sta 73*BLIT_STRIDE + blitRoll,x ++ jsr e_74ro + jsr e_76otoo + jsr e_80rooo + jsr e_84tooo + jsr e_r88ooo + jsr e_t92ooro + jsr e_96otoo + jsr e_100oroo + jsr e_104tooo + jsr e_r108ooo + iny + lda (pTex),y + bmi + + sta 112*BLIT_STRIDE + blitRoll,x ++ jsr e_113oro + jsr e_116ooto + jsr e_120oroo + jmp e_124tooo ; Produce 224 rows from 64 rows expand_224: - jsr selectMip0 - ldy #5 - jsr e_tr0otoo - jsr e_4rooo - jsr e_8tooo - jsr e_r12ooo - jsr e_t16ooro - bmi :+ - sta 20*BLIT_STRIDE + blitRoll,x -: jsr e_21oto - jsr e_24oroo - jsr e_28otoo - jsr e_32rooo - jsr e_36tooo - asl - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: jsr e_41oo - jsr e_t44ooro - bmi :+ - sta 48*BLIT_STRIDE + blitRoll,x - sta 49*BLIT_STRIDE + blitRoll,x -: jsr e_50to - jsr e_52oroo - jsr e_56otoo - jsr e_60rooo - jsr e_64tooo - jsr e_r68ooo - jsr e_t72ooro - jsr e_76ooto - jsr e_80oroo - jsr e_84otoo - jsr e_88rooo - jsr e_92tooo - asl - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x -: jsr e_97oo - jsr e_t100ooro - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: jsr e_105oto - jsr e_108oroo - jsr e_112otoo - jsr e_116rooo - jsr e_120tooo - jmp e_r124ooo + jsr selectMip0 + ldy #5 + jsr e_tr0otoo + jsr e_4rooo + jsr e_8tooo + jsr e_r12ooo + jsr e_t16ooro + bmi + + sta 20*BLIT_STRIDE + blitRoll,x ++ jsr e_21oto + jsr e_24oroo + jsr e_28otoo + jsr e_32rooo + jsr e_36tooo + asl + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ jsr e_41oo + jsr e_t44ooro + bmi + + sta 48*BLIT_STRIDE + blitRoll,x + sta 49*BLIT_STRIDE + blitRoll,x ++ jsr e_50to + jsr e_52oroo + jsr e_56otoo + jsr e_60rooo + jsr e_64tooo + jsr e_r68ooo + jsr e_t72ooro + jsr e_76ooto + jsr e_80oroo + jsr e_84otoo + jsr e_88rooo + jsr e_92tooo + asl + bmi + + sta 96*BLIT_STRIDE + blitRoll,x ++ jsr e_97oo + jsr e_t100ooro + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ jsr e_105oto + jsr e_108oroo + jsr e_112otoo + jsr e_116rooo + jsr e_120tooo + jmp e_r124ooo ; Produce 232 rows from 64 rows expand_232: - jsr selectMip0 - ldy #6 - jsr e_t0ooro - jsr e_4otoo - jsr e_8oroo - jsr e_12otoo - jsr e_16rooo - jsr e_20tooo - jsr e_24rooo - iny - lda (pTex),y - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x -: jsr e_29oo - jsr e_r32ooto - bmi :+ - sta 36*BLIT_STRIDE + blitRoll,x -: jsr e_37oro - bmi :+ - sta 40*BLIT_STRIDE + blitRoll,x -: jsr e_41oto - jsr e_44oroo - jsr e_48otoo - jsr e_52oroo - jsr e_56tooo - jsr e_60rooo - jsr e_t64ooo - jsr e_r68ooo - jsr e_t72ooro - jsr e_76ooto - jsr e_80ooro - jsr e_84otoo - jsr e_88oroo - jsr e_92tooo - jsr e_96rooo - jsr e_100tooo - asl - bmi :+ - sta 104*BLIT_STRIDE + blitRoll,x -: jsr e_105oo - iny - lda (pTex),y - jsr e_108ooo - jsr e_r112ooto - jsr e_116ooro - jsr e_120otoo - jmp e_124oroo + jsr selectMip0 + ldy #6 + jsr e_t0ooro + jsr e_4otoo + jsr e_8oroo + jsr e_12otoo + jsr e_16rooo + jsr e_20tooo + jsr e_24rooo + iny + lda (pTex),y + bmi + + sta 28*BLIT_STRIDE + blitRoll,x ++ jsr e_29oo + jsr e_r32ooto + bmi + + sta 36*BLIT_STRIDE + blitRoll,x ++ jsr e_37oro + bmi + + sta 40*BLIT_STRIDE + blitRoll,x ++ jsr e_41oto + jsr e_44oroo + jsr e_48otoo + jsr e_52oroo + jsr e_56tooo + jsr e_60rooo + jsr e_t64ooo + jsr e_r68ooo + jsr e_t72ooro + jsr e_76ooto + jsr e_80ooro + jsr e_84otoo + jsr e_88oroo + jsr e_92tooo + jsr e_96rooo + jsr e_100tooo + asl + bmi + + sta 104*BLIT_STRIDE + blitRoll,x ++ jsr e_105oo + iny + lda (pTex),y + jsr e_108ooo + jsr e_r112ooto + jsr e_116ooro + jsr e_120otoo + jmp e_124oroo ; Produce 240 rows from 64 rows expand_240: - jsr selectMip0 - ldy #6 - jsr e_t0rooo - iny - lda (pTex),y - bmi :+ - sta 4*BLIT_STRIDE + blitRoll,x -: jsr e_5oo - asl - bmi :+ - sta 8*BLIT_STRIDE + blitRoll,x -: jsr e_9oo - jsr e_t12ooo - jsr e_r16ooto - bmi :+ - sta 20*BLIT_STRIDE + blitRoll,x -: jsr e_21oro - bmi :+ - sta 24*BLIT_STRIDE + blitRoll,x -: jsr e_25oto - bmi :+ - sta 28*BLIT_STRIDE + blitRoll,x -: jsr e_29oro - jsr e_32otoo - jsr e_36oroo - jsr e_40otoo - jsr e_44oroo - jsr e_48tooo - jsr e_52rooo - jsr e_56tooo - jsr e_60rooo - jsr e_t64ooo - jsr e_r68ooo - jsr e_t72ooo - jsr e_r76ooto - jsr e_80ooro - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x - sta 85*BLIT_STRIDE + blitRoll,x -: jsr e_86to - bmi :+ - sta 88*BLIT_STRIDE + blitRoll,x -: jsr e_89oro - jsr e_92otoo - jsr e_96oroo - jsr e_100otoo - jsr e_104oroo - jsr e_108tooo - jsr e_112rooo - jsr e_116tooo - jsr e_120rooo - iny - lda (pTex),y - jsr e_124ooo - rts + jsr selectMip0 + ldy #6 + jsr e_t0rooo + iny + lda (pTex),y + bmi + + sta 4*BLIT_STRIDE + blitRoll,x ++ jsr e_5oo + asl + bmi + + sta 8*BLIT_STRIDE + blitRoll,x ++ jsr e_9oo + jsr e_t12ooo + jsr e_r16ooto + bmi + + sta 20*BLIT_STRIDE + blitRoll,x ++ jsr e_21oro + bmi + + sta 24*BLIT_STRIDE + blitRoll,x ++ jsr e_25oto + bmi + + sta 28*BLIT_STRIDE + blitRoll,x ++ jsr e_29oro + jsr e_32otoo + jsr e_36oroo + jsr e_40otoo + jsr e_44oroo + jsr e_48tooo + jsr e_52rooo + jsr e_56tooo + jsr e_60rooo + jsr e_t64ooo + jsr e_r68ooo + jsr e_t72ooo + jsr e_r76ooto + jsr e_80ooro + bmi + + sta 84*BLIT_STRIDE + blitRoll,x + sta 85*BLIT_STRIDE + blitRoll,x ++ jsr e_86to + bmi + + sta 88*BLIT_STRIDE + blitRoll,x ++ jsr e_89oro + jsr e_92otoo + jsr e_96oroo + jsr e_100otoo + jsr e_104oroo + jsr e_108tooo + jsr e_112rooo + jsr e_116tooo + jsr e_120rooo + iny + lda (pTex),y + jsr e_124ooo + rts ; Produce 248 rows from 64 rows expand_248: - jsr selectMip0 - ldy #6 - jsr e_tr0otoo - jsr e_4oroo - jsr e_8otoo - jsr e_12oroo - jsr e_16otoo - jsr e_20oroo - jsr e_24otoo - jsr e_28oroo - jsr e_32tooo - jsr e_36rooo - jsr e_40tooo - jsr e_44rooo - jsr e_48tooo - jsr e_52rooo - jsr e_56tooo - jsr e_60rooo - jsr e_t64ooo - jsr e_r68ooo - jsr e_t72ooo - asl - bmi :+ - sta 76*BLIT_STRIDE + blitRoll,x -: jsr e_77oo - iny - lda (pTex),y - bmi :+ - sta 80*BLIT_STRIDE + blitRoll,x -: jsr e_81oo - asl - bmi :+ - sta 84*BLIT_STRIDE + blitRoll,x -: jsr e_85oo - iny - lda (pTex),y - jsr e_88ooo - jsr e_r92ooto - bmi :+ - sta 96*BLIT_STRIDE + blitRoll,x - sta 97*BLIT_STRIDE + blitRoll,x -: jsr e_98ro - bmi :+ - sta 100*BLIT_STRIDE + blitRoll,x -: jsr e_101oto - jsr e_104ooro - bmi :+ - sta 108*BLIT_STRIDE + blitRoll,x -: jsr e_109oto - bmi :+ - sta 112*BLIT_STRIDE + blitRoll,x -: jsr e_113oro - jsr e_116ooto - jsr e_120ooro - jmp e_124otoo + jsr selectMip0 + ldy #6 + jsr e_tr0otoo + jsr e_4oroo + jsr e_8otoo + jsr e_12oroo + jsr e_16otoo + jsr e_20oroo + jsr e_24otoo + jsr e_28oroo + jsr e_32tooo + jsr e_36rooo + jsr e_40tooo + jsr e_44rooo + jsr e_48tooo + jsr e_52rooo + jsr e_56tooo + jsr e_60rooo + jsr e_t64ooo + jsr e_r68ooo + jsr e_t72ooo + asl + bmi + + sta 76*BLIT_STRIDE + blitRoll,x ++ jsr e_77oo + iny + lda (pTex),y + bmi + + sta 80*BLIT_STRIDE + blitRoll,x ++ jsr e_81oo + asl + bmi + + sta 84*BLIT_STRIDE + blitRoll,x ++ jsr e_85oo + iny + lda (pTex),y + jsr e_88ooo + jsr e_r92ooto + bmi + + sta 96*BLIT_STRIDE + blitRoll,x + sta 97*BLIT_STRIDE + blitRoll,x ++ jsr e_98ro + bmi + + sta 100*BLIT_STRIDE + blitRoll,x ++ jsr e_101oto + jsr e_104ooro + bmi + + sta 108*BLIT_STRIDE + blitRoll,x ++ jsr e_109oto + bmi + + sta 112*BLIT_STRIDE + blitRoll,x ++ jsr e_113oro + jsr e_116ooto + jsr e_120ooro + jmp e_124otoo e_60rooo: - bmi :+ - sta 60*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 61*BLIT_STRIDE + blitRoll,x - sta 62*BLIT_STRIDE + blitRoll,x - sta 63*BLIT_STRIDE + blitRoll,x -: rts + bmi + + sta 60*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 61*BLIT_STRIDE + blitRoll,x + sta 62*BLIT_STRIDE + blitRoll,x + sta 63*BLIT_STRIDE + blitRoll,x ++ rts e_t0oroo: - iny - lda (pTex),y - bmi :+ - sta 0*BLIT_STRIDE + blitRoll,x - sta 1*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 2*BLIT_STRIDE + blitRoll,x - sta 3*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 0*BLIT_STRIDE + blitRoll,x + sta 1*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 2*BLIT_STRIDE + blitRoll,x + sta 3*BLIT_STRIDE + blitRoll,x ++ rts e_t64oroto: - iny - lda (pTex),y - bmi :+ - sta 64*BLIT_STRIDE + blitRoll,x - sta 65*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 66*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 67*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 64*BLIT_STRIDE + blitRoll,x + sta 65*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 66*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 67*BLIT_STRIDE + blitRoll,x ++ rts e_r116otoo: - asl - bmi :+ - sta 116*BLIT_STRIDE + blitRoll,x - sta 117*BLIT_STRIDE + blitRoll,x -: iny - lda (pTex),y - bmi :+ - sta 118*BLIT_STRIDE + blitRoll,x - sta 119*BLIT_STRIDE + blitRoll,x -: rts + asl + bmi + + sta 116*BLIT_STRIDE + blitRoll,x + sta 117*BLIT_STRIDE + blitRoll,x ++ iny + lda (pTex),y + bmi + + sta 118*BLIT_STRIDE + blitRoll,x + sta 119*BLIT_STRIDE + blitRoll,x ++ rts e_t64oroo: - iny - lda (pTex),y - bmi :+ - sta 64*BLIT_STRIDE + blitRoll,x - sta 65*BLIT_STRIDE + blitRoll,x -: asl - bmi :+ - sta 66*BLIT_STRIDE + blitRoll,x - sta 67*BLIT_STRIDE + blitRoll,x -: rts + iny + lda (pTex),y + bmi + + sta 64*BLIT_STRIDE + blitRoll,x + sta 65*BLIT_STRIDE + blitRoll,x ++ asl + bmi + + sta 66*BLIT_STRIDE + blitRoll,x + sta 67*BLIT_STRIDE + blitRoll,x ++ rts diff --git a/Platform/Apple/virtual/src/raycast/expand_hdr.i b/Platform/Apple/virtual/src/raycast/expand_hdr.i index 5ffdc67d..d4e87199 100644 --- a/Platform/Apple/virtual/src/raycast/expand_hdr.i +++ b/Platform/Apple/virtual/src/raycast/expand_hdr.i @@ -1,100 +1,100 @@ - + ; Select mipmap level 0 (64x64 pixels = 32x32 bytes) selectMip0: - ; pTex is already pointing at level 0, no need to adjust its level. - ; However, we do need to move it to the correct column. Currently txColumn - ; is 0..255 pixels, which we need to translate to 0..31 columns; that's - ; a divide by 8. But then we need to multiply by 32 bytes per column, - ; so (1/8)*32 = 4, so we need to multiply by 4 after masking. - lda #0 - sta tmp - lda txColumn - and #$F8 ; retain upper 5 bits - asl - rol tmp ; multiplied by 2 - asl - rol tmp ; multiplied by 4 - ldy tmp + ; pTex is already pointing at level 0, no need to adjust its level. + ; However, we do need to move it to the correct column. Currently txColumn + ; is 0..255 pixels, which we need to translate to 0..31 columns; that's + ; a divide by 8. But then we need to multiply by 32 bytes per column, + ; so (1/8)*32 = 4, so we need to multiply by 4 after masking. + lda #0 + sta tmp + lda txColumn + and #$F8 ; retain upper 5 bits + asl + rol tmp ; multiplied by 2 + asl + rol tmp ; multiplied by 4 + ldy tmp mipReady: - clc ; adjust pTex by that much - adc pTex - sta pTex - tya - adc pTex+1 - sta pTex+1 - ldy pixNum ; get offset into the blit roll for this column - ldx @blitOffsets,y - ldy #$FF ; default to copying from top of column (will be 0 after initial INY in unrolled code) - clv ; so code can use BVC to branch always without BRA - rts -@blitOffsets: .byte BLIT_OFF0,BLIT_OFF1,BLIT_OFF2,BLIT_OFF3,BLIT_OFF4,BLIT_OFF5,BLIT_OFF6 + clc ; adjust pTex by that much + adc pTex + sta pTex + tya + adc pTex+1 + sta pTex+1 + ldy pixNum ; get offset into the blit roll for this column + ldx .blitOffsets,y + ldy #$FF ; default to copying from top of column (will be 0 after initial INY in unrolled code) + clv ; so code can use BVC to branch always without BRA + rts +.blitOffsets: !byte BLIT_OFF0,BLIT_OFF1,BLIT_OFF2,BLIT_OFF3,BLIT_OFF4,BLIT_OFF5,BLIT_OFF6 ; Select mipmap level 0 (32x32 pixels = 16x16 bytes) selectMip1: - ; pTex is pointing at level 0, so we need to move it to level 1. - ; Then we need to move it to the correct column. Currently txColumn - ; is 0..255 pixels, which we need to translate to 0..15 columns; that's - ; a divide by 16. But then we need to multiply by 16 bytes per column, - ; so (1/16)*16 = 1 ==> no multiply needed. - lda txColumn - and #$F0 ; retain upper 4 bits - ldy #>MIP_OFFSET_1 ; adjust to mip level 1 - bne mipReady ; always taken + ; pTex is pointing at level 0, so we need to move it to level 1. + ; Then we need to move it to the correct column. Currently txColumn + ; is 0..255 pixels, which we need to translate to 0..15 columns; that's + ; a divide by 16. But then we need to multiply by 16 bytes per column, + ; so (1/16)*16 = 1 ==> no multiply needed. + lda txColumn + and #$F0 ; retain upper 4 bits + ldy #>MIP_OFFSET_1 ; adjust to mip level 1 + bne mipReady ; always taken ; Select mipmap level 2 (16x16 pixels = 8x8 bytes) selectMip2: - ; pTex is pointing at level 0, so we need to move it to level 2. - ; Then we need to move it to the correct column. Currently txColumn - ; is 0..255 pixels, which we need to translate to 0..8 columns; that's - ; a divide by 32. But then we need to multiply by 8 bytes per column, - ; so (1/32)*8 = 1/4 ==> overall we need to divide by 4. - lda txColumn - and #$E0 ; retain upper 3 bits - lsr ; div by 2 - lsr ; div by 4 - ; no need to add #MIP_OFFSET_2 ; adjust to mip level 2 - bne mipReady ; always taken + ; pTex is pointing at level 0, so we need to move it to level 2. + ; Then we need to move it to the correct column. Currently txColumn + ; is 0..255 pixels, which we need to translate to 0..8 columns; that's + ; a divide by 32. But then we need to multiply by 8 bytes per column, + ; so (1/32)*8 = 1/4 ==> overall we need to divide by 4. + lda txColumn + and #$E0 ; retain upper 3 bits + lsr ; div by 2 + lsr ; div by 4 + ; no need to add #MIP_OFFSET_2 ; adjust to mip level 2 + bne mipReady ; always taken ; Select mipmap level 3 (8x8 pixels = 4x4 bytes) selectMip3: - ; pTex is pointing at level 0, so we need to move it to level 3. - ; Then we need to move it to the correct column. Currently txColumn - ; is 0..255 pixels, which we need to translate to 0..3 columns; that's - ; a divide by 64. But then we need to multiply by 4 bytes per column, - ; so (1/64)*4 = 1/16 ==> overall we need to divide by 16. - lda txColumn - and #$C0 ; retain upper 2 bits - lsr ; div by 2 - lsr ; div by 4 - lsr ; div by 8 - lsr ; div by 16 - clc - adc #MIP_OFFSET_3 ; adjust to mip level 3 - bne mipReady ; always taken + ; pTex is pointing at level 0, so we need to move it to level 3. + ; Then we need to move it to the correct column. Currently txColumn + ; is 0..255 pixels, which we need to translate to 0..3 columns; that's + ; a divide by 64. But then we need to multiply by 4 bytes per column, + ; so (1/64)*4 = 1/16 ==> overall we need to divide by 16. + lda txColumn + and #$C0 ; retain upper 2 bits + lsr ; div by 2 + lsr ; div by 4 + lsr ; div by 8 + lsr ; div by 16 + clc + adc #MIP_OFFSET_3 ; adjust to mip level 3 + bne mipReady ; always taken ; Select mipmap level 4 (4x4 pixels = 2x2 bytes) selectMip4: - ; pTex is pointing at level 0, so we need to move it to level 4. - ; Then we need to move it to the correct column. Currently txColumn - ; is 0..255 pixels, which we need to translate to 0..1 columns; that's - ; a divide by 128. But then we need to multiply by 2 bytes per column, - ; so (1/128)*2 = 1/64 ==> overall we need to divide by 64 - lda txColumn - and #$80 ; retain the high bit - beq :+ ; if not set, result should be zero - lda #64 ; else result should be 64 -: clc - adc #MIP_OFFSET_4 ; adjust to mip level 4 - bne mipReady ; always taken + ; pTex is pointing at level 0, so we need to move it to level 4. + ; Then we need to move it to the correct column. Currently txColumn + ; is 0..255 pixels, which we need to translate to 0..1 columns; that's + ; a divide by 128. But then we need to multiply by 2 bytes per column, + ; so (1/128)*2 = 1/64 ==> overall we need to divide by 64 + lda txColumn + and #$80 ; retain the high bit + beq + ; if not set, result should be zero + lda #64 ; else result should be 64 ++ clc + adc #MIP_OFFSET_4 ; adjust to mip level 4 + bne mipReady ; always taken ; Select mipmap level 5 (2x2 pixels = 1x1 bytes) selectMip5: - ; Mip level 5 is super-easy: it's one byte. Not much choice there. - lda #MIP_OFFSET_5 - bne mipReady ; always taken + ; Mip level 5 is super-easy: it's one byte. Not much choice there. + lda #MIP_OFFSET_5 + bne mipReady ; always taken diff --git a/Platform/Apple/virtual/src/raycast/genExpand.py b/Platform/Apple/virtual/src/raycast/genExpand.py index 59d98257..4f45741b 100755 --- a/Platform/Apple/virtual/src/raycast/genExpand.py +++ b/Platform/Apple/virtual/src/raycast/genExpand.py @@ -20,8 +20,8 @@ finalSuffixMap = {} dstHeights = set() outFile = open("expand.s", "w") -outFile.write(" .org $800\n") -outFile.write(" .include \"render.i\"\n") +outFile.write("* = $800\n") +outFile.write("!source \"render.i\"\n") outFile.write("\n") def calcKey(cmds): @@ -100,14 +100,14 @@ class Segment: return if s.refs == 1: # singletons aren't generated near their target - outFile.write("%s jmp %s\n" % (prefix, s.truncLabel)) + outFile.write("%s\tjmp %s\n" % (prefix, s.truncLabel)) prefix = " " else: # non-singletons are generated near their target - outFile.write("%s bvc %s\n" % (prefix, s.truncLabel)) + outFile.write("%s\tbvc %s\n" % (prefix, s.truncLabel)) prefix = " " else: - outFile.write("%s jsr %s\n" % (prefix, s.truncLabel)) + outFile.write("%s\tjsr %s\n" % (prefix, s.truncLabel)) prefix = " " break label = calcLabel(s.cmds[i:]) @@ -121,24 +121,24 @@ class Segment: first = False c = s.cmds[i] if c == 'L': - outFile.write("%s iny\n" % prefix) + outFile.write("%s\tiny\n" % prefix) prefix = " " - outFile.write(" lda (pTex),y\n") + outFile.write("\tlda (pTex),y\n") needTransparencyCheck = True elif c == '<': - outFile.write("%s asl\n" % prefix) + outFile.write("%s\tasl\n" % prefix) prefix = " " needTransparencyCheck = True else: assert c < screenHeight if needTransparencyCheck: - outFile.write(" bmi :+\n") - prefix = ":" - outFile.write(" sta %s*BLIT_STRIDE + blitRoll,x\n" % c) + outFile.write("\tbmi +\n") + prefix = "+" + outFile.write("\tsta %s*BLIT_STRIDE + blitRoll,x\n" % c) needTransparencyCheck = False else: if grouped: - outFile.write("%s rts\n" % prefix) + outFile.write("%s\trts\n" % prefix) prefix = " " if grouped: outFile.write("\n") @@ -241,11 +241,11 @@ for h in range(0, 256, 2): outFile.write("expand_vec:\n") if h in dstHeights: dstHeight = h - outFile.write(" .addr expand_%d\n" % dstHeight) + outFile.write("\t!word expand_%d\n" % dstHeight) outFile.write("\n") # Include the expand header code -outFile.write(" .include \"expand_hdr.i\"\n") +outFile.write("!source \"expand_hdr.i\"\n") # Let's optimize. segsToOpt = copy.copy(allSegs) @@ -307,9 +307,9 @@ while len(segsToOpt) > 0: for (srcHeight, dstHeight, mipLevel, texOff, segs) in allHeights: outFile.write("; Produce %d rows from %d rows\n" % (dstHeight, srcHeight)) outFile.write("expand_%d:\n" % dstHeight) - outFile.write(" jsr selectMip%d\n" % mipLevel) + outFile.write("\tjsr selectMip%d\n" % mipLevel) if (texOff != 0): - outFile.write(" ldy #%d\n" % (texOff-1)) # -1 because we always do initial INY before LDA (ptr,Y) + outFile.write("\tldy #%d\n" % (texOff-1)) # -1 because we always do initial INY before LDA (ptr,Y) for i in range(len(segs)): seg = allSegs[segs[i]] if seg.refs == 1 and not(seg.generated): @@ -319,9 +319,9 @@ for (srcHeight, dstHeight, mipLevel, texOff, segs) in allHeights: if "expand_0" not in generatedLabels: outFile.write("expand_0:\n") generatedLabels.add("expand_0") - outFile.write(" rts\n") + outFile.write("\trts\n") else: - outFile.write(" %s %s\n" % ("jsr" if i < len(segs)-1 else "jmp", calcLabel(seg.cmds))) + outFile.write("\t%s %s\n" % ("jsr" if i < len(segs)-1 else "jmp", calcLabel(seg.cmds))) outFile.write("\n") # Generate the misc segments missed earlier diff --git a/Platform/Apple/virtual/src/raycast/render.i b/Platform/Apple/virtual/src/raycast/render.i index 051894aa..58b24ce4 100644 --- a/Platform/Apple/virtual/src/raycast/render.i +++ b/Platform/Apple/virtual/src/raycast/render.i @@ -1,91 +1,91 @@ ; Shared definitions for the rendering code - .include "../include/global.i" +!source "../include/global.i" ; Constants -TOP_LINE = $2180 ; 24 lines down from top -NLINES = 128 -TEX_SIZE = $555 ; 32x32 + 16x16 + 8x8 + 4x4 + 2x2 + 1x1 +TOP_LINE = $2180 ; 24 lines down from top +NLINES = 128 +TEX_SIZE = $555 ; 32x32 + 16x16 + 8x8 + 4x4 + 2x2 + 1x1 ; Byte offset for each pixel in the blit unroll -BLIT_OFF0 = 5 -BLIT_OFF1 = 8 -BLIT_OFF2 = 11 -BLIT_OFF3 = 1 -BLIT_OFF4 = 17 -BLIT_OFF5 = 20 -BLIT_OFF6 = 24 +BLIT_OFF0 = 5 +BLIT_OFF1 = 8 +BLIT_OFF2 = 11 +BLIT_OFF3 = 1 +BLIT_OFF4 = 17 +BLIT_OFF5 = 20 +BLIT_OFF6 = 24 -BLIT_STRIDE = 29 +BLIT_STRIDE = 29 -MAX_TEXTURES = 62 ; sized to fit memory space below +MAX_TEXTURES = 62 ; sized to fit memory space below ; Renderer zero page -tmp = $4 ; len 2 -pTmp = $6 ; len 2 -pDst = $8 ; len 2 -pTex = $A ; len 2 -pixNum = $C ; len 1 -byteNum = $D ; len 1 -mapWidth = $12 ; len 1 -mapHeight = $13 ; len 1 -pRayData = $14 ; len 2 -txNum = $16 ; len 1 -txColumn = $17 ; len 1 -pLine = $18 ; len 2 -rayDirX = $1A ; len 1 -rayDirY = $1B ; len 1 -stepX = $1C ; len 1 -stepY = $1D ; len 1 -mapX = $1E ; len 1 -mapY = $1F ; len 1 -sideDistX = $50 ; len 1 -sideDistY = $51 ; len 1 -deltaDistX = $52 ; len 1 -deltaDistY = $53 ; len 1 -dist = $54 ; len 2 -diff = $56 ; len 2 -pMap = $58 ; len 2 -lineCt = $5A ; len 1 -depth = $5B ; len 1 -minX = $5C ; len 1 -maxX = $5D ; len 1 -minY = $5E ; len 1 -maxY = $5F ; len 1 -screenCol = $60 ; len 1 -playerDir = $61 ; len 1 -playerX = $62 ; len 2 (hi=integer, lo=fraction) -playerY = $64 ; len 2 (hi=integer, lo=fraction) +tmp = $4 ; len 2 +pTmp = $6 ; len 2 +pDst = $8 ; len 2 +pTex = $A ; len 2 +pixNum = $C ; len 1 +byteNum = $D ; len 1 +mapWidth = $12 ; len 1 +mapHeight = $13 ; len 1 +pRayData = $14 ; len 2 +txNum = $16 ; len 1 +txColumn = $17 ; len 1 +pLine = $18 ; len 2 +rayDirX = $1A ; len 1 +rayDirY = $1B ; len 1 +stepX = $1C ; len 1 +stepY = $1D ; len 1 +mapX = $1E ; len 1 +mapY = $1F ; len 1 +sideDistX = $50 ; len 1 +sideDistY = $51 ; len 1 +deltaDistX = $52 ; len 1 +deltaDistY = $53 ; len 1 +dist = $54 ; len 2 +diff = $56 ; len 2 +pMap = $58 ; len 2 +lineCt = $5A ; len 1 +depth = $5B ; len 1 +minX = $5C ; len 1 +maxX = $5D ; len 1 +minY = $5E ; len 1 +maxY = $5F ; len 1 +screenCol = $60 ; len 1 +playerDir = $61 ; len 1 +playerX = $62 ; len 2 (hi=integer, lo=fraction) +playerY = $64 ; len 2 (hi=integer, lo=fraction) ;--------------------------------- ; The following are in aux mem... -expandVec = $800 +expandVec = $800 ; back to main mem ;--------------------------------- ; Main-mem tables and buffers -tableStart = $A700 -decodeTo01 = $A700 -decodeTo01b = $A800 -decodeTo23 = $A900 -decodeTo23b = $AA00 -decodeTo45 = $AB00 -decodeTo56 = $AC00 -decodeTo57 = $AD00 -clrBlitRollE = $AE00 ; size 3*(128/2) = $C0, plus 2 for tya and rts -clrBlitRollO = $AEC2 ; size 3*(128/2) = $C0, plus 2 for tya and rts -texAddrLo = $AF84 -texAddrHi = texAddrLo + MAX_TEXTURES -blitRoll = $B000 ; Unrolled blitting code. Size 29*128 = $E80, plus 1 for rts -tableEnd = $BE81 -memMap = $BF58 ; ProDOS memory map +tableStart = $A700 +decodeTo01 = $A700 +decodeTo01b = $A800 +decodeTo23 = $A900 +decodeTo23b = $AA00 +decodeTo45 = $AB00 +decodeTo56 = $AC00 +decodeTo57 = $AD00 +clrBlitRollE = $AE00 ; size 3*(128/2) = $C0, plus 2 for tya and rts +clrBlitRollO = $AEC2 ; size 3*(128/2) = $C0, plus 2 for tya and rts +texAddrLo = $AF84 +texAddrHi = texAddrLo + MAX_TEXTURES +blitRoll = $B000 ; Unrolled blitting code. Size 29*128 = $E80, plus 1 for rts +tableEnd = $BE81 +memMap = $BF58 ; ProDOS memory map ; mipmap level offsets -MIP_OFFSET_0 = 0 -MIP_OFFSET_1 = $400 ; 32*32 -MIP_OFFSET_2 = $500 ; 32*32 + 16*16 -MIP_OFFSET_3 = $540 ; 32*32 + 16*16 + 8*8 -MIP_OFFSET_4 = $550 ; 32*32 + 16*16 + 8*8 + 4*4 -MIP_OFFSET_5 = $554 ; 32*32 + 16*16 + 8*8 + 4*4 + 2*2 +MIP_OFFSET_0 = 0 +MIP_OFFSET_1 = $400 ; 32*32 +MIP_OFFSET_2 = $500 ; 32*32 + 16*16 +MIP_OFFSET_3 = $540 ; 32*32 + 16*16 + 8*8 +MIP_OFFSET_4 = $550 ; 32*32 + 16*16 + 8*8 + 4*4 +MIP_OFFSET_5 = $554 ; 32*32 + 16*16 + 8*8 + 4*4 + 2*2 diff --git a/Platform/Apple/virtual/src/raycast/render.s b/Platform/Apple/virtual/src/raycast/render.s index 4365e230..f49778f4 100644 --- a/Platform/Apple/virtual/src/raycast/render.s +++ b/Platform/Apple/virtual/src/raycast/render.s @@ -1,56 +1,57 @@ - .org $6000 +* = $6000 + +; Use hi-bit ASCII for Apple II +!convtab "../include/hiBitAscii.ct" start: -; This code is written bottom-up. That is, simple routines first, +; This code is written bottom-up. That is, simple routines first, ; then routines that call those to build complexity. The main ; code is at the very end. We jump to it now. - jmp main + jmp main ; Conditional assembly flags -DOUBLE_BUFFER = 1 ; whether to double-buffer -DEBUG = 0 ; turn on verbose logging +DOUBLE_BUFFER = 1 ; whether to double-buffer +DEBUG = 0 ; turn on verbose logging ; Shared constants, zero page, buffer locations, etc. - .include "render.i" +!source "render.i" ; Debug macros and support functions - .include "../include/debug.i" +!source "../include/debug.i" ; Memory manager - .include "../core/mem.i" +!source "../core/mem.i" ; Variables -backBuf: .byte 0 ; (value 0 or 1) -frontBuf: .byte 0 ; (value 0 or 1) -mapHeader: .word 0 ; map with header first -mapBase: .word 0 ; first byte after the header -mapRayOrigin: .word 0 -mapNum: .byte 1 +backBuf: !byte 0 ; (value 0 or 1) +frontBuf: !byte 0 ; (value 0 or 1) +mapHeader: !word 0 ; map with header first +mapBase: !word 0 ; first byte after the header +mapRayOrigin: !word 0 +mapNum: !byte 1 ; Sky / ground colors -skyGndTbl1: - .byte $20 ; hi-bit black - .byte $20 ; hi-bit black - .byte $20 ; hi-bit black - .byte $22 ; blue - .byte $28 ; orange - .byte $2A ; hi-bit white - .byte $2A ; hi-bit white - .byte $2A ; hi-bit white -skyGndTbl2: - .byte $20 ; hi-bit black - .byte $22 ; blue - .byte $28 ; orange - .byte $22 ; blue - .byte $28 ; orange - .byte $22 ; blue - .byte $28 ; orange - .byte $2A ; hi-bit white +skyGndTbl1: !byte $20 ; hi-bit black + !byte $20 ; hi-bit black + !byte $20 ; hi-bit black + !byte $22 ; blue + !byte $28 ; orange + !byte $2A ; hi-bit white + !byte $2A ; hi-bit white + !byte $2A ; hi-bit white +skyGndTbl2: !byte $20 ; hi-bit black + !byte $22 ; blue + !byte $28 ; orange + !byte $22 ; blue + !byte $28 ; orange + !byte $22 ; blue + !byte $28 ; orange + !byte $2A ; hi-bit white -skyColorEven: .byte $20 -skyColorOdd: .byte $22 -gndColorEven: .byte $20 -gndColorOdd: .byte $28 +skyColorEven: !byte $20 +skyColorOdd: !byte $22 +gndColorEven: !byte $20 +gndColorOdd: !byte $28 ;------------------------------------------------------------------------------- ; Multiply two bytes, quickly but somewhat inaccurately, using logarithms. @@ -60,122 +61,111 @@ gndColorOdd: .byte $28 ; Input : unsigned bytes in X and Y ; Output: unsigned byte in A of the *high* byte of the result only ; -umul_bb_b: - cpx #4 - bcc @x_lt_4 - cpy #4 - bcc @y_lt_4 - lda tbl_log2_b_b,x ; log2(x) - clc - adc tbl_log2_b_b,y ; plus log2(y) - tax - lda tbl_pow2_b_b,x ; 2 ^ (log2(x) + log2(y)) = x * y - rts +umul_bb_b: !zone + cpx #4 + bcc .x_lt_4 + cpy #4 + bcc .y_lt_4 + lda tbl_log2_b_b,x ; log2(x) + clc + adc tbl_log2_b_b,y ; plus log2(y) + tax + lda tbl_pow2_b_b,x ; 2 ^ (log2(x) + log2(y)) = x * y + rts ; handle cases 0..3 directly. This halved the size of the tables ; and made them more accurate. -@x_lt_4: - lda #0 - cpx #2 - bcc @done ; x=0 or x=1: the high byte of result will be zero - beq @two -@three: - cpy #86 ; x=3: 3*(0..85) results in hi=0 - bcc @done - lda #1 - cpy #171 ; 3*(86..170) results in hi=1 - bcc @done - lda #2 ; 3*(171..255) results in hi=2 - rts -@two: - cpy #$80 ; x=2: high byte is 1 iff input >= 0x80 - bcc @done - lda #1 -@done: - rts -@y_lt_4: - stx tmp ; switch X and Y - tya - tax - ldy tmp - jmp @x_lt_4 ; then re-use code +.x_lt_4: + lda #0 + cpx #2 + bcc .done ; x=0 or x=1: the high byte of result will be zero + beq .two +.three: cpy #86 ; x=3: 3*(0..85) results in hi=0 + bcc .done + lda #1 + cpy #171 ; 3*(86..170) results in hi=1 + bcc .done + lda #2 ; 3*(171..255) results in hi=2 + rts +.two: cpy #$80 ; x=2: high byte is 1 iff input >= 0x80 + bcc .done + lda #1 +.done: rts +.y_lt_4: + stx tmp ; switch X and Y + tya + tax + ldy tmp + jmp .x_lt_4 ; then re-use code ;------------------------------------------------------------------------------- ; Calculate log2 of a 16-bit number. ; Input: 16-bit unsigned int in A(lo)/X(hi) ; Output: fixed point 8+8 bit log2 in A(lo)/X(hi) ; -log2_w_w: - cpx #0 - beq log2_b_w ; hi-byte zero? only consider low byte - stx tmp - ldx #8 ; start with exponent=8 - lsr tmp ; shift down - beq @gotMant ; until high byte is exactly 1 -@highLup: - ror ; save the bit we shifted out - inx ; bump the exponent - lsr tmp ; shift next bit - bne @highLup ; loop again -@gotMant: - ; mantissa now in A, exponent in X. Translate mantissa to log using table, and we're done - tay - lda tbl_log2_w_w,y - rts +log2_w_w: !zone + cpx #0 + beq log2_b_w ; hi-byte zero? only consider low byte + stx tmp + ldx #8 ; start with exponent=8 + lsr tmp ; shift down + beq .gotMant ; until high byte is exactly 1 +.hiLup: ror ; save the bit we shifted out + inx ; bump the exponent + lsr tmp ; shift next bit + bne .hiLup ; loop again +.gotMant: ; mantissa now in A, exponent in X. Translate mantissa to log using table, and we're done + tay + lda tbl_log2_w_w,y + rts ; Same as above but with with 8-bit input instead of 16. Same output though. -log2_b_w: - cmp #0 ; special case: log(0) we call zero. - beq @zero -@low: ; we know high byte is zero - ldx #7 ; start with exponent=7 - asl ; shift up - bcs @gotMant ; until high byte would be exactly 1 -@lowLup: - dex ; bump exponent down - asl ; shift next bit - bcc @lowLup ; loop again -@gotMant: - ; mantissa now in A, exponent in X. Translate mantissa to log using table, and we're done - tay - lda tbl_log2_w_w,y - rts -@zero: - tax - rts +log2_b_w: !zone + cmp #0 ; special case: log(0) we call zero. + beq .zero +.low: ; we know high byte is zero + ldx #7 ; start with exponent=7 + asl ; shift up + bcs .gotMant ; until high byte would be exactly 1 +.loLup: dex ; bump exponent down + asl ; shift next bit + bcc .loLup ; loop again +.gotMant: ; mantissa now in A, exponent in X. Translate mantissa to log using table, and we're done + tay + lda tbl_log2_w_w,y + rts +.zero: tax + rts ;------------------------------------------------------------------------------- ; Calculate 2^n for a fixed-point n ; Input: 8.8 fixed precision number in Y(lo)/X(hi) ; Output: 16 bit unsigned int in A(lo)/X(hi) ; -pow2_w_w: - lda tbl_pow2_w_w,y ; table gives us log(2) -> mantissa in A - cpx #8 ; check the exponent - bcc @lo ; less than 8? high byte will be zero. - beq @mid ; equal to 8? high byte will be one. -@hi: ; greater than 8: need to compute high byte - ldy #1 ; start with one - sty tmp -@hiLup: - asl ; shift up - rol tmp ; including high byte - dex ; count down exponent - cpx #8 ; until we reach 8 - bne @hiLup - ldx tmp ; load computed high byte; proper low byte is already in A. - rts -@lo: - sec ; so we shift a 1 into the high bit of the low byte -@loLup: - ror ; shift down - inx ; count up exponent... - cpx #8 ; ...until we hit 8 - bcc @loLup ; handy because we need carry to be clear the next go-round - ldx #0 - rts -@mid: ; exponent exactly 8 when we get here - ldx #1 ; that means high byte should be 1 - rts +pow2_w_w: !zone + lda tbl_pow2_w_w,y ; table gives us log(2) -> mantissa in A + cpx #8 ; check the exponent + bcc .lo ; less than 8? high byte will be zero. + beq .mid ; equal to 8? high byte will be one. +.hi: ; greater than 8: need to compute high byte + ldy #1 ; start with one + sty tmp +.hiLup: asl ; shift up + rol tmp ; including high byte + dex ; count down exponent + cpx #8 ; until we reach 8 + bne .hiLup + ldx tmp ; load computed high byte; proper low byte is already in A. + rts +.lo: sec ; so we shift a 1 into the high bit of the low byte +.loLup: ror ; shift down + inx ; count up exponent... + cpx #8 ; ...until we hit 8 + bcc .loLup ; handy because we need carry to be clear the next go-round + ldx #0 + rts +.mid: ; exponent exactly 8 when we get here + ldx #1 ; that means high byte should be 1 + rts ;------------------------------------------------------------------------------- ; Cast a ray [ref BigBlue3_60] @@ -188,2339 +178,2275 @@ pow2_w_w: ; depthBuf,x - depth (log of height basically), for compositing order ; txNumBuf,x - texture number to draw ; txColBuf,x - column in the texture to draw -castRay: - ; First, grab the precalculated ray data from the table. - ldx #1 ; default X step: forward one column of the map - lda (pRayData),y ; rayDirX - bpl :+ ; if positive, don't negate - eor #$FF ; negate - ldx #$FF ; x step: back one column of the map -: asl ; mul by 2 now that we've stripped the sign - sta rayDirX ; store x direction - stx stepX ; and x increment +castRay: !zone + ; First, grab the precalculated ray data from the table. + ldx #1 ; default X step: forward one column of the map + lda (pRayData),y ; rayDirX + bpl + ; if positive, don't negate + eor #$FF ; negate + ldx #$FF ; x step: back one column of the map ++ asl ; mul by 2 now that we've stripped the sign + sta rayDirX ; store x direction + stx stepX ; and x increment - iny - ldx #1 ; default y step: forward one row of the map - lda (pRayData),y ; rayDirY - bpl :+ ; if positive, don't negate - eor #$FF ; negate - ldx #$FF ; y step: back one row of map -: asl ; mul by 2 now that we've stripped the sign - sta rayDirY ; store y direction - stx stepY ; and y increment + iny + ldx #1 ; default y step: forward one row of the map + lda (pRayData),y ; rayDirY + bpl + ; if positive, don't negate + eor #$FF ; negate + ldx #$FF ; y step: back one row of map ++ asl ; mul by 2 now that we've stripped the sign + sta rayDirY ; store y direction + stx stepY ; and y increment - iny - lda (pRayData),y ; distance moved in X direction - sta deltaDistX ; for each step + iny + lda (pRayData),y ; distance moved in X direction + sta deltaDistX ; for each step - iny - lda (pRayData),y ; distance moved in Y direction - sta deltaDistY ; for each step + iny + lda (pRayData),y ; distance moved in Y direction + sta deltaDistY ; for each step - DEBUG_STR "cast: ddX=" - DEBUG_BYTE deltaDistX - DEBUG_STR "rdX=" - DEBUG_BYTE rayDirX - DEBUG_STR "stx=" - DEBUG_BYTE stepX - DEBUG_LN - DEBUG_STR " ddY=" - DEBUG_BYTE deltaDistY - DEBUG_STR "rdY=" - DEBUG_BYTE rayDirY - DEBUG_STR "sty=" - DEBUG_BYTE stepY - DEBUG_LN +!if DEBUG >= 2 { + +prStr : !text "cast: ddX=",0 + +prByte deltaDistX + +prStr : !text "rdX=",0 + +prByte rayDirX + +prStr : !text "stx=",0 + +prByte stepX + +crout + +prStr : !text " ddY=",0 + +prByte deltaDistY + +prStr : !text "rdY=",0 + +prByte rayDirY + +prStr : !text "sty=",0 + +prByte stepY + +crout +} ; end DEBUG - ; Next we need to calculate the initial distance on each side - ; Start with the X side - lda playerX ; fractional byte of player distance - bit stepX ; if stepping forward... - bmi :+ - eor #$FF ; invert initial dist -: tax - ldy deltaDistX ; calculate fraction of delta - jsr umul_bb_b - sta sideDistX ; to form initial side dist - ; Now the Y side - lda playerY ; fractional byte of player distance - bit stepY ; if stepping forward... - bmi :+ - eor #$FF ; invert initial dist -: tax - ldy deltaDistY ; calculate fraction of delta - jsr umul_bb_b - sta sideDistY ; to form initial side dist + ; Next we need to calculate the initial distance on each side + ; Start with the X side + lda playerX ; fractional byte of player distance + bit stepX ; if stepping forward... + bmi + + eor #$FF ; invert initial dist ++ tax + ldy deltaDistX ; calculate fraction of delta + jsr umul_bb_b + sta sideDistX ; to form initial side dist + ; Now the Y side + lda playerY ; fractional byte of player distance + bit stepY ; if stepping forward... + bmi + + eor #$FF ; invert initial dist ++ tax + ldy deltaDistY ; calculate fraction of delta + jsr umul_bb_b + sta sideDistY ; to form initial side dist - DEBUG_STR " initial sdx=" - DEBUG_BYTE sideDistX - DEBUG_STR " sdy=" - DEBUG_BYTE sideDistY - DEBUG_LN +!if DEBUG >= 2 { + +prStr : !text " initial sdx=",0 + +prByte sideDistX + +prStr : !text " sdy=",0 + +prByte sideDistY + +crout +} ; end DEBUG - ; Start at the player's position, and init Y reg for stepping in the X dir - ldy playerX+1 - sty mapX - ldx playerY+1 - stx mapY + ; Start at the player's position, and init Y reg for stepping in the X dir + ldy playerX+1 + sty mapX + ldx playerY+1 + stx mapY - ; the DDA algorithm -@DDA_step: - lda sideDistX - cmp sideDistY ; decide whether it's closer to step in X dir or Y dir - bcs @takeStepY - ; taking a step in the X direction -@takeStepX: - lda stepX ; advance mapX in the correct direction - bmi @negX - inc mapX - iny ; also the Y reg which indexes the map - jmp @checkX -@negX: - dec mapX - dey -@checkX: - .if DEBUG - DEBUG_STR " sideX" - jsr @debugSideData - .endif - lda sideDistY ; adjust side dist in Y dir - sec - sbc sideDistX - sta sideDistY - lda deltaDistX ; re-init X distance - sta sideDistX - lda (pMap),y ; check map at current X/Y position - beq @DDA_step ; nothing there? do another step. - ; We hit something! -@hitX: - DEBUG_STR " Hit." - ldx screenCol - sta txNumBuf,x ; store the texture number we hit - lda #0 - sec - sbc playerX ; inverse of low byte of player coord - sta dist ; is fractional byte of dist. - lda mapX ; map X is the integer byte - sbc playerX+1 - bit stepX - bpl :+ - clc ; if stepping backward, add one to dist - adc #1 -: sta dist+1 - ldx rayDirX ; parameters for wall calculation - ldy rayDirY - lda stepY - jsr @wallCalc ; centralized code for wall calculation - ; adjust wall X - lda playerY ; fractional player pos - clc - adc txColumn - bit stepX ; if stepping forward in X... - bmi :+ - eor #$FF ; ...invert the texture coord -: ldx screenCol - sta txColBuf,x ; and save the final coordinate - .if DEBUG - jsr @debugFinal - .endif - rts - ; taking a step in the Y direction -@takeStepY: - lda pMap ; get ready to switch map row - bit stepY ; advance mapY in the correct direction - bmi @negY - inc mapY - clc - adc mapWidth - bcc @checkY - inc pMap+1 - bne @checkY ; always taken -@negY: - dec mapY - sec - sbc mapWidth - bcs @checkY - dec pMap+1 -@checkY: - sta pMap - .if DEBUG - DEBUG_STR " sideY" - jsr @debugSideData - .endif - lda sideDistX ; adjust side dist in Y dir - sec - sbc sideDistY - sta sideDistX - lda deltaDistY ; re-init Y distance - sta sideDistY - lda (pMap),y ; check map at current X/Y position - bne @hitY ; nothing there? do another step. - jmp @DDA_step -@hitY: - ; We hit something! - DEBUG_STR " Hit." - ldx screenCol - sta txNumBuf,x ; store the texture number we hit - lda #0 - sec - sbc playerY ; inverse of low byte of player coord - sta dist ; is fractional byte of dist. - lda mapY ; map X is the integer byte - sbc playerY+1 - bit stepY - bpl :+ - clc ; if stepping backward, add one to dist - adc #1 -: sta dist+1 - ldx rayDirY ; parameters for wall calculation - ldy rayDirX - lda stepX - jsr @wallCalc ; centralized code for wall calculation - ; adjust wall X - lda playerX ; fractional player pos - clc - adc txColumn - bit stepY ; if stepping backward in Y - bpl :+ - eor #$FF ; ...invert the texture coord -: ldx screenCol - sta txColBuf,x ; and save the final coord - .if DEBUG - jsr @debugFinal - .endif - rts + ; the DDA algorithm +.DDA_step: + lda sideDistX + cmp sideDistY ; decide whether it's closer to step in X dir or Y dir + bcs .takeStepY + ; taking a step in the X direction +.takeStepX: + lda stepX ; advance mapX in the correct direction + bmi .negX + inc mapX + iny ; also the Y reg which indexes the map + jmp .checkX +.negX: dec mapX + dey +.checkX: + !if DEBUG >= 2 { +prStr : !text " sideX",0 : jsr .debugSideData } + lda sideDistY ; adjust side dist in Y dir + sec + sbc sideDistX + sta sideDistY + lda deltaDistX ; re-init X distance + sta sideDistX + lda (pMap),y ; check map at current X/Y position + beq .DDA_step ; nothing there? do another step. + ; We hit something! +.hitX: !if DEBUG >= 2 { +prStr : !text " Hit.",0 } + ldx screenCol + sta txNumBuf,x ; store the texture number we hit + lda #0 + sec + sbc playerX ; inverse of low byte of player coord + sta dist ; is fractional byte of dist. + lda mapX ; map X is the integer byte + sbc playerX+1 + bit stepX + bpl + + clc ; if stepping backward, add one to dist + adc #1 ++ sta dist+1 + ldx rayDirX ; parameters for wall calculation + ldy rayDirY + lda stepY + jsr .wallCalc ; centralized code for wall calculation + ; adjust wall X + lda playerY ; fractional player pos + clc + adc txColumn + bit stepX ; if stepping forward in X... + bmi + + eor #$FF ; ...invert the texture coord ++ ldx screenCol + sta txColBuf,x ; and save the final coordinate + !if DEBUG >= 2 { jsr .debugFinal } + rts + ; taking a step in the Y direction +.takeStepY: + lda pMap ; get ready to switch map row + bit stepY ; advance mapY in the correct direction + bmi .negY + inc mapY + clc + adc mapWidth + bcc .chkY + inc pMap+1 + bne .chkY ; always taken +.negY: dec mapY + sec + sbc mapWidth + bcs .chkY + dec pMap+1 +.chkY: sta pMap + !if DEBUG >= 2 { +prStr : !text " sideY",0 : jsr .debugSideData } + lda sideDistX ; adjust side dist in Y dir + sec + sbc sideDistY + sta sideDistX + lda deltaDistY ; re-init Y distance + sta sideDistY + lda (pMap),y ; check map at current X/Y position + bne .hitY ; nothing there? do another step. + jmp .DDA_step +.hitY: ; We hit something! + !if DEBUG >= 2 { +prStr : !text " Hit.",0 } + ldx screenCol + sta txNumBuf,x ; store the texture number we hit + lda #0 + sec + sbc playerY ; inverse of low byte of player coord + sta dist ; is fractional byte of dist. + lda mapY ; map X is the integer byte + sbc playerY+1 + bit stepY + bpl + + clc ; if stepping backward, add one to dist + adc #1 ++ sta dist+1 + ldx rayDirY ; parameters for wall calculation + ldy rayDirX + lda stepX + jsr .wallCalc ; centralized code for wall calculation + ; adjust wall X + lda playerX ; fractional player pos + clc + adc txColumn + bit stepY ; if stepping backward in Y + bpl + + eor #$FF ; ...invert the texture coord ++ ldx screenCol + sta txColBuf,x ; and save the final coord + !if DEBUG >= 2 { jsr .debugFinal } + rts - ; wall calculation: X=dir1, Y=dir2, A=dir2step -@wallCalc: - pha ; save step - tya - pha ; save dir2 - txa - jsr log2_b_w ; calc log2(dir1) - sta @sub1+1 ; save it for later subtraction - stx @sub2+1 - lda dist ; calc abs(dist) - ldx dist+1 ; dist currently in A(lo)/X(hi) - bpl @notNeg - lda #0 ; invert distance if negative to get absolute value - sec - sbc dist - tay - lda #0 - sbc dist+1 - tax ; get inverted dist into A(lo)/X(hi) - tya -@notNeg: - .if DEBUG - sta a2l - stx a2h - DEBUG_STR " dist=" - DEBUG_WORD a2l - .endif - jsr log2_w_w ; calculate log2(abs(dist)) - sec -@sub1: - sbc #0 ; subtract log2(dir1) - sta diff - txa -@sub2: - sbc #0 - sta diff+1 - DEBUG_STR "diff=" - DEBUG_WORD diff - ; Calculate texture coordinate - pla ; get dir2 back - jsr log2_b_w ; calculate log2(dir2) - clc - adc diff ; sum = diff + log2(dir2) - tay - txa - adc diff+1 - tax - .if DEBUG - sty a2l - stx a2h - DEBUG_STR "sum=" - DEBUG_WORD a2l - DEBUG_LN - .endif - jsr pow2_w_w ; calculate 2 ^ sum - ; fractional part (A-reg) of result is texture coord - tax - pla ; retrieve the step direction - bpl :+ ; if positive, don't flip the texture coord - txa - eor #$FF ; negative, flip the coord - tax -: stx txColumn - ; Calculate line height - ; we need to subtract diff from log2(64) which is $0600 - lda #0 - sec - sbc diff - tay - lda #6 - sbc diff+1 - tax - sta tmp - tya - lsr tmp ; Depth is 4 bits of exponent + upper 4 bits of mantissa - ror - lsr tmp - ror - lsr tmp - ror - lsr tmp - ror - pha ; stash it on stack (we don't have X reg free yet for indexed store) - jsr pow2_w_w ; calculate 2 ^ (log(64) - diff) =~ 64.0 / dist - cpx #0 - beq :+ - lda #$FF ; clamp large line heights to 255 -: ldx screenCol - sta heightBuf,x ; save final height to the buffer - pla ; get the depth back... - sta depthBuf,x ; and save it too - lda #0 - sta linkBuf,x ; might as well clear the link buffer while we're at it - ; Update min/max trackers - lda mapX - cmp minX - bcs :+ - sta minX -: cmp maxX - bcc :+ - sta maxX -: lda mapY - cmp minY - bcs :+ - sta minY -: cmp maxY - bcc :+ - sta maxY -: rts ; all done with wall calculations - .if DEBUG -@debugSideData: - DEBUG_STR ", mapX=" - DEBUG_BYTE mapX - DEBUG_STR "mapY=" - DEBUG_BYTE mapY - DEBUG_STR "sdx=" - DEBUG_BYTE sideDistX - DEBUG_STR "sdy=" - DEBUG_BYTE sideDistY - DEBUG_LN - rts -@debugFinal: - ldx screenCol - DEBUG_STR " height=" - lda heightBuf,x - sta tmp - DEBUG_BYTE tmp - DEBUG_STR "depth=" - lda depthBuf,x - sta tmp - DEBUG_BYTE tmp - DEBUG_STR "txNum=" - lda txNumBuf,x - sta tmp - DEBUG_BYTE tmp - DEBUG_STR "txCol=" - lda txColBuf,x - sta tmp - DEBUG_BYTE tmp - DEBUG_LN - jmp rdkey - .endif + ; wall calculation: X=dir1, Y=dir2, A=dir2step +.wallCalc: + pha ; save step + tya + pha ; save dir2 + txa + jsr log2_b_w ; calc log2(dir1) + sta .sub1+1 ; save it for later subtraction + stx .sub2+1 + lda dist ; calc abs(dist) + ldx dist+1 ; dist currently in A(lo)/X(hi) + bpl .notNeg + lda #0 ; invert distance if negative to get absolute value + sec + sbc dist + tay + lda #0 + sbc dist+1 + tax ; get inverted dist into A(lo)/X(hi) + tya +.notNeg: + !if DEBUG >= 2 { +prStr : !text " dist=",0 : +prXA } + jsr log2_w_w ; calculate log2(abs(dist)) + sec +.sub1: sbc #0 ; subtract log2(dir1) + sta diff + txa +.sub2: sbc #0 + sta diff+1 + !if DEBUG >= 2 { +prStr : !text "diff=",0 : +prWord diff } + ; Calculate texture coordinate + pla ; get dir2 back + jsr log2_b_w ; calculate log2(dir2) + clc + adc diff ; sum = diff + log2(dir2) + tay + txa + adc diff+1 + tax + !if DEBUG >= 2 { +prStr : !text "sum=",0 : +prXY : +crout } + jsr pow2_w_w ; calculate 2 ^ sum + ; fractional part (A-reg) of result is texture coord + tax + pla ; retrieve the step direction + bpl + ; if positive, don't flip the texture coord + txa + eor #$FF ; negative, flip the coord + tax ++ stx txColumn + ; Calculate line height + ; we need to subtract diff from log2(64) which is $0600 + lda #0 + sec + sbc diff + tay + lda #6 + sbc diff+1 + tax + sta tmp + tya + lsr tmp ; Depth is 4 bits of exponent + upper 4 bits of mantissa + ror + lsr tmp + ror + lsr tmp + ror + lsr tmp + ror + pha ; stash it on stack (we don't have X reg free yet for indexed store) + jsr pow2_w_w ; calculate 2 ^ (log(64) - diff) =~ 64.0 / dist + cpx #0 + beq + + lda #$FF ; clamp large line heights to 255 ++ ldx screenCol + sta heightBuf,x ; save final height to the buffer + pla ; get the depth back... + sta depthBuf,x ; and save it too + lda #0 + sta linkBuf,x ; might as well clear the link buffer while we're at it + ; Update min/max trackers + lda mapX + cmp minX + bcs + + sta minX ++ cmp maxX + bcc + + sta maxX ++ lda mapY + cmp minY + bcs + + sta minY ++ cmp maxY + bcc + + sta maxY ++ rts ; all done with wall calculations +!if DEBUG >= 2 { +.debugSideData: + +prStr : !text ", mapX=",0 + +prByte mapX + +prStr : !text "mapY=",0 + +prByte mapY + +prStr : !text "sdx=",0 + +prByte sideDistX + +prStr : !text "sdy=",0 + +prByte sideDistY + +crout + rts +.debugFinal: + ldx screenCol + +prStr : !text " height=",0 + lda heightBuf,x + +prA + +prStr : !text "depth=",0 + lda depthBuf,x + +prA + +prStr : !text "txNum=",0 + lda txNumBuf,x + +prA + +prStr : !text "txCol=",0 + lda txColBuf,x + +prA + +crout + jmp rdkey +} ; Advance pLine to the next line on the hi-res screen -nextLine: - lda pLine+1 ; Hi byte of line - clc - adc #4 ; Next line is 1K up - tax - eor pLine+1 - and #$20 ; Past end of screen? - beq @done ; If not, we're done - txa - sec - sbc #$20 ; Back to start - tax - lda pLine ; Lo byte - clc - adc #$80 ; Inner blks offset by 128 bytes - sta pLine - bcc @done - inx ; Next page - txa - and #7 - cmp #4 ; Still inside inner blk? - bne @done ; If so we're done - txa - sec - sbc #4 ; Back to start of inner blk - tax - lda pLine - clc - adc #$28 ; Outer blks offset by 40 bytes - sta pLine -@done: - stx pLine+1 - rts +nextLine: !zone + lda pLine+1 ; Hi byte of line + clc + adc #4 ; Next line is 1K up + tax + eor pLine+1 + and #$20 ; Past end of screen? + beq .done ; If not, we're done + txa + sec + sbc #$20 ; Back to start + tax + lda pLine ; Lo byte + clc + adc #$80 ; Inner blks offset by 128 bytes + sta pLine + bcc .done + inx ; Next page + txa + and #7 + cmp #4 ; Still inside inner blk? + bne .done ; If so we're done + txa + sec + sbc #4 ; Back to start of inner blk + tax + lda pLine + clc + adc #$28 ; Outer blks offset by 40 bytes + sta pLine +.done: stx pLine+1 + rts ; Draw a ray that was traversed by calcRay -drawRay: - ldx screenCol - lda txNumBuf,x - sta txNum - lda txColBuf,x - sta txColumn - lda heightBuf,x - sta lineCt - ; Make a pointer to the selected texture - ldx txNum - dex ; translate tex 1..4 to 0..3 - lda texAddrLo,x - sta pTex - lda texAddrHi,x - sta pTex+1 - DEBUG_STR "Ready to call, pTex=" - DEBUG_WORD pTex - DEBUG_LN - ; jump to the unrolled expansion code for the selected height - lda lineCt - asl - bcc :+ - lda #254 ; clamp max height -: sta $10B ; set vector offset - DEBUG_STR "Calling expansion code." - jmp $100 ; was copied to from @callIt to $100 at init time +drawRay: !zone + ldx screenCol + lda txNumBuf,x + sta txNum + lda txColBuf,x + sta txColumn + lda heightBuf,x + sta lineCt + ; Make a pointer to the selected texture + ldx txNum + dex ; translate tex 1..4 to 0..3 + lda texAddrLo,x + sta pTex + lda texAddrHi,x + sta pTex+1 + ; jump to the unrolled expansion code for the selected height + lda lineCt + asl + bcc + + lda #254 ; clamp max height ++ sta $10B ; set vector offset + !if DEBUG >= 2 { +prStr : !text "Calling expansion code.",0 } + jmp $100 ; was copied to from .callIt to $100 at init time ; Template for blitting code [ref BigBlue3_70] -blitTemplate: ; comments show byte offset - lda decodeTo57 ; 0: pixel 3 - asl ; 3: save half of pix 3 in carry - ora decodeTo01 ; 4: pixel 0 - ora decodeTo23 ; 7: pixel 1 - ora decodeTo45 ; 10: pixel 2 - sta (0),y ; 13: even column - iny ; 15: prep for odd - lda decodeTo01b ; 16: pixel 4 - ora decodeTo23b ; 19: pixel 5 - rol ; 22: recover half of pix 3 - ora decodeTo56 ; 23: pixel 6 - after rol to ensure right hi bit - sta (0),y ; 26: odd column - dey ; 28: prep for even - ; 29 bytes total +blitTemplate: !zone ; comments show byte offset + lda decodeTo57 ; 0: pixel 3 + asl ; 3: save half of pix 3 in carry + ora decodeTo01 ; 4: pixel 0 + ora decodeTo23 ; 7: pixel 1 + ora decodeTo45 ; 10: pixel 2 + sta (0),y ; 13: even column + iny ; 15: prep for odd + lda decodeTo01b ; 16: pixel 4 + ora decodeTo23b ; 19: pixel 5 + rol ; 22: recover half of pix 3 + ora decodeTo56 ; 23: pixel 6 - after rol to ensure right hi bit + sta (0),y ; 26: odd column + dey ; 28: prep for even + ; 29 bytes total ; Create the unrolled blit code -makeBlit: - lda #0 ; Start with line zero - sta lineCt - lda #TOP_LINE - sta pLine+1 - lda #blitRoll - sta pDst+1 -@lineLup: -; Copy the template - ldy #29 -@copy: - lda blitTemplate,y - sta (pDst),y - dey - bpl @copy +makeBlit: !zone + lda #0 ; Start with line zero + sta lineCt + lda #TOP_LINE + sta pLine+1 + lda #blitRoll + sta pDst+1 +.lineLup: ; Copy the template + ldy #29 +.copy: lda blitTemplate,y + sta (pDst),y + dey + bpl .copy ; Set the line pointers - ldy #14 - jsr @storeLine - ldy #27 - jsr @storeLine - ; Get ready for odd line - jsr @advance + ldy #14 + jsr .storeLine + ldy #27 + jsr .storeLine + ; Get ready for odd line + jsr .advance ; Loop until all lines are done - lda lineCt - cmp #NLINES - bne @lineLup - jmp storeRTS ; Finish with RTS for cleanliness -@storeLine: ; Subroutine to store pLine to pDst - lda lineCt - asl - sta (pDst),y - rts -@advance: ; Subroutine to go to next unroll - lda #29 - jsr advPDst - inc lineCt - jmp nextLine + lda lineCt + cmp #NLINES + bne .lineLup + jmp storeRTS ; Finish with RTS for cleanliness +.storeLine: ; Subroutine to store pLine to pDst + lda lineCt + asl + sta (pDst),y + rts +.advance: ; Subroutine to go to next unroll + lda #29 + jsr advPDst + inc lineCt + jmp nextLine ; Add A to pDst -advPDst: - clc - adc pDst - sta pDst - bcc @rts - inc pDst+1 -@rts: - rts +advPDst: !zone + clc + adc pDst + sta pDst + bcc .rts + inc pDst+1 +.rts: rts ; Store a RTS at pDst -storeRTS: - lda #$60 - ldy #0 - sta (pDst),y - rts +storeRTS: !zone + lda #$60 + ldy #0 + sta (pDst),y + rts ; Create code to clear the blit -makeClrBlit: - lda #blitRoll - sta pDst+1 - ldx #0 - ldy #0 -@lup: - lda @st - sta clrBlitRollE,x - sta clrBlitRollO,x - inx - lda pDst - sta clrBlitRollE,x - clc - adc #29 - sta clrBlitRollO,x - inx - lda pDst+1 -@st: - sta clrBlitRollE,x - adc #0 - sta clrBlitRollO,x - inx - lda pDst - clc - adc #29*2 - sta pDst - lda pDst+1 - adc #0 - sta pDst+1 - iny - iny - cpy #64 - bne @noSwitch - lda @tya ; switch from sky color to ground color - sta clrBlitRollE,x - sta clrBlitRollO,x - inx -@noSwitch: - cpy #NLINES - bne @lup - lda @rts - sta clrBlitRollE,x - sta clrBlitRollO,x -@rts: - rts -@tya: - tya +makeClrBlit: !zone + lda #blitRoll + sta pDst+1 + ldx #0 + ldy #0 +.lup: lda .st + sta clrBlitRollE,x + sta clrBlitRollO,x + inx + lda pDst + sta clrBlitRollE,x + clc + adc #29 + sta clrBlitRollO,x + inx + lda pDst+1 +.st: sta clrBlitRollE,x + adc #0 + sta clrBlitRollO,x + inx + lda pDst + clc + adc #29*2 + sta pDst + lda pDst+1 + adc #0 + sta pDst+1 + iny + iny + cpy #64 + bne .noSwitch + lda .tya ; switch from sky color to ground color + sta clrBlitRollE,x + sta clrBlitRollO,x + inx +.noSwitch: + cpy #NLINES + bne .lup + lda .rts + sta clrBlitRollE,x + sta clrBlitRollO,x +.rts: rts +.tya: tya ; Clear the blit -clearBlit: - lda byteNum - and #2 - bne @alt - ldx #BLIT_OFF0 - jsr @clear1 - ldx #BLIT_OFF1 - jsr @clear2 - ldx #BLIT_OFF2 - jsr @clear1 - ldx #BLIT_OFF3 - jsr @clear2 - ldx #BLIT_OFF4 - jsr @clear1 - ldx #BLIT_OFF5 - jsr @clear2 - ldx #BLIT_OFF6 - jmp @clear1 -@alt: - ldx #BLIT_OFF0 - jsr @clear2 - ldx #BLIT_OFF1 - jsr @clear1 - ldx #BLIT_OFF2 - jsr @clear2 - ldx #BLIT_OFF3 - jsr @clear1 - ldx #BLIT_OFF4 - jsr @clear2 - ldx #BLIT_OFF5 - jsr @clear1 - ldx #BLIT_OFF6 - jmp @clear2 -@clear1: - ldy gndColorEven - lda skyColorEven - jsr clrBlitRollO - ldy gndColorOdd - lda skyColorOdd - jmp clrBlitRollE -@clear2: - ldy gndColorEven - lda skyColorEven - jsr clrBlitRollE - ldy gndColorOdd - lda skyColorOdd - jmp clrBlitRollO +clearBlit: !zone + lda byteNum + and #2 + bne .alt + ldx #BLIT_OFF0 + jsr .clr1 + ldx #BLIT_OFF1 + jsr .clr2 + ldx #BLIT_OFF2 + jsr .clr1 + ldx #BLIT_OFF3 + jsr .clr2 + ldx #BLIT_OFF4 + jsr .clr1 + ldx #BLIT_OFF5 + jsr .clr2 + ldx #BLIT_OFF6 + jmp .clr1 +.alt: ldx #BLIT_OFF0 + jsr .clr2 + ldx #BLIT_OFF1 + jsr .clr1 + ldx #BLIT_OFF2 + jsr .clr2 + ldx #BLIT_OFF3 + jsr .clr1 + ldx #BLIT_OFF4 + jsr .clr2 + ldx #BLIT_OFF5 + jsr .clr1 + ldx #BLIT_OFF6 + jmp .clr2 +.clr1: ldy gndColorEven + lda skyColorEven + jsr clrBlitRollO + ldy gndColorOdd + lda skyColorOdd + jmp clrBlitRollE +.clr2: ldy gndColorEven + lda skyColorEven + jsr clrBlitRollE + ldy gndColorOdd + lda skyColorOdd + jmp clrBlitRollO ; Construct the pixel decoding tables -makeDecodeTbls: - ldx #0 -@shiftA: - ; bit 5 controls the high bit (orange/blue vs green/purple) - txa - asl - asl - and #$80 - sta tmp+1 - ; extract only bits 1 and 3 for the pixel data - txa - and #8 ; bit 3 - lsr - lsr - sta tmp - txa - and #2 ; bit 1 - lsr - ora tmp -@decodeTo01: - ora tmp+1 - sta decodeTo01,x -@decodeTo01b: ; put hi bit in bit 6 instead of 7 - bpl :+ - ora #$40 -: sta decodeTo01b,x -@decodeTo23: - asl - asl - ora tmp+1 - sta decodeTo23,x -@decodeTo23b: ; put hi bit in bit 6 instead of 7 - bpl :+ - ora #$40 -: sta decodeTo23b,x -@decodeTo45: - asl - asl - ora tmp+1 - sta decodeTo45,x -@decodeTo56: - asl - ora tmp+1 - sta decodeTo56,x -@decodeTo57: - asl - asl - php - lsr - plp - ror - sta decodeTo57,x -@next: - inx - bne @shiftA - rts +makeDecodeTbls: !zone + ldx #0 +.shiftA: ; bit 5 controls the high bit (orange/blue vs green/purple) + txa + asl + asl + and #$80 + sta tmp+1 + ; extract only bits 1 and 3 for the pixel data + txa + and #8 ; bit 3 + lsr + lsr + sta tmp + txa + and #2 ; bit 1 + lsr + ora tmp +.decodeTo01: + ora tmp+1 + sta decodeTo01,x +.decodeTo01b: ; put hi bit in bit 6 instead of 7 + bpl + + ora #$40 ++ sta decodeTo01b,x +.decodeTo23: + asl + asl + ora tmp+1 + sta decodeTo23,x +.decodeTo23b: ; put hi bit in bit 6 instead of 7 + bpl + + ora #$40 ++ sta decodeTo23b,x +.decodeTo45: + asl + asl + ora tmp+1 + sta decodeTo45,x +.decodeTo56: + asl + ora tmp+1 + sta decodeTo56,x +.decodeTo57: + asl + asl + php + lsr + plp + ror + sta decodeTo57,x +.next: inx + bne .shiftA + rts ; Build table of screen line pointers ; on aux zero-page -makeLines: - lda #0 - sta lineCt - lda #TOP_LINE - sta pLine+1 -@lup: - lda lineCt - asl - tax - lda pLine - ldy pLine+1 - sta setAuxZP - sta 0,x - sty 1,x - sta clrAuxZP - jsr nextLine - inc lineCt - lda lineCt - cmp #NLINES - bne @lup - rts +makeLines: !zone + lda #0 + sta lineCt + lda #TOP_LINE + sta pLine+1 +.lup: lda lineCt + asl + tax + lda pLine + ldy pLine+1 + sta setAuxZP + sta 0,x + sty 1,x + sta clrAuxZP + jsr nextLine + inc lineCt + lda lineCt + cmp #NLINES + bne .lup + rts ; Set screen lines to current back buf -setBackBuf: +setBackBuf: !zone ; calculate screen start - lda backBuf - asl - asl - asl - asl - asl - clc - adc #$20 - sta setAuxZP - ldx #0 -@lup: - eor 1,x - and #$60 ; only two bits control the screen buf - eor 1,x - sta 1,x - inx - inx - bne @lup - sta clrAuxZP - rts + lda backBuf + asl + asl + asl + asl + asl + clc + adc #$20 + sta setAuxZP + ldx #0 +.lup: eor 1,x + and #$60 ; only two bits control the screen buf + eor 1,x + sta 1,x + inx + inx + bne .lup + sta clrAuxZP + rts ;------------------------------------------------------------------------------- -initMem: - DEBUG_STR "Raycast: setting up memory." - lda #LOCK_MEMORY ; lock ourselves in before reset - ldx #start - jsr mainLoader - lda #RESET_MEMORY ; clear everything else - jsr mainLoader - ; Reserve memory for our tables - lda #SET_MEM_TARGET - ldx #tableStart - jsr mainLoader - lda #REQUEST_MEMORY - ldx #<(tableEnd-tableStart) - ldy #>(tableEnd-tableStart) - jsr mainLoader - DEBUG_STR "Loading expansion code." - ; Load the texture expansion code into aux mem. - lda #SET_MEM_TARGET - ldx #expandVec - jsr mainLoader - lda #QUEUE_LOAD ; we assume bootstrapper left the queue open - ldx #RES_TYPE_CODE - ldy #2 ; hard coded for now: code #2 is texture expander - jsr auxLoader - DEBUG_STR "Loading frame." - ; Load the UI frame - lda #SET_MEM_TARGET - ldx #0 - ldy #$20 - jsr mainLoader - lda #QUEUE_LOAD - ldx #RES_TYPE_SCREEN - ldy #1 - jsr mainLoader - ; Load the map into main mem - DEBUG_STR "Loading map." - lda #QUEUE_LOAD - ldx #RES_TYPE_3D_MAP - ldy mapNum ; hard-coded for now - jsr mainLoader - stx mapHeader - sty mapHeader+1 - ; Force the loads to complete now - lda #FINISH_LOAD - ldx #1 ; keep queue open - jsr mainLoader - ; Copy the expansion caller to low stack. - ldx #12 -: lda @callIt,x - sta $100,x - dex - bpl :- - rts -@callIt: - sta setAuxRd - jsr $10A - sta clrAuxRd - rts - jmp (expandVec) +initMem: !zone + !if DEBUG { +prStr : !text "Raycast: setting up memory.",0 } + lda #LOCK_MEMORY ; lock ourselves in before reset + ldx #start + jsr mainLoader + lda #RESET_MEMORY ; clear everything else + jsr mainLoader + ; Reserve memory for our tables + lda #SET_MEM_TARGET + ldx #tableStart + jsr mainLoader + lda #REQUEST_MEMORY + ldx #<(tableEnd-tableStart) + ldy #>(tableEnd-tableStart) + jsr mainLoader + !if DEBUG { +prStr : !text "Loading expansion code.",0 } + ; Load the texture expansion code into aux mem. + lda #SET_MEM_TARGET + ldx #expandVec + jsr mainLoader + lda #QUEUE_LOAD ; we assume bootstrapper left the queue open + ldx #RES_TYPE_CODE + ldy #2 ; hard coded for now: code #2 is texture expander + jsr auxLoader + !if DEBUG { +prStr : !text "Loading frame.",0 } + ; Load the UI frame + lda #SET_MEM_TARGET + ldx #0 + ldy #$20 + jsr mainLoader + lda #QUEUE_LOAD + ldx #RES_TYPE_SCREEN + ldy #1 + jsr mainLoader + ; Load the map into main mem + !if DEBUG { +prStr : !text "Loading map.",0 } + lda #QUEUE_LOAD + ldx #RES_TYPE_3D_MAP + ldy mapNum ; hard-coded for now + jsr mainLoader + stx mapHeader + sty mapHeader+1 + ; Force the loads to complete now + lda #FINISH_LOAD + ldx #1 ; keep queue open + jsr mainLoader + ; Copy the expansion caller to low stack. + ldx #.callEnd - .callIt - 1 +- lda .callIt,x + sta $100,x + dex + bpl - + rts +.callIt: +!pseudopc $100 { + sta setAuxRd + jsr .jmp + sta clrAuxRd + rts +.jmp: jmp (expandVec) +} +.callEnd: ;------------------------------------------------------------------------------- ; Establish the initial player position and direction [ref BigBlue3_10] -setPlayerPos: - ; X=1.5 - lda #1 - sta playerX+1 - lda #$80 - sta playerX - ; Y=2.5 - lda #2 - sta playerY+1 - lda #$80 - sta playerY - ; direction=0 - lda #0 - sta playerDir - rts +setPlayerPos: !zone + ; X=1.5 + lda #1 + sta playerX+1 + lda #$80 + sta playerX + ; Y=2.5 + lda #2 + sta playerY+1 + lda #$80 + sta playerY + ; direction=0 + lda #0 + sta playerDir + rts ;------------------------------------------------------------------------------- ; Load the texture expansion code, copy it to aux mem -loadTextures: - DEBUG_STR "Loading textures." - ; Scan the map header - lda mapHeader - sta @get+1 - lda mapHeader+1 - sta @get+2 - jsr @get ; get map width - sta mapWidth ; and save it - jsr @get ; get map height - sta mapHeight ; and save it - lda #0 - sta txNum -@lup: - jsr @get ; get texture resource number - tay ; to Y for mem manager - beq @done ; zero = end of texture list - lda #QUEUE_LOAD - ldx #RES_TYPE_TEXTURE - jsr auxLoader ; we want textures in aux mem - txa ; addr lo to A for safekeeping - ldx txNum ; get current texture num - sta texAddrLo,x ; save address lo - tya - sta texAddrHi,x ; save address hi - inx ; get ready for next texture - cpx #MAX_TEXTURES - bne :+ - brk ; barf out if too many textures -: stx txNum - jmp @lup -@done: - ; end of the texture numbers is the base of the map data - record it - lda @get+1 - sta mapBase - lda @get+2 - sta mapBase+1 - ; finalize the load, and close the queue because textures are the last thing - ; to load. - lda #FINISH_LOAD - ldx #0 - jmp mainLoader -@get: lda $1111 - inc @get+1 - bne :+ - inc @get+2 -: rts +loadTextures: !zone + !if DEBUG { +prStr : !text "Loading textures.",0 } + ; Scan the map header + lda mapHeader + sta .get+1 + lda mapHeader+1 + sta .get+2 + jsr .get ; get map width + sta mapWidth ; and save it + jsr .get ; get map height + sta mapHeight ; and save it + lda #0 + sta txNum +.lup: jsr .get ; get texture resource number + tay ; to Y for mem manager + beq .done ; zero = end of texture list + lda #QUEUE_LOAD + ldx #RES_TYPE_TEXTURE + jsr auxLoader ; we want textures in aux mem + txa ; addr lo to A for safekeeping + ldx txNum ; get current texture num + sta texAddrLo,x ; save address lo + tya + sta texAddrHi,x ; save address hi + inx ; get ready for next texture + cpx #MAX_TEXTURES + bne + + brk ; barf out if too many textures ++ stx txNum + jmp .lup +.done: ; end of the texture numbers is the base of the map data - record it + lda .get+1 + sta mapBase + lda .get+2 + sta mapBase+1 + ; finalize the load, and close the queue because textures are the last thing + ; to load. + lda #FINISH_LOAD + ldx #0 + jmp mainLoader +.get: lda $1111 + inc .get+1 + bne + + inc .get+2 ++ rts ;------------------------------------------------------------------------------- ; Set up front and back buffers, go to hires mode, and clear for first blit. -graphInit: - lda #0 - sta frontBuf - .if DOUBLE_BUFFER - lda #1 - .endif - sta backBuf +graphInit: !zone + lda #0 + sta frontBuf + !if DOUBLE_BUFFER { lda #1 } + sta backBuf - .if DEBUG - DEBUG_STR "Staying in text mode." - .else - bit clrText - bit setHires - .endif - rts +!if DEBUG >= 2 { + +prStr : !text "Staying in text mode.",0 +} else { + bit clrText + bit setHires +} + rts ;------------------------------------------------------------------------------- ; Cast all the rays from the current player coord -castAllRays: +castAllRays: !zone - ; Initialize pointer into precalculated ray table, based on player dir. - ; The table has 256 bytes per direction. - ldx #0 - stx pRayData - lda playerDir - clc - adc #>precast_0 - sta pRayData+1 + ; Initialize pointer into precalculated ray table, based on player dir. + ; The table has 256 bytes per direction. + ldx #0 + stx pRayData + lda playerDir + clc + adc #>precast_0 + sta pRayData+1 - ; start at column zero - stx screenCol + ; start at column zero + stx screenCol - ; Init the min/max trackers, which are used after casting - ; to filter out non-visible sprites - stx maxX - stx maxY - dex - stx minX - stx minY + ; Init the min/max trackers, which are used after casting + ; to filter out non-visible sprites + stx maxX + stx maxY + dex + stx minX + stx minY - ; Calculate pointer to the map row based on playerY - lda mapBase ; start at row 0, col 0 of the map - ldy mapBase+1 - ldx playerY+1 ; integer part of player's Y coord - beq @gotMapRow - clc -@mapLup: ; advance forward one row - adc mapWidth - bcc :+ - iny - clc -: dex ; until we reach players Y coord - bne @mapLup -@gotMapRow: - sta mapRayOrigin - sty mapRayOrigin+1 + ; Calculate pointer to the map row based on playerY + lda mapBase ; start at row 0, col 0 of the map + ldy mapBase+1 + ldx playerY+1 ; integer part of player's Y coord + beq .gotMapRow + clc +.mapLup: ; advance forward one row + adc mapWidth + bcc + + iny + clc ++ dex ; until we reach players Y coord + bne .mapLup +.gotMapRow: + sta mapRayOrigin + sty mapRayOrigin+1 - ; Calculate the height, depth, texture number, and texture column for one ray - ; [ref BigBlue3_50] - lda screenCol ; calculate ray offset... -@oneCol: - asl ; as screen column * 4 - asl - tay - lda mapRayOrigin ; set initial map pointer for the ray - sta pMap - lda mapRayOrigin+1 - sta pMap+1 + ; Calculate the height, depth, texture number, and texture column for one ray + ; [ref BigBlue3_50] + lda screenCol ; calculate ray offset... +.oneCol: + asl ; as screen column * 4 + asl + tay + lda mapRayOrigin ; set initial map pointer for the ray + sta pMap + lda mapRayOrigin+1 + sta pMap+1 - jsr castRay ; cast the ray across the map + jsr castRay ; cast the ray across the map - inc screenCol ; advance to next column - lda screenCol - cmp #63 ; stop after we do 63 columns = 126 bw pix - bne @oneCol - rts + inc screenCol ; advance to next column + lda screenCol + cmp #63 ; stop after we do 63 columns = 126 bw pix + bne .oneCol + rts ;------------------------------------------------------------------------------- ; Render one whole frame -renderFrame: - .if DOUBLE_BUFFER - jsr setBackBuf - .endif +renderFrame: !zone + !if DOUBLE_BUFFER { jsr setBackBuf } - jsr castAllRays + jsr castAllRays - lda #0 - sta pixNum - sta byteNum - sta screenCol + lda #0 + sta pixNum + sta byteNum + sta screenCol -@oneCol: - lda pixNum - bne :+ - jsr clearBlit ; clear blit on the first pixel -: jsr drawRay ; and draw the ray - .if DEBUG - DEBUG_STR "Done drawing ray " - DEBUG_BYTE screenCol - DEBUG_LN - .endif - inc screenCol ; next column - inc pixNum ; do we need to flush the pixel buffer? - lda pixNum - cmp #7 - bne @nextCol ; not yet -@flush: - ; flush the blit - DEBUG_STR "Flushing." - ldy byteNum - iny ; move to right 2 bytes to preserve frame border - iny - sta setAuxZP - jsr blitRoll - sta clrAuxZP - lda #0 - sta pixNum - inc byteNum - inc byteNum -@nextCol: - lda byteNum - cmp #18 - bne @oneCol ; go back for another ray - rts +.oneCol: + lda pixNum + bne + + jsr clearBlit ; clear blit on the first pixel ++ jsr drawRay ; and draw the ray + !if DEBUG >= 2 { +prStr : !text "Done drawing ray ",0 : +prByte screenCol : +crout } + inc screenCol ; next column + inc pixNum ; do we need to flush the pixel buffer? + lda pixNum + cmp #7 + bne .nextCol ; not yet +.flush: ; flush the blit + !if DEBUG >= 2 { +prStr : !text "Flushing.",0 } + ldy byteNum + iny ; move to right 2 bytes to preserve frame border + iny + sta setAuxZP + jsr blitRoll + sta clrAuxZP + lda #0 + sta pixNum + inc byteNum + inc byteNum +.nextCol: + lda byteNum + cmp #18 + bne .oneCol ; go back for another ray + rts ;------------------------------------------------------------------------------- ; Move the player forward a quarter step -moveForward: - lda playerDir - asl - asl - tax - lda playerX - clc - adc walkDirs,x - sta playerX - lda playerX+1 - adc walkDirs+1,x - sta playerX+1 - lda playerY - clc - adc walkDirs+2,x - sta playerY - lda playerY+1 - adc walkDirs+3,x - sta playerY+1 - rts +moveForward: !zone + lda playerDir + asl + asl + tax + lda playerX + clc + adc walkDirs,x + sta playerX + lda playerX+1 + adc walkDirs+1,x + sta playerX+1 + lda playerY + clc + adc walkDirs+2,x + sta playerY + lda playerY+1 + adc walkDirs+3,x + sta playerY+1 + rts ;------------------------------------------------------------------------------- ; Move the player forward a quarter step -moveBackward: - lda playerDir - asl - asl - tax - lda playerX - sec - sbc walkDirs,x - sta playerX - lda playerX+1 - sbc walkDirs+1,x - sta playerX+1 - lda playerY - sec - sbc walkDirs+2,x - sta playerY - lda playerY+1 - sbc walkDirs+3,x - sta playerY+1 - rts +moveBackward: !zone + lda playerDir + asl + asl + tax + lda playerX + sec + sbc walkDirs,x + sta playerX + lda playerX+1 + sbc walkDirs+1,x + sta playerX+1 + lda playerY + sec + sbc walkDirs+2,x + sta playerY + lda playerY+1 + sbc walkDirs+3,x + sta playerY+1 + rts ;------------------------------------------------------------------------------- ; Rotate player 22.5 degrees to the left -rotateLeft: - dec playerDir - lda playerDir - cmp #$FF - bne :+ - lda #15 -: sta playerDir - rts +rotateLeft: !zone + dec playerDir + lda playerDir + cmp #$FF + bne + + lda #15 ++ sta playerDir + rts ;------------------------------------------------------------------------------- ; Rotate player 22.5 degrees to the right -rotateRight: - inc playerDir - lda playerDir - cmp #16 - bne :+ - lda #0 -: sta playerDir - rts +rotateRight: !zone + inc playerDir + lda playerDir + cmp #16 + bne + + lda #0 ++ sta playerDir + rts ;------------------------------------------------------------------------------- ; Flip back buffer onto the screen -flip: - .if DOUBLE_BUFFER - ldx backBuf - lda frontBuf - sta backBuf - stx frontBuf - lda page1,x - .endif - rts +flip: !zone +!if DOUBLE_BUFFER { + ldx backBuf + lda frontBuf + sta backBuf + stx frontBuf + lda page1,x +} + rts ;------------------------------------------------------------------------------- -copyScreen: - ; Copy all screen data from page 1 to page 2 - ldy #0 - ldx #$20 -@outer: - stx @inner1+2 - txa - eor #$60 ; page 1 -> page 2 - sta @inner2+2 -@inner1: - lda $2000,y -@inner2: - sta $4000,y - iny - bne @inner1 - inx - cpx #$40 - bne @outer - rts +copyScreen: !zone + ; Copy all screen data from page 1 to page 2 + ldy #0 + ldx #$20 +.outer: stx .inr1+2 + txa + eor #$60 ; page 1 -> page 2 + sta .inr2+2 +.inr1: lda $2000,y +.inr2: sta $4000,y + iny + bne .inr1 + inx + cpx #$40 + bne .outer + rts ;------------------------------------------------------------------------------- -setGndColor: - jsr readKbdColor - bcs :+ - sta gndColorEven - stx gndColorOdd -: rts +setGndColor: !zone + jsr readKbdColor + bcs + + sta gndColorEven + stx gndColorOdd ++ rts -setSkyColor: - jsr readKbdColor - bcs :+ - sta skyColorEven - stx skyColorOdd -: rts +setSkyColor: !zone + jsr readKbdColor + bcs + + sta skyColorEven + stx skyColorOdd ++ rts -readKbdColor: - jsr rdkey - and #$7F - sec - sbc #'0' - bcc @bad - cmp #8 - bcs @bad - tay - ldx skyGndTbl1,y - lda skyGndTbl2,y - rts -@bad: - jsr bell - sec - rts +readKbdColor: !zone + jsr rdkey + sec + sbc #'0' + bcc .bad + cmp #8 + bcs .bad + tay + ldx skyGndTbl1,y + lda skyGndTbl2,y + rts +.bad: jsr bell + sec + rts ;------------------------------------------------------------------------------- -nextMap: - ldx mapNum - inx - cpx #4 - bne :+ - ldx #1 -: stx mapNum - bit setText - bit page1 - jmp main ; re-init everything +nextMap: !zone + ldx mapNum + inx + cpx #4 + bne + + ldx #1 ++ stx mapNum + bit setText + bit page1 + jmp main ; re-init everything ;------------------------------------------------------------------------------- ; The real action -main: - ; Put ourselves high on the stack - ldx #$FF - txs - ; Set up memory - jsr initMem - jsr setPlayerPos - jsr loadTextures - jsr copyScreen - ; Build all the unrolls and tables - DEBUG_STR "Making tables." - jsr makeBlit - jsr makeClrBlit - jsr makeDecodeTbls - jsr makeLines - jsr graphInit - bit clrMixed - ; Render the frame and flip it onto the screen -@nextFrame: - jsr renderFrame - jsr flip - ; wait for a key - DEBUG_STR "Done rendering, waiting for key." -@pauseLup: - lda kbd ; check for key - bpl @pauseLup ; loop until one is pressed - sta kbdStrobe ; eat the keypress - and #$7F ; convert to low-bit ASCII because assembler uses that - cmp #$60 ; lower-case? - bcc :+ ; no - sec - sbc #$20 ; yes, convert to upper case - ; Dispatch the keypress [ref BigBlue3_40] -: cmp #'W' ; 'W' for forward - bne :+ - jsr moveForward - jmp @nextFrame -: cmp #'X' ; 'X' alternative for 'S' - bne :+ - lda #'S' -: cmp #'S' ; 'S' for backward - bne :+ - jsr moveBackward - jmp @nextFrame -: cmp #'A' ; 'A' for left - bne :+ - jsr rotateLeft - jmp @nextFrame -: cmp #'D' ; 'D' for right - bne :+ - jsr rotateRight - jmp @nextFrame -: cmp #$1B ; ESC to exit - bne :+ - jmp @done -: cmp #'G' ; G to set ground color - bne :+ - jsr setGndColor - jmp @nextFrame -: cmp #'K' ; K to set sky color - bne :+ - jsr setSkyColor - jmp @nextFrame -: cmp #'M' ; M to switch maps - bne :+ - jmp nextMap -: jsr bell ; beep for unrecognized key - jmp @pauseLup ; go back and get another one. -@done: - ; back to text mode - bit setText - bit page1 - ; quit to monitor - ldx #$FF - txs - jmp monitor +main: !zone + ; Put ourselves high on the stack + ldx #$FF + txs + ; Set up memory + jsr initMem + jsr setPlayerPos + jsr loadTextures + jsr copyScreen + ; Build all the unrolls and tables + !if DEBUG { +prStr : !text "Making tables.",0 } + jsr makeBlit + jsr makeClrBlit + jsr makeDecodeTbls + jsr makeLines + jsr graphInit + bit clrMixed + ; Render the frame and flip it onto the screen +.nextFrame: + jsr renderFrame + jsr flip + ; wait for a key + !if DEBUG { +prStr : !text "Done rendering, waiting for key.",0 } +.pauseLup: + lda kbd ; check for key + bpl .pauseLup ; loop until one is pressed + sta kbdStrobe ; eat the keypress + cmp #$E0 ; lower-case? + bcc + ; no + sec + sbc #$20 ; yes, convert to upper case + ; Dispatch the keypress [ref BigBlue3_40] ++ cmp #'W' ; 'W' for forward + bne + + jsr moveForward + jmp .nextFrame ++ cmp #'X' ; 'X' alternative for 'S' + bne + + lda #'S' ++ cmp #'S' ; 'S' for backward + bne + + jsr moveBackward + jmp .nextFrame ++ cmp #'A' ; 'A' for left + bne + + jsr rotateLeft + jmp .nextFrame ++ cmp #'D' ; 'D' for right + bne + + jsr rotateRight + jmp .nextFrame ++ cmp #$9B ; ESC to exit + bne + + jmp .done ++ cmp #'G' ; G to set ground color + bne + + jsr setGndColor + jmp .nextFrame ++ cmp #'K' ; K to set sky color + bne + + jsr setSkyColor + jmp .nextFrame ++ cmp #'M' ; M to switch maps + bne + + jmp nextMap ++ jsr bell ; beep for unrecognized key + jmp .pauseLup ; go back and get another one. +.done: ; back to text mode + bit setText + bit page1 + ; quit to monitor + jmp monitor ; Following are log/pow lookup tables. For speed, align them on a page boundary. - .align 256 + !align 255,0 ; Table to translate an unsigned byte to 3+5 bit fixed point log2 [ref BigBlue3_20] tbl_log2_b_b: - .byte $00,$00,$00,$00,$00,$07,$0C,$11,$15,$19,$1C,$1F,$22,$24,$27,$29 - .byte $2B,$2D,$2E,$30,$32,$33,$34,$36,$37,$38,$3A,$3B,$3C,$3D,$3E,$3F - .byte $40,$41,$42,$43,$44,$44,$45,$46,$47,$48,$48,$49,$4A,$4A,$4B,$4C - .byte $4C,$4D,$4E,$4E,$4F,$50,$50,$51,$51,$52,$52,$53,$53,$54,$54,$55 - .byte $55,$56,$56,$57,$57,$58,$58,$59,$59,$59,$5A,$5A,$5B,$5B,$5B,$5C - .byte $5C,$5D,$5D,$5D,$5E,$5E,$5E,$5F,$5F,$5F,$60,$60,$61,$61,$61,$61 - .byte $62,$62,$62,$63,$63,$63,$64,$64,$64,$65,$65,$65,$65,$66,$66,$66 - .byte $67,$67,$67,$67,$68,$68,$68,$68,$69,$69,$69,$69,$6A,$6A,$6A,$6A - .byte $6B,$6B,$6B,$6B,$6C,$6C,$6C,$6C,$6D,$6D,$6D,$6D,$6D,$6E,$6E,$6E - .byte $6E,$6F,$6F,$6F,$6F,$6F,$70,$70,$70,$70,$70,$71,$71,$71,$71,$71 - .byte $72,$72,$72,$72,$72,$72,$73,$73,$73,$73,$73,$74,$74,$74,$74,$74 - .byte $74,$75,$75,$75,$75,$75,$75,$76,$76,$76,$76,$76,$76,$77,$77,$77 - .byte $77,$77,$77,$78,$78,$78,$78,$78,$78,$79,$79,$79,$79,$79,$79,$79 - .byte $7A,$7A,$7A,$7A,$7A,$7A,$7A,$7B,$7B,$7B,$7B,$7B,$7B,$7B,$7C,$7C - .byte $7C,$7C,$7C,$7C,$7C,$7D,$7D,$7D,$7D,$7D,$7D,$7D,$7D,$7E,$7E,$7E - .byte $7E,$7E,$7E,$7E,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F + !byte $00,$00,$00,$00,$00,$07,$0C,$11,$15,$19,$1C,$1F,$22,$24,$27,$29 + !byte $2B,$2D,$2E,$30,$32,$33,$34,$36,$37,$38,$3A,$3B,$3C,$3D,$3E,$3F + !byte $40,$41,$42,$43,$44,$44,$45,$46,$47,$48,$48,$49,$4A,$4A,$4B,$4C + !byte $4C,$4D,$4E,$4E,$4F,$50,$50,$51,$51,$52,$52,$53,$53,$54,$54,$55 + !byte $55,$56,$56,$57,$57,$58,$58,$59,$59,$59,$5A,$5A,$5B,$5B,$5B,$5C + !byte $5C,$5D,$5D,$5D,$5E,$5E,$5E,$5F,$5F,$5F,$60,$60,$61,$61,$61,$61 + !byte $62,$62,$62,$63,$63,$63,$64,$64,$64,$65,$65,$65,$65,$66,$66,$66 + !byte $67,$67,$67,$67,$68,$68,$68,$68,$69,$69,$69,$69,$6A,$6A,$6A,$6A + !byte $6B,$6B,$6B,$6B,$6C,$6C,$6C,$6C,$6D,$6D,$6D,$6D,$6D,$6E,$6E,$6E + !byte $6E,$6F,$6F,$6F,$6F,$6F,$70,$70,$70,$70,$70,$71,$71,$71,$71,$71 + !byte $72,$72,$72,$72,$72,$72,$73,$73,$73,$73,$73,$74,$74,$74,$74,$74 + !byte $74,$75,$75,$75,$75,$75,$75,$76,$76,$76,$76,$76,$76,$77,$77,$77 + !byte $77,$77,$77,$78,$78,$78,$78,$78,$78,$79,$79,$79,$79,$79,$79,$79 + !byte $7A,$7A,$7A,$7A,$7A,$7A,$7A,$7B,$7B,$7B,$7B,$7B,$7B,$7B,$7C,$7C + !byte $7C,$7C,$7C,$7C,$7C,$7D,$7D,$7D,$7D,$7D,$7D,$7D,$7D,$7E,$7E,$7E + !byte $7E,$7E,$7E,$7E,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F,$7F ; Table to translate 3+5 bit fixed point log2 back to an unsigned byte tbl_pow2_b_b: - .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01 - .byte $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$02,$02,$02,$02,$02 - .byte $02,$02,$02,$02,$02,$02,$02,$02,$03,$03,$03,$03,$03,$03,$03,$03 - .byte $04,$04,$04,$04,$04,$04,$04,$05,$05,$05,$05,$05,$05,$06,$06,$06 - .byte $06,$06,$07,$07,$07,$07,$08,$08,$08,$09,$09,$09,$09,$0A,$0A,$0A - .byte $0B,$0B,$0C,$0C,$0C,$0D,$0D,$0E,$0E,$0F,$0F,$10,$10,$11,$11,$12 - .byte $13,$13,$14,$14,$15,$16,$17,$17,$18,$19,$1A,$1B,$1C,$1D,$1D,$1E - .byte $20,$21,$22,$23,$24,$25,$26,$28,$29,$2A,$2C,$2D,$2F,$30,$32,$34 - .byte $35,$37,$39,$3B,$3D,$3F,$41,$43,$45,$48,$4A,$4C,$4F,$52,$54,$57 - .byte $5A,$5D,$60,$63,$67,$6A,$6D,$71,$75,$79,$7D,$81,$85,$8A,$8E,$93 - .byte $98,$9D,$A2,$A7,$AD,$B3,$B8,$BF,$C5,$CB,$D2,$D9,$E0,$E8,$EF,$F7 + !byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + !byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + !byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + !byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + !byte $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 + !byte $00,$00,$00,$00,$00,$00,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01 + !byte $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$02,$02,$02,$02,$02 + !byte $02,$02,$02,$02,$02,$02,$02,$02,$03,$03,$03,$03,$03,$03,$03,$03 + !byte $04,$04,$04,$04,$04,$04,$04,$05,$05,$05,$05,$05,$05,$06,$06,$06 + !byte $06,$06,$07,$07,$07,$07,$08,$08,$08,$09,$09,$09,$09,$0A,$0A,$0A + !byte $0B,$0B,$0C,$0C,$0C,$0D,$0D,$0E,$0E,$0F,$0F,$10,$10,$11,$11,$12 + !byte $13,$13,$14,$14,$15,$16,$17,$17,$18,$19,$1A,$1B,$1C,$1D,$1D,$1E + !byte $20,$21,$22,$23,$24,$25,$26,$28,$29,$2A,$2C,$2D,$2F,$30,$32,$34 + !byte $35,$37,$39,$3B,$3D,$3F,$41,$43,$45,$48,$4A,$4C,$4F,$52,$54,$57 + !byte $5A,$5D,$60,$63,$67,$6A,$6D,$71,$75,$79,$7D,$81,$85,$8A,$8E,$93 + !byte $98,$9D,$A2,$A7,$AD,$B3,$B8,$BF,$C5,$CB,$D2,$D9,$E0,$E8,$EF,$F7 ; Table to translate 8-bit mantissa to fractional part of log2 tbl_log2_w_w: - .byte $00,$01,$02,$04,$05,$07,$08,$09,$0B,$0C,$0E,$0F,$10,$12,$13,$15 - .byte $16,$17,$19,$1A,$1B,$1D,$1E,$1F,$21,$22,$23,$25,$26,$27,$28,$2A - .byte $2B,$2C,$2E,$2F,$30,$31,$33,$34,$35,$36,$38,$39,$3A,$3B,$3D,$3E - .byte $3F,$40,$41,$43,$44,$45,$46,$47,$49,$4A,$4B,$4C,$4D,$4E,$50,$51 - .byte $52,$53,$54,$55,$57,$58,$59,$5A,$5B,$5C,$5D,$5E,$60,$61,$62,$63 - .byte $64,$65,$66,$67,$68,$69,$6A,$6C,$6D,$6E,$6F,$70,$71,$72,$73,$74 - .byte $75,$76,$77,$78,$79,$7A,$7B,$7C,$7D,$7E,$7F,$80,$81,$83,$84,$85 - .byte $86,$87,$88,$89,$8A,$8B,$8C,$8C,$8D,$8E,$8F,$90,$91,$92,$93,$94 - .byte $95,$96,$97,$98,$99,$9A,$9B,$9C,$9D,$9E,$9F,$A0,$A1,$A2,$A2,$A3 - .byte $A4,$A5,$A6,$A7,$A8,$A9,$AA,$AB,$AC,$AD,$AD,$AE,$AF,$B0,$B1,$B2 - .byte $B3,$B4,$B5,$B5,$B6,$B7,$B8,$B9,$BA,$BB,$BC,$BC,$BD,$BE,$BF,$C0 - .byte $C1,$C2,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C8,$C9,$CA,$CB,$CC,$CD,$CD - .byte $CE,$CF,$D0,$D1,$D1,$D2,$D3,$D4,$D5,$D6,$D6,$D7,$D8,$D9,$DA,$DA - .byte $DB,$DC,$DD,$DE,$DE,$DF,$E0,$E1,$E1,$E2,$E3,$E4,$E5,$E5,$E6,$E7 - .byte $E8,$E8,$E9,$EA,$EB,$EB,$EC,$ED,$EE,$EF,$EF,$F0,$F1,$F2,$F2,$F3 - .byte $F4,$F5,$F5,$F6,$F7,$F7,$F8,$F9,$FA,$FA,$FB,$FC,$FD,$FD,$FE,$FF + !byte $00,$01,$02,$04,$05,$07,$08,$09,$0B,$0C,$0E,$0F,$10,$12,$13,$15 + !byte $16,$17,$19,$1A,$1B,$1D,$1E,$1F,$21,$22,$23,$25,$26,$27,$28,$2A + !byte $2B,$2C,$2E,$2F,$30,$31,$33,$34,$35,$36,$38,$39,$3A,$3B,$3D,$3E + !byte $3F,$40,$41,$43,$44,$45,$46,$47,$49,$4A,$4B,$4C,$4D,$4E,$50,$51 + !byte $52,$53,$54,$55,$57,$58,$59,$5A,$5B,$5C,$5D,$5E,$60,$61,$62,$63 + !byte $64,$65,$66,$67,$68,$69,$6A,$6C,$6D,$6E,$6F,$70,$71,$72,$73,$74 + !byte $75,$76,$77,$78,$79,$7A,$7B,$7C,$7D,$7E,$7F,$80,$81,$83,$84,$85 + !byte $86,$87,$88,$89,$8A,$8B,$8C,$8C,$8D,$8E,$8F,$90,$91,$92,$93,$94 + !byte $95,$96,$97,$98,$99,$9A,$9B,$9C,$9D,$9E,$9F,$A0,$A1,$A2,$A2,$A3 + !byte $A4,$A5,$A6,$A7,$A8,$A9,$AA,$AB,$AC,$AD,$AD,$AE,$AF,$B0,$B1,$B2 + !byte $B3,$B4,$B5,$B5,$B6,$B7,$B8,$B9,$BA,$BB,$BC,$BC,$BD,$BE,$BF,$C0 + !byte $C1,$C2,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C8,$C9,$CA,$CB,$CC,$CD,$CD + !byte $CE,$CF,$D0,$D1,$D1,$D2,$D3,$D4,$D5,$D6,$D6,$D7,$D8,$D9,$DA,$DA + !byte $DB,$DC,$DD,$DE,$DE,$DF,$E0,$E1,$E1,$E2,$E3,$E4,$E5,$E5,$E6,$E7 + !byte $E8,$E8,$E9,$EA,$EB,$EB,$EC,$ED,$EE,$EF,$EF,$F0,$F1,$F2,$F2,$F3 + !byte $F4,$F5,$F5,$F6,$F7,$F7,$F8,$F9,$FA,$FA,$FB,$FC,$FD,$FD,$FE,$FF ; Table to translate fractional part of log2 back to 8-bit mantissa tbl_pow2_w_w: - .byte $00,$00,$01,$02,$02,$03,$04,$04,$05,$06,$07,$07,$08,$09,$09,$0A - .byte $0B,$0C,$0C,$0D,$0E,$0E,$0F,$10,$11,$11,$12,$13,$14,$14,$15,$16 - .byte $17,$17,$18,$19,$1A,$1A,$1B,$1C,$1D,$1E,$1E,$1F,$20,$21,$21,$22 - .byte $23,$24,$25,$25,$26,$27,$28,$29,$29,$2A,$2B,$2C,$2D,$2D,$2E,$2F - .byte $30,$31,$32,$32,$33,$34,$35,$36,$37,$37,$38,$39,$3A,$3B,$3C,$3D - .byte $3D,$3E,$3F,$40,$41,$42,$43,$44,$44,$45,$46,$47,$48,$49,$4A,$4B - .byte $4C,$4C,$4D,$4E,$4F,$50,$51,$52,$53,$54,$55,$56,$57,$57,$58,$59 - .byte $5A,$5B,$5C,$5D,$5E,$5F,$60,$61,$62,$63,$64,$65,$66,$67,$68,$69 - .byte $6A,$6B,$6C,$6D,$6E,$6F,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79 - .byte $7A,$7B,$7C,$7D,$7E,$7F,$80,$81,$82,$83,$84,$85,$86,$87,$88,$89 - .byte $8A,$8C,$8D,$8E,$8F,$90,$91,$92,$93,$94,$95,$96,$97,$99,$9A,$9B - .byte $9C,$9D,$9E,$9F,$A0,$A2,$A3,$A4,$A5,$A6,$A7,$A8,$AA,$AB,$AC,$AD - .byte $AE,$AF,$B1,$B2,$B3,$B4,$B5,$B6,$B8,$B9,$BA,$BB,$BC,$BE,$BF,$C0 - .byte $C1,$C3,$C4,$C5,$C6,$C7,$C9,$CA,$CB,$CC,$CE,$CF,$D0,$D1,$D3,$D4 - .byte $D5,$D7,$D8,$D9,$DA,$DC,$DD,$DE,$E0,$E1,$E2,$E4,$E5,$E6,$E7,$E9 - .byte $EA,$EB,$ED,$EE,$EF,$F1,$F2,$F4,$F5,$F6,$F8,$F9,$FA,$FC,$FD,$FF + !byte $00,$00,$01,$02,$02,$03,$04,$04,$05,$06,$07,$07,$08,$09,$09,$0A + !byte $0B,$0C,$0C,$0D,$0E,$0E,$0F,$10,$11,$11,$12,$13,$14,$14,$15,$16 + !byte $17,$17,$18,$19,$1A,$1A,$1B,$1C,$1D,$1E,$1E,$1F,$20,$21,$21,$22 + !byte $23,$24,$25,$25,$26,$27,$28,$29,$29,$2A,$2B,$2C,$2D,$2D,$2E,$2F + !byte $30,$31,$32,$32,$33,$34,$35,$36,$37,$37,$38,$39,$3A,$3B,$3C,$3D + !byte $3D,$3E,$3F,$40,$41,$42,$43,$44,$44,$45,$46,$47,$48,$49,$4A,$4B + !byte $4C,$4C,$4D,$4E,$4F,$50,$51,$52,$53,$54,$55,$56,$57,$57,$58,$59 + !byte $5A,$5B,$5C,$5D,$5E,$5F,$60,$61,$62,$63,$64,$65,$66,$67,$68,$69 + !byte $6A,$6B,$6C,$6D,$6E,$6F,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79 + !byte $7A,$7B,$7C,$7D,$7E,$7F,$80,$81,$82,$83,$84,$85,$86,$87,$88,$89 + !byte $8A,$8C,$8D,$8E,$8F,$90,$91,$92,$93,$94,$95,$96,$97,$99,$9A,$9B + !byte $9C,$9D,$9E,$9F,$A0,$A2,$A3,$A4,$A5,$A6,$A7,$A8,$AA,$AB,$AC,$AD + !byte $AE,$AF,$B1,$B2,$B3,$B4,$B5,$B6,$B8,$B9,$BA,$BB,$BC,$BE,$BF,$C0 + !byte $C1,$C3,$C4,$C5,$C6,$C7,$C9,$CA,$CB,$CC,$CE,$CF,$D0,$D1,$D3,$D4 + !byte $D5,$D7,$D8,$D9,$DA,$DC,$DD,$DE,$E0,$E1,$E2,$E4,$E5,$E6,$E7,$E9 + !byte $EA,$EB,$ED,$EE,$EF,$F1,$F2,$F4,$F5,$F6,$F8,$F9,$FA,$FC,$FD,$FF ; Precalculated ray initialization parameters. One table for each of the 16 angles. ; Each angle has 63 rays, and each ray is provided with 4 parameters (one byte each param): ; dirX, dirY, deltaX, deltaY. [ref BigBlue3_30] precast_0: - .byte $72,$C7,$3E,$7C - .byte $72,$C9,$3D,$7E - .byte $72,$CB,$2C,$5E - .byte $72,$CD,$39,$7E - .byte $72,$CE,$30,$6E - .byte $72,$D0,$35,$7E - .byte $72,$D2,$33,$7E - .byte $72,$D4,$31,$7E - .byte $72,$D6,$2F,$7E - .byte $72,$D7,$28,$70 - .byte $72,$D9,$2B,$7E - .byte $72,$DB,$29,$7E - .byte $72,$DD,$27,$7E - .byte $72,$DF,$25,$7E - .byte $72,$E0,$23,$7E - .byte $72,$E2,$21,$7E - .byte $72,$E4,$1F,$7E - .byte $72,$E6,$1D,$7E - .byte $72,$E8,$18,$70 - .byte $72,$E9,$19,$7E - .byte $72,$EB,$17,$7E - .byte $72,$ED,$14,$78 - .byte $72,$EF,$13,$7E - .byte $72,$F1,$11,$7E - .byte $72,$F2,$0F,$7E - .byte $72,$F4,$0D,$7E - .byte $72,$F6,$0B,$7E - .byte $72,$F8,$09,$7E - .byte $72,$FA,$07,$7E - .byte $72,$FB,$05,$7E - .byte $72,$FD,$03,$7E - .byte $72,$FF,$01,$7E - .byte $72,$01,$01,$7F - .byte $72,$03,$03,$7E - .byte $72,$05,$04,$65 - .byte $72,$06,$07,$7E - .byte $72,$08,$09,$7F - .byte $72,$0A,$0B,$7E - .byte $72,$0C,$0A,$61 - .byte $72,$0E,$0F,$7E - .byte $72,$0F,$0C,$59 - .byte $72,$11,$13,$7E - .byte $72,$13,$15,$7F - .byte $72,$15,$17,$7E - .byte $72,$17,$18,$79 - .byte $72,$18,$18,$70 - .byte $72,$1A,$1A,$71 - .byte $72,$1C,$1F,$7E - .byte $72,$1E,$1C,$6B - .byte $72,$20,$23,$7E - .byte $72,$21,$20,$6D - .byte $72,$23,$27,$7E - .byte $72,$25,$1B,$53 - .byte $72,$27,$2B,$7E - .byte $72,$29,$28,$70 - .byte $72,$2A,$2F,$7E - .byte $72,$2C,$23,$5A - .byte $72,$2E,$33,$7E - .byte $72,$30,$2D,$6B - .byte $72,$32,$30,$6E - .byte $72,$33,$34,$73 - .byte $72,$35,$2C,$5E - .byte $72,$37,$3D,$7E - .res 4 ; to bring it up to 256 bytes per angle + !byte $72,$C7,$3E,$7C + !byte $72,$C9,$3D,$7E + !byte $72,$CB,$2C,$5E + !byte $72,$CD,$39,$7E + !byte $72,$CE,$30,$6E + !byte $72,$D0,$35,$7E + !byte $72,$D2,$33,$7E + !byte $72,$D4,$31,$7E + !byte $72,$D6,$2F,$7E + !byte $72,$D7,$28,$70 + !byte $72,$D9,$2B,$7E + !byte $72,$DB,$29,$7E + !byte $72,$DD,$27,$7E + !byte $72,$DF,$25,$7E + !byte $72,$E0,$23,$7E + !byte $72,$E2,$21,$7E + !byte $72,$E4,$1F,$7E + !byte $72,$E6,$1D,$7E + !byte $72,$E8,$18,$70 + !byte $72,$E9,$19,$7E + !byte $72,$EB,$17,$7E + !byte $72,$ED,$14,$78 + !byte $72,$EF,$13,$7E + !byte $72,$F1,$11,$7E + !byte $72,$F2,$0F,$7E + !byte $72,$F4,$0D,$7E + !byte $72,$F6,$0B,$7E + !byte $72,$F8,$09,$7E + !byte $72,$FA,$07,$7E + !byte $72,$FB,$05,$7E + !byte $72,$FD,$03,$7E + !byte $72,$FF,$01,$7E + !byte $72,$01,$01,$7F + !byte $72,$03,$03,$7E + !byte $72,$05,$04,$65 + !byte $72,$06,$07,$7E + !byte $72,$08,$09,$7F + !byte $72,$0A,$0B,$7E + !byte $72,$0C,$0A,$61 + !byte $72,$0E,$0F,$7E + !byte $72,$0F,$0C,$59 + !byte $72,$11,$13,$7E + !byte $72,$13,$15,$7F + !byte $72,$15,$17,$7E + !byte $72,$17,$18,$79 + !byte $72,$18,$18,$70 + !byte $72,$1A,$1A,$71 + !byte $72,$1C,$1F,$7E + !byte $72,$1E,$1C,$6B + !byte $72,$20,$23,$7E + !byte $72,$21,$20,$6D + !byte $72,$23,$27,$7E + !byte $72,$25,$1B,$53 + !byte $72,$27,$2B,$7E + !byte $72,$29,$28,$70 + !byte $72,$2A,$2F,$7E + !byte $72,$2C,$23,$5A + !byte $72,$2E,$33,$7E + !byte $72,$30,$2D,$6B + !byte $72,$32,$30,$6E + !byte $72,$33,$34,$73 + !byte $72,$35,$2C,$5E + !byte $72,$37,$3D,$7E + !fill 4 ; to bring it up to 256 bytes per angle precast_1: - .byte $7F,$F7,$09,$7F - .byte $7E,$F9,$05,$56 - .byte $7E,$FA,$05,$6F - .byte $7D,$FC,$04,$7D - .byte $7C,$FE,$02,$6A - .byte $7B,$FF,$00,$7F - .byte $7B,$01,$01,$7C - .byte $7A,$03,$02,$5C - .byte $79,$04,$04,$71 - .byte $79,$06,$06,$79 - .byte $78,$08,$06,$5E - .byte $77,$09,$09,$73 - .byte $77,$0B,$09,$61 - .byte $76,$0D,$0D,$79 - .byte $75,$0E,$0B,$5A - .byte $75,$10,$0E,$66 - .byte $74,$12,$12,$76 - .byte $73,$13,$15,$7D - .byte $72,$15,$14,$6D - .byte $72,$17,$19,$7E - .byte $71,$18,$0E,$41 - .byte $70,$1A,$19,$6C - .byte $70,$1C,$1D,$75 - .byte $6F,$1D,$20,$79 - .byte $6E,$1F,$1B,$60 - .byte $6E,$21,$22,$72 - .byte $6D,$22,$23,$6F - .byte $6C,$24,$2A,$7F - .byte $6C,$26,$22,$61 - .byte $6B,$27,$2A,$72 - .byte $6A,$29,$2E,$77 - .byte $69,$2B,$33,$7E - .byte $69,$2C,$24,$55 - .byte $68,$2E,$2E,$68 - .byte $67,$30,$35,$73 - .byte $67,$31,$32,$68 - .byte $66,$33,$3F,$7E - .byte $65,$35,$40,$7B - .byte $65,$36,$43,$7C - .byte $64,$38,$3C,$6B - .byte $63,$3A,$39,$62 - .byte $63,$3B,$2F,$4E - .byte $62,$3D,$49,$75 - .byte $61,$3F,$47,$6E - .byte $60,$40,$54,$7E - .byte $60,$42,$50,$74 - .byte $5F,$44,$2F,$42 - .byte $5E,$45,$56,$75 - .byte $5E,$47,$5B,$78 - .byte $5D,$49,$56,$6E - .byte $5C,$4A,$53,$67 - .byte $5C,$4C,$53,$64 - .byte $5B,$4E,$64,$75 - .byte $5A,$4F,$5F,$6C - .byte $5A,$51,$56,$5F - .byte $59,$53,$6C,$74 - .byte $58,$54,$70,$75 - .byte $58,$56,$7A,$7C - .byte $57,$58,$5C,$5B - .byte $56,$59,$6C,$68 - .byte $55,$5B,$71,$6A - .byte $55,$5D,$68,$5F - .byte $54,$5E,$64,$59 - .res 4 ; to bring it up to 256 bytes per angle + !byte $7F,$F7,$09,$7F + !byte $7E,$F9,$05,$56 + !byte $7E,$FA,$05,$6F + !byte $7D,$FC,$04,$7D + !byte $7C,$FE,$02,$6A + !byte $7B,$FF,$00,$7F + !byte $7B,$01,$01,$7C + !byte $7A,$03,$02,$5C + !byte $79,$04,$04,$71 + !byte $79,$06,$06,$79 + !byte $78,$08,$06,$5E + !byte $77,$09,$09,$73 + !byte $77,$0B,$09,$61 + !byte $76,$0D,$0D,$79 + !byte $75,$0E,$0B,$5A + !byte $75,$10,$0E,$66 + !byte $74,$12,$12,$76 + !byte $73,$13,$15,$7D + !byte $72,$15,$14,$6D + !byte $72,$17,$19,$7E + !byte $71,$18,$0E,$41 + !byte $70,$1A,$19,$6C + !byte $70,$1C,$1D,$75 + !byte $6F,$1D,$20,$79 + !byte $6E,$1F,$1B,$60 + !byte $6E,$21,$22,$72 + !byte $6D,$22,$23,$6F + !byte $6C,$24,$2A,$7F + !byte $6C,$26,$22,$61 + !byte $6B,$27,$2A,$72 + !byte $6A,$29,$2E,$77 + !byte $69,$2B,$33,$7E + !byte $69,$2C,$24,$55 + !byte $68,$2E,$2E,$68 + !byte $67,$30,$35,$73 + !byte $67,$31,$32,$68 + !byte $66,$33,$3F,$7E + !byte $65,$35,$40,$7B + !byte $65,$36,$43,$7C + !byte $64,$38,$3C,$6B + !byte $63,$3A,$39,$62 + !byte $63,$3B,$2F,$4E + !byte $62,$3D,$49,$75 + !byte $61,$3F,$47,$6E + !byte $60,$40,$54,$7E + !byte $60,$42,$50,$74 + !byte $5F,$44,$2F,$42 + !byte $5E,$45,$56,$75 + !byte $5E,$47,$5B,$78 + !byte $5D,$49,$56,$6E + !byte $5C,$4A,$53,$67 + !byte $5C,$4C,$53,$64 + !byte $5B,$4E,$64,$75 + !byte $5A,$4F,$5F,$6C + !byte $5A,$51,$56,$5F + !byte $59,$53,$6C,$74 + !byte $58,$54,$70,$75 + !byte $58,$56,$7A,$7C + !byte $57,$58,$5C,$5B + !byte $56,$59,$6C,$68 + !byte $55,$5B,$71,$6A + !byte $55,$5D,$68,$5F + !byte $54,$5E,$64,$59 + !fill 4 ; to bring it up to 256 bytes per angle precast_2: - .byte $79,$28,$2A,$7F - .byte $77,$2A,$29,$76 - .byte $76,$2B,$2A,$74 - .byte $75,$2C,$1A,$45 - .byte $74,$2D,$28,$66 - .byte $72,$2F,$2A,$67 - .byte $71,$30,$24,$55 - .byte $70,$31,$33,$74 - .byte $6E,$32,$2A,$5C - .byte $6D,$34,$35,$70 - .byte $6C,$35,$37,$70 - .byte $6B,$36,$39,$70 - .byte $69,$38,$3A,$6E - .byte $68,$39,$42,$79 - .byte $67,$3A,$41,$73 - .byte $66,$3B,$45,$76 - .byte $64,$3D,$48,$77 - .byte $63,$3E,$4B,$78 - .byte $62,$3F,$42,$66 - .byte $60,$41,$54,$7E - .byte $5F,$42,$2F,$44 - .byte $5E,$43,$57,$7A - .byte $5D,$44,$4C,$67 - .byte $5B,$46,$60,$7E - .byte $5A,$47,$55,$6C - .byte $59,$48,$5B,$70 - .byte $57,$49,$5E,$70 - .byte $56,$4B,$6E,$7F - .byte $55,$4C,$6E,$7B - .byte $54,$4D,$6C,$75 - .byte $52,$4F,$66,$6B - .byte $51,$50,$7D,$7F - .byte $50,$51,$40,$3F - .byte $4F,$52,$6C,$67 - .byte $4D,$54,$76,$6D - .byte $4C,$55,$72,$66 - .byte $4B,$56,$71,$62 - .byte $49,$57,$51,$44 - .byte $48,$59,$7B,$64 - .byte $47,$5A,$7F,$64 - .byte $46,$5B,$7A,$5D - .byte $44,$5D,$7E,$5D - .byte $43,$5E,$7B,$58 - .byte $42,$5F,$51,$38 - .byte $41,$60,$7F,$55 - .byte $3F,$62,$77,$4D - .byte $3E,$63,$7B,$4D - .byte $3D,$64,$72,$45 - .byte $3B,$66,$5E,$37 - .byte $3A,$67,$7A,$45 - .byte $39,$68,$77,$41 - .byte $38,$69,$5B,$30 - .byte $36,$6B,$6E,$38 - .byte $35,$6C,$72,$38 - .byte $34,$6D,$74,$37 - .byte $32,$6E,$7F,$3A - .byte $31,$70,$6D,$30 - .byte $30,$71,$5C,$27 - .byte $2F,$72,$4C,$1F - .byte $2D,$74,$4F,$1F - .byte $2C,$75,$72,$2B - .byte $2B,$76,$7F,$2E - .byte $2A,$77,$73,$28 - .res 4 ; to bring it up to 256 bytes per angle + !byte $79,$28,$2A,$7F + !byte $77,$2A,$29,$76 + !byte $76,$2B,$2A,$74 + !byte $75,$2C,$1A,$45 + !byte $74,$2D,$28,$66 + !byte $72,$2F,$2A,$67 + !byte $71,$30,$24,$55 + !byte $70,$31,$33,$74 + !byte $6E,$32,$2A,$5C + !byte $6D,$34,$35,$70 + !byte $6C,$35,$37,$70 + !byte $6B,$36,$39,$70 + !byte $69,$38,$3A,$6E + !byte $68,$39,$42,$79 + !byte $67,$3A,$41,$73 + !byte $66,$3B,$45,$76 + !byte $64,$3D,$48,$77 + !byte $63,$3E,$4B,$78 + !byte $62,$3F,$42,$66 + !byte $60,$41,$54,$7E + !byte $5F,$42,$2F,$44 + !byte $5E,$43,$57,$7A + !byte $5D,$44,$4C,$67 + !byte $5B,$46,$60,$7E + !byte $5A,$47,$55,$6C + !byte $59,$48,$5B,$70 + !byte $57,$49,$5E,$70 + !byte $56,$4B,$6E,$7F + !byte $55,$4C,$6E,$7B + !byte $54,$4D,$6C,$75 + !byte $52,$4F,$66,$6B + !byte $51,$50,$7D,$7F + !byte $50,$51,$40,$3F + !byte $4F,$52,$6C,$67 + !byte $4D,$54,$76,$6D + !byte $4C,$55,$72,$66 + !byte $4B,$56,$71,$62 + !byte $49,$57,$51,$44 + !byte $48,$59,$7B,$64 + !byte $47,$5A,$7F,$64 + !byte $46,$5B,$7A,$5D + !byte $44,$5D,$7E,$5D + !byte $43,$5E,$7B,$58 + !byte $42,$5F,$51,$38 + !byte $41,$60,$7F,$55 + !byte $3F,$62,$77,$4D + !byte $3E,$63,$7B,$4D + !byte $3D,$64,$72,$45 + !byte $3B,$66,$5E,$37 + !byte $3A,$67,$7A,$45 + !byte $39,$68,$77,$41 + !byte $38,$69,$5B,$30 + !byte $36,$6B,$6E,$38 + !byte $35,$6C,$72,$38 + !byte $34,$6D,$74,$37 + !byte $32,$6E,$7F,$3A + !byte $31,$70,$6D,$30 + !byte $30,$71,$5C,$27 + !byte $2F,$72,$4C,$1F + !byte $2D,$74,$4F,$1F + !byte $2C,$75,$72,$2B + !byte $2B,$76,$7F,$2E + !byte $2A,$77,$73,$28 + !fill 4 ; to bring it up to 256 bytes per angle precast_3: - .byte $60,$53,$62,$71 - .byte $5E,$54,$61,$6D - .byte $5D,$55,$74,$7F - .byte $5B,$55,$69,$70 - .byte $59,$56,$67,$6B - .byte $58,$57,$5A,$5B - .byte $56,$58,$7D,$7B - .byte $54,$58,$5E,$5A - .byte $53,$59,$66,$5F - .byte $51,$5A,$4A,$43 - .byte $4F,$5A,$7D,$6E - .byte $4E,$5B,$7C,$6A - .byte $4C,$5C,$6A,$58 - .byte $4A,$5C,$43,$36 - .byte $49,$5D,$4E,$3D - .byte $47,$5E,$74,$58 - .byte $45,$5E,$66,$4B - .byte $44,$5F,$49,$34 - .byte $42,$60,$64,$45 - .byte $40,$60,$7F,$55 - .byte $3F,$61,$4F,$33 - .byte $3D,$62,$7D,$4E - .byte $3B,$63,$49,$2C - .byte $3A,$63,$6E,$40 - .byte $38,$64,$7B,$45 - .byte $36,$65,$6F,$3C - .byte $35,$65,$62,$33 - .byte $33,$66,$7F,$40 - .byte $31,$67,$4F,$26 - .byte $30,$67,$75,$36 - .byte $2E,$68,$71,$32 - .byte $2C,$69,$76,$32 - .byte $2B,$69,$79,$31 - .byte $29,$6A,$4B,$1D - .byte $27,$6B,$7A,$2D - .byte $26,$6C,$4D,$1B - .byte $24,$6C,$7E,$2A - .byte $22,$6D,$72,$24 - .byte $21,$6E,$7C,$25 - .byte $1F,$6E,$67,$1D - .byte $1D,$6F,$66,$1B - .byte $1C,$70,$79,$1E - .byte $1A,$70,$5F,$16 - .byte $18,$71,$74,$19 - .byte $17,$72,$7D,$19 - .byte $15,$72,$62,$12 - .byte $13,$73,$77,$14 - .byte $12,$74,$48,$0B - .byte $10,$75,$50,$0B - .byte $0E,$75,$62,$0C - .byte $0D,$76,$5D,$0A - .byte $0B,$77,$56,$08 - .byte $09,$77,$66,$08 - .byte $08,$78,$7D,$08 - .byte $06,$79,$78,$06 - .byte $04,$79,$70,$04 - .byte $03,$7A,$5B,$02 - .byte $01,$7B,$7B,$01 - .byte $FF,$7B,$5B,$00 - .byte $FE,$7C,$69,$02 - .byte $FC,$7D,$7C,$04 - .byte $FA,$7E,$6E,$05 - .byte $F9,$7E,$67,$06 - .res 4 ; to bring it up to 256 bytes per angle + !byte $60,$53,$62,$71 + !byte $5E,$54,$61,$6D + !byte $5D,$55,$74,$7F + !byte $5B,$55,$69,$70 + !byte $59,$56,$67,$6B + !byte $58,$57,$5A,$5B + !byte $56,$58,$7D,$7B + !byte $54,$58,$5E,$5A + !byte $53,$59,$66,$5F + !byte $51,$5A,$4A,$43 + !byte $4F,$5A,$7D,$6E + !byte $4E,$5B,$7C,$6A + !byte $4C,$5C,$6A,$58 + !byte $4A,$5C,$43,$36 + !byte $49,$5D,$4E,$3D + !byte $47,$5E,$74,$58 + !byte $45,$5E,$66,$4B + !byte $44,$5F,$49,$34 + !byte $42,$60,$64,$45 + !byte $40,$60,$7F,$55 + !byte $3F,$61,$4F,$33 + !byte $3D,$62,$7D,$4E + !byte $3B,$63,$49,$2C + !byte $3A,$63,$6E,$40 + !byte $38,$64,$7B,$45 + !byte $36,$65,$6F,$3C + !byte $35,$65,$62,$33 + !byte $33,$66,$7F,$40 + !byte $31,$67,$4F,$26 + !byte $30,$67,$75,$36 + !byte $2E,$68,$71,$32 + !byte $2C,$69,$76,$32 + !byte $2B,$69,$79,$31 + !byte $29,$6A,$4B,$1D + !byte $27,$6B,$7A,$2D + !byte $26,$6C,$4D,$1B + !byte $24,$6C,$7E,$2A + !byte $22,$6D,$72,$24 + !byte $21,$6E,$7C,$25 + !byte $1F,$6E,$67,$1D + !byte $1D,$6F,$66,$1B + !byte $1C,$70,$79,$1E + !byte $1A,$70,$5F,$16 + !byte $18,$71,$74,$19 + !byte $17,$72,$7D,$19 + !byte $15,$72,$62,$12 + !byte $13,$73,$77,$14 + !byte $12,$74,$48,$0B + !byte $10,$75,$50,$0B + !byte $0E,$75,$62,$0C + !byte $0D,$76,$5D,$0A + !byte $0B,$77,$56,$08 + !byte $09,$77,$66,$08 + !byte $08,$78,$7D,$08 + !byte $06,$79,$78,$06 + !byte $04,$79,$70,$04 + !byte $03,$7A,$5B,$02 + !byte $01,$7B,$7B,$01 + !byte $FF,$7B,$5B,$00 + !byte $FE,$7C,$69,$02 + !byte $FC,$7D,$7C,$04 + !byte $FA,$7E,$6E,$05 + !byte $F9,$7E,$67,$06 + !fill 4 ; to bring it up to 256 bytes per angle precast_4: - .byte $39,$72,$7F,$40 - .byte $37,$72,$5F,$2E - .byte $35,$72,$7E,$3B - .byte $33,$72,$5F,$2B - .byte $32,$72,$47,$1F - .byte $30,$72,$72,$30 - .byte $2E,$72,$54,$22 - .byte $2C,$72,$71,$2C - .byte $2A,$72,$43,$19 - .byte $29,$72,$7B,$2C - .byte $27,$72,$7B,$2A - .byte $25,$72,$56,$1C - .byte $23,$72,$71,$23 - .byte $21,$72,$77,$23 - .byte $20,$72,$73,$20 - .byte $1E,$72,$67,$1B - .byte $1C,$72,$41,$10 - .byte $1A,$72,$75,$1B - .byte $18,$72,$79,$1A - .byte $17,$72,$7D,$19 - .byte $15,$72,$73,$15 - .byte $13,$72,$7D,$15 - .byte $11,$72,$6A,$10 - .byte $0F,$72,$6F,$0F - .byte $0E,$72,$6D,$0D - .byte $0C,$72,$74,$0C - .byte $0A,$72,$67,$09 - .byte $08,$72,$7D,$09 - .byte $06,$72,$7D,$07 - .byte $05,$72,$7D,$05 - .byte $03,$72,$7D,$03 - .byte $01,$72,$7D,$01 - .byte $FF,$72,$7E,$01 - .byte $FD,$72,$7E,$03 - .byte $FB,$72,$7E,$05 - .byte $FA,$72,$7E,$07 - .byte $F8,$72,$7E,$09 - .byte $F6,$72,$7E,$0B - .byte $F4,$72,$7E,$0D - .byte $F2,$72,$7E,$0F - .byte $F1,$72,$7E,$11 - .byte $EF,$72,$7E,$13 - .byte $ED,$72,$7E,$15 - .byte $EB,$72,$7E,$17 - .byte $E9,$72,$7E,$19 - .byte $E8,$72,$7E,$1B - .byte $E6,$72,$7E,$1D - .byte $E4,$72,$7E,$1F - .byte $E2,$72,$7E,$21 - .byte $E0,$72,$7E,$23 - .byte $DF,$72,$7E,$25 - .byte $DD,$72,$7E,$27 - .byte $DB,$72,$7E,$29 - .byte $D9,$72,$7E,$2B - .byte $D7,$72,$7E,$2D - .byte $D6,$72,$7E,$2F - .byte $D4,$72,$7E,$31 - .byte $D2,$72,$7E,$33 - .byte $D0,$72,$7E,$35 - .byte $CE,$72,$47,$1F - .byte $CD,$72,$7E,$39 - .byte $CB,$72,$7E,$3B - .byte $C9,$72,$7E,$3D - .res 4 ; to bring it up to 256 bytes per angle + !byte $39,$72,$7F,$40 + !byte $37,$72,$5F,$2E + !byte $35,$72,$7E,$3B + !byte $33,$72,$5F,$2B + !byte $32,$72,$47,$1F + !byte $30,$72,$72,$30 + !byte $2E,$72,$54,$22 + !byte $2C,$72,$71,$2C + !byte $2A,$72,$43,$19 + !byte $29,$72,$7B,$2C + !byte $27,$72,$7B,$2A + !byte $25,$72,$56,$1C + !byte $23,$72,$71,$23 + !byte $21,$72,$77,$23 + !byte $20,$72,$73,$20 + !byte $1E,$72,$67,$1B + !byte $1C,$72,$41,$10 + !byte $1A,$72,$75,$1B + !byte $18,$72,$79,$1A + !byte $17,$72,$7D,$19 + !byte $15,$72,$73,$15 + !byte $13,$72,$7D,$15 + !byte $11,$72,$6A,$10 + !byte $0F,$72,$6F,$0F + !byte $0E,$72,$6D,$0D + !byte $0C,$72,$74,$0C + !byte $0A,$72,$67,$09 + !byte $08,$72,$7D,$09 + !byte $06,$72,$7D,$07 + !byte $05,$72,$7D,$05 + !byte $03,$72,$7D,$03 + !byte $01,$72,$7D,$01 + !byte $FF,$72,$7E,$01 + !byte $FD,$72,$7E,$03 + !byte $FB,$72,$7E,$05 + !byte $FA,$72,$7E,$07 + !byte $F8,$72,$7E,$09 + !byte $F6,$72,$7E,$0B + !byte $F4,$72,$7E,$0D + !byte $F2,$72,$7E,$0F + !byte $F1,$72,$7E,$11 + !byte $EF,$72,$7E,$13 + !byte $ED,$72,$7E,$15 + !byte $EB,$72,$7E,$17 + !byte $E9,$72,$7E,$19 + !byte $E8,$72,$7E,$1B + !byte $E6,$72,$7E,$1D + !byte $E4,$72,$7E,$1F + !byte $E2,$72,$7E,$21 + !byte $E0,$72,$7E,$23 + !byte $DF,$72,$7E,$25 + !byte $DD,$72,$7E,$27 + !byte $DB,$72,$7E,$29 + !byte $D9,$72,$7E,$2B + !byte $D7,$72,$7E,$2D + !byte $D6,$72,$7E,$2F + !byte $D4,$72,$7E,$31 + !byte $D2,$72,$7E,$33 + !byte $D0,$72,$7E,$35 + !byte $CE,$72,$47,$1F + !byte $CD,$72,$7E,$39 + !byte $CB,$72,$7E,$3B + !byte $C9,$72,$7E,$3D + !fill 4 ; to bring it up to 256 bytes per angle precast_5: - .byte $09,$7F,$7E,$09 - .byte $07,$7E,$67,$06 - .byte $06,$7E,$6E,$05 - .byte $04,$7D,$7C,$04 - .byte $02,$7C,$69,$02 - .byte $01,$7B,$5B,$00 - .byte $FF,$7B,$7B,$01 - .byte $FD,$7A,$5B,$02 - .byte $FC,$79,$70,$04 - .byte $FA,$79,$78,$06 - .byte $F8,$78,$7D,$08 - .byte $F7,$77,$66,$08 - .byte $F5,$77,$56,$08 - .byte $F3,$76,$5D,$0A - .byte $F2,$75,$62,$0C - .byte $F0,$75,$50,$0B - .byte $EE,$74,$48,$0B - .byte $ED,$73,$77,$14 - .byte $EB,$72,$62,$12 - .byte $E9,$72,$7D,$19 - .byte $E8,$71,$74,$19 - .byte $E6,$70,$5F,$16 - .byte $E4,$70,$79,$1E - .byte $E3,$6F,$66,$1B - .byte $E1,$6E,$67,$1D - .byte $DF,$6E,$7C,$25 - .byte $DE,$6D,$72,$24 - .byte $DC,$6C,$7E,$2A - .byte $DA,$6C,$4D,$1B - .byte $D9,$6B,$7A,$2D - .byte $D7,$6A,$4B,$1D - .byte $D5,$69,$79,$31 - .byte $D4,$69,$76,$32 - .byte $D2,$68,$71,$32 - .byte $D0,$67,$75,$36 - .byte $CF,$67,$4F,$26 - .byte $CD,$66,$7F,$40 - .byte $CB,$65,$62,$33 - .byte $CA,$65,$6F,$3C - .byte $C8,$64,$7B,$45 - .byte $C6,$63,$6E,$40 - .byte $C5,$63,$49,$2C - .byte $C3,$62,$7D,$4E - .byte $C1,$61,$4F,$33 - .byte $C0,$60,$7F,$55 - .byte $BE,$60,$64,$45 - .byte $BC,$5F,$49,$34 - .byte $BB,$5E,$66,$4B - .byte $B9,$5E,$74,$58 - .byte $B7,$5D,$4E,$3D - .byte $B6,$5C,$43,$36 - .byte $B4,$5C,$6A,$58 - .byte $B2,$5B,$7C,$6A - .byte $B1,$5A,$7D,$6E - .byte $AF,$5A,$4A,$43 - .byte $AD,$59,$66,$5F - .byte $AC,$58,$5E,$5A - .byte $AA,$58,$7D,$7B - .byte $A8,$57,$5A,$5B - .byte $A7,$56,$67,$6B - .byte $A5,$55,$69,$70 - .byte $A3,$55,$74,$7F - .byte $A2,$54,$61,$6D - .res 4 ; to bring it up to 256 bytes per angle + !byte $09,$7F,$7E,$09 + !byte $07,$7E,$67,$06 + !byte $06,$7E,$6E,$05 + !byte $04,$7D,$7C,$04 + !byte $02,$7C,$69,$02 + !byte $01,$7B,$5B,$00 + !byte $FF,$7B,$7B,$01 + !byte $FD,$7A,$5B,$02 + !byte $FC,$79,$70,$04 + !byte $FA,$79,$78,$06 + !byte $F8,$78,$7D,$08 + !byte $F7,$77,$66,$08 + !byte $F5,$77,$56,$08 + !byte $F3,$76,$5D,$0A + !byte $F2,$75,$62,$0C + !byte $F0,$75,$50,$0B + !byte $EE,$74,$48,$0B + !byte $ED,$73,$77,$14 + !byte $EB,$72,$62,$12 + !byte $E9,$72,$7D,$19 + !byte $E8,$71,$74,$19 + !byte $E6,$70,$5F,$16 + !byte $E4,$70,$79,$1E + !byte $E3,$6F,$66,$1B + !byte $E1,$6E,$67,$1D + !byte $DF,$6E,$7C,$25 + !byte $DE,$6D,$72,$24 + !byte $DC,$6C,$7E,$2A + !byte $DA,$6C,$4D,$1B + !byte $D9,$6B,$7A,$2D + !byte $D7,$6A,$4B,$1D + !byte $D5,$69,$79,$31 + !byte $D4,$69,$76,$32 + !byte $D2,$68,$71,$32 + !byte $D0,$67,$75,$36 + !byte $CF,$67,$4F,$26 + !byte $CD,$66,$7F,$40 + !byte $CB,$65,$62,$33 + !byte $CA,$65,$6F,$3C + !byte $C8,$64,$7B,$45 + !byte $C6,$63,$6E,$40 + !byte $C5,$63,$49,$2C + !byte $C3,$62,$7D,$4E + !byte $C1,$61,$4F,$33 + !byte $C0,$60,$7F,$55 + !byte $BE,$60,$64,$45 + !byte $BC,$5F,$49,$34 + !byte $BB,$5E,$66,$4B + !byte $B9,$5E,$74,$58 + !byte $B7,$5D,$4E,$3D + !byte $B6,$5C,$43,$36 + !byte $B4,$5C,$6A,$58 + !byte $B2,$5B,$7C,$6A + !byte $B1,$5A,$7D,$6E + !byte $AF,$5A,$4A,$43 + !byte $AD,$59,$66,$5F + !byte $AC,$58,$5E,$5A + !byte $AA,$58,$7D,$7B + !byte $A8,$57,$5A,$5B + !byte $A7,$56,$67,$6B + !byte $A5,$55,$69,$70 + !byte $A3,$55,$74,$7F + !byte $A2,$54,$61,$6D + !fill 4 ; to bring it up to 256 bytes per angle precast_6: - .byte $D8,$79,$7E,$2A - .byte $D6,$77,$73,$28 - .byte $D5,$76,$7F,$2E - .byte $D4,$75,$7A,$2E - .byte $D3,$74,$4F,$1F - .byte $D1,$72,$4C,$1F - .byte $D0,$71,$76,$32 - .byte $CF,$70,$7D,$37 - .byte $CE,$6E,$7F,$3A - .byte $CC,$6D,$72,$36 - .byte $CB,$6C,$72,$38 - .byte $CA,$6B,$6E,$38 - .byte $C8,$69,$6E,$3A - .byte $C7,$68,$77,$41 - .byte $C6,$67,$73,$41 - .byte $C5,$66,$6A,$3E - .byte $C3,$64,$72,$45 - .byte $C2,$63,$7B,$4D - .byte $C1,$62,$77,$4D - .byte $BF,$60,$7F,$55 - .byte $BE,$5F,$51,$38 - .byte $BD,$5E,$7E,$5A - .byte $BC,$5D,$7E,$5D - .byte $BA,$5B,$7A,$5D - .byte $B9,$5A,$5E,$4A - .byte $B8,$59,$7B,$64 - .byte $B7,$57,$51,$44 - .byte $B5,$56,$78,$68 - .byte $B4,$55,$72,$66 - .byte $B3,$54,$76,$6D - .byte $B1,$52,$56,$52 - .byte $B0,$51,$7F,$7D - .byte $AF,$50,$7D,$7F - .byte $AE,$4F,$52,$56 - .byte $AC,$4D,$6C,$75 - .byte $AB,$4C,$66,$72 - .byte $AA,$4B,$68,$78 - .byte $A9,$49,$5E,$70 - .byte $A7,$48,$5B,$70 - .byte $A6,$47,$4A,$5E - .byte $A5,$46,$60,$7E - .byte $A3,$44,$4C,$67 - .byte $A2,$43,$5A,$7E - .byte $A1,$42,$2F,$44 - .byte $A0,$41,$54,$7E - .byte $9E,$3F,$4D,$77 - .byte $9D,$3E,$4B,$78 - .byte $9C,$3D,$48,$77 - .byte $9A,$3B,$3E,$6A - .byte $99,$3A,$41,$73 - .byte $98,$39,$42,$79 - .byte $97,$38,$3A,$6E - .byte $95,$36,$39,$70 - .byte $94,$35,$37,$70 - .byte $93,$34,$36,$72 - .byte $92,$32,$2A,$5C - .byte $90,$31,$37,$7D - .byte $8F,$30,$32,$76 - .byte $8E,$2F,$2A,$67 - .byte $8C,$2D,$28,$66 - .byte $8B,$2C,$2E,$7A - .byte $8A,$2B,$2A,$74 - .byte $89,$2A,$29,$76 - .res 4 ; to bring it up to 256 bytes per angle + !byte $D8,$79,$7E,$2A + !byte $D6,$77,$73,$28 + !byte $D5,$76,$7F,$2E + !byte $D4,$75,$7A,$2E + !byte $D3,$74,$4F,$1F + !byte $D1,$72,$4C,$1F + !byte $D0,$71,$76,$32 + !byte $CF,$70,$7D,$37 + !byte $CE,$6E,$7F,$3A + !byte $CC,$6D,$72,$36 + !byte $CB,$6C,$72,$38 + !byte $CA,$6B,$6E,$38 + !byte $C8,$69,$6E,$3A + !byte $C7,$68,$77,$41 + !byte $C6,$67,$73,$41 + !byte $C5,$66,$6A,$3E + !byte $C3,$64,$72,$45 + !byte $C2,$63,$7B,$4D + !byte $C1,$62,$77,$4D + !byte $BF,$60,$7F,$55 + !byte $BE,$5F,$51,$38 + !byte $BD,$5E,$7E,$5A + !byte $BC,$5D,$7E,$5D + !byte $BA,$5B,$7A,$5D + !byte $B9,$5A,$5E,$4A + !byte $B8,$59,$7B,$64 + !byte $B7,$57,$51,$44 + !byte $B5,$56,$78,$68 + !byte $B4,$55,$72,$66 + !byte $B3,$54,$76,$6D + !byte $B1,$52,$56,$52 + !byte $B0,$51,$7F,$7D + !byte $AF,$50,$7D,$7F + !byte $AE,$4F,$52,$56 + !byte $AC,$4D,$6C,$75 + !byte $AB,$4C,$66,$72 + !byte $AA,$4B,$68,$78 + !byte $A9,$49,$5E,$70 + !byte $A7,$48,$5B,$70 + !byte $A6,$47,$4A,$5E + !byte $A5,$46,$60,$7E + !byte $A3,$44,$4C,$67 + !byte $A2,$43,$5A,$7E + !byte $A1,$42,$2F,$44 + !byte $A0,$41,$54,$7E + !byte $9E,$3F,$4D,$77 + !byte $9D,$3E,$4B,$78 + !byte $9C,$3D,$48,$77 + !byte $9A,$3B,$3E,$6A + !byte $99,$3A,$41,$73 + !byte $98,$39,$42,$79 + !byte $97,$38,$3A,$6E + !byte $95,$36,$39,$70 + !byte $94,$35,$37,$70 + !byte $93,$34,$36,$72 + !byte $92,$32,$2A,$5C + !byte $90,$31,$37,$7D + !byte $8F,$30,$32,$76 + !byte $8E,$2F,$2A,$67 + !byte $8C,$2D,$28,$66 + !byte $8B,$2C,$2E,$7A + !byte $8A,$2B,$2A,$74 + !byte $89,$2A,$29,$76 + !fill 4 ; to bring it up to 256 bytes per angle precast_7: - .byte $AD,$60,$62,$55 - .byte $AC,$5E,$64,$59 - .byte $AB,$5D,$68,$5F - .byte $AB,$5B,$71,$6A - .byte $AA,$59,$6C,$68 - .byte $A9,$58,$5C,$5B - .byte $A8,$56,$7A,$7C - .byte $A8,$54,$70,$75 - .byte $A7,$53,$6C,$74 - .byte $A6,$51,$56,$5F - .byte $A6,$4F,$5F,$6C - .byte $A5,$4E,$64,$75 - .byte $A4,$4C,$53,$64 - .byte $A4,$4A,$53,$67 - .byte $A3,$49,$56,$6E - .byte $A2,$47,$5B,$78 - .byte $A2,$45,$56,$75 - .byte $A1,$44,$2F,$42 - .byte $A0,$42,$50,$74 - .byte $A0,$40,$54,$7E - .byte $9F,$3F,$47,$6E - .byte $9E,$3D,$49,$75 - .byte $9D,$3B,$2F,$4E - .byte $9D,$3A,$39,$62 - .byte $9C,$38,$3C,$6B - .byte $9B,$36,$43,$7C - .byte $9B,$35,$40,$7B - .byte $9A,$33,$3F,$7E - .byte $99,$31,$32,$68 - .byte $99,$30,$35,$73 - .byte $98,$2E,$2E,$68 - .byte $97,$2C,$24,$55 - .byte $97,$2B,$33,$7E - .byte $96,$29,$2E,$77 - .byte $95,$27,$2A,$72 - .byte $94,$26,$22,$61 - .byte $94,$24,$2A,$7F - .byte $93,$22,$23,$6F - .byte $92,$21,$22,$72 - .byte $92,$1F,$1B,$60 - .byte $91,$1D,$20,$79 - .byte $90,$1C,$1D,$75 - .byte $90,$1A,$19,$6C - .byte $8F,$18,$0E,$41 - .byte $8E,$17,$19,$7E - .byte $8E,$15,$14,$6D - .byte $8D,$13,$15,$7D - .byte $8C,$12,$12,$76 - .byte $8B,$10,$0E,$66 - .byte $8B,$0E,$0B,$5A - .byte $8A,$0D,$0D,$79 - .byte $89,$0B,$09,$61 - .byte $89,$09,$09,$73 - .byte $88,$08,$06,$5E - .byte $87,$06,$06,$79 - .byte $87,$04,$04,$71 - .byte $86,$03,$02,$5C - .byte $85,$01,$01,$7C - .byte $85,$FF,$00,$7F - .byte $84,$FE,$02,$6A - .byte $83,$FC,$04,$7D - .byte $82,$FA,$05,$6F - .byte $82,$F9,$05,$56 - .res 4 ; to bring it up to 256 bytes per angle + !byte $AD,$60,$62,$55 + !byte $AC,$5E,$64,$59 + !byte $AB,$5D,$68,$5F + !byte $AB,$5B,$71,$6A + !byte $AA,$59,$6C,$68 + !byte $A9,$58,$5C,$5B + !byte $A8,$56,$7A,$7C + !byte $A8,$54,$70,$75 + !byte $A7,$53,$6C,$74 + !byte $A6,$51,$56,$5F + !byte $A6,$4F,$5F,$6C + !byte $A5,$4E,$64,$75 + !byte $A4,$4C,$53,$64 + !byte $A4,$4A,$53,$67 + !byte $A3,$49,$56,$6E + !byte $A2,$47,$5B,$78 + !byte $A2,$45,$56,$75 + !byte $A1,$44,$2F,$42 + !byte $A0,$42,$50,$74 + !byte $A0,$40,$54,$7E + !byte $9F,$3F,$47,$6E + !byte $9E,$3D,$49,$75 + !byte $9D,$3B,$2F,$4E + !byte $9D,$3A,$39,$62 + !byte $9C,$38,$3C,$6B + !byte $9B,$36,$43,$7C + !byte $9B,$35,$40,$7B + !byte $9A,$33,$3F,$7E + !byte $99,$31,$32,$68 + !byte $99,$30,$35,$73 + !byte $98,$2E,$2E,$68 + !byte $97,$2C,$24,$55 + !byte $97,$2B,$33,$7E + !byte $96,$29,$2E,$77 + !byte $95,$27,$2A,$72 + !byte $94,$26,$22,$61 + !byte $94,$24,$2A,$7F + !byte $93,$22,$23,$6F + !byte $92,$21,$22,$72 + !byte $92,$1F,$1B,$60 + !byte $91,$1D,$20,$79 + !byte $90,$1C,$1D,$75 + !byte $90,$1A,$19,$6C + !byte $8F,$18,$0E,$41 + !byte $8E,$17,$19,$7E + !byte $8E,$15,$14,$6D + !byte $8D,$13,$15,$7D + !byte $8C,$12,$12,$76 + !byte $8B,$10,$0E,$66 + !byte $8B,$0E,$0B,$5A + !byte $8A,$0D,$0D,$79 + !byte $89,$0B,$09,$61 + !byte $89,$09,$09,$73 + !byte $88,$08,$06,$5E + !byte $87,$06,$06,$79 + !byte $87,$04,$04,$71 + !byte $86,$03,$02,$5C + !byte $85,$01,$01,$7C + !byte $85,$FF,$00,$7F + !byte $84,$FE,$02,$6A + !byte $83,$FC,$04,$7D + !byte $82,$FA,$05,$6F + !byte $82,$F9,$05,$56 + !fill 4 ; to bring it up to 256 bytes per angle precast_8: - .byte $8E,$39,$3F,$7E - .byte $8E,$37,$3D,$7E - .byte $8E,$35,$3B,$7E - .byte $8E,$33,$39,$7E - .byte $8E,$32,$37,$7E - .byte $8E,$30,$35,$7E - .byte $8E,$2E,$33,$7E - .byte $8E,$2C,$31,$7E - .byte $8E,$2A,$2F,$7E - .byte $8E,$29,$2D,$7E - .byte $8E,$27,$2B,$7E - .byte $8E,$25,$29,$7E - .byte $8E,$23,$27,$7E - .byte $8E,$21,$25,$7E - .byte $8E,$20,$23,$7E - .byte $8E,$1E,$21,$7E - .byte $8E,$1C,$1F,$7E - .byte $8E,$1A,$1D,$7E - .byte $8E,$18,$1B,$7E - .byte $8E,$17,$19,$7E - .byte $8E,$15,$17,$7E - .byte $8E,$13,$15,$7E - .byte $8E,$11,$13,$7E - .byte $8E,$0F,$11,$7E - .byte $8E,$0E,$0F,$7E - .byte $8E,$0C,$0D,$7E - .byte $8E,$0A,$0B,$7E - .byte $8E,$08,$09,$7E - .byte $8E,$06,$07,$7E - .byte $8E,$05,$05,$7E - .byte $8E,$03,$03,$7E - .byte $8E,$01,$01,$7E - .byte $8E,$FF,$01,$7F - .byte $8E,$FD,$03,$7F - .byte $8E,$FB,$04,$65 - .byte $8E,$FA,$07,$7F - .byte $8E,$F8,$09,$7F - .byte $8E,$F6,$0A,$73 - .byte $8E,$F4,$0A,$61 - .byte $8E,$F2,$0C,$65 - .byte $8E,$F1,$0C,$59 - .byte $8E,$EF,$0B,$49 - .byte $8E,$ED,$15,$7F - .byte $8E,$EB,$16,$79 - .byte $8E,$E9,$18,$79 - .byte $8E,$E8,$19,$75 - .byte $8E,$E6,$1A,$71 - .byte $8E,$E4,$1E,$7A - .byte $8E,$E2,$1C,$6B - .byte $8E,$E0,$21,$77 - .byte $8E,$DF,$20,$6D - .byte $8E,$DD,$1E,$61 - .byte $8E,$DB,$1B,$53 - .byte $8E,$D9,$1D,$55 - .byte $8E,$D7,$29,$73 - .byte $8E,$D6,$2C,$76 - .byte $8E,$D4,$2F,$79 - .byte $8E,$D2,$24,$59 - .byte $8E,$D0,$2D,$6B - .byte $8E,$CE,$30,$6E - .byte $8E,$CD,$34,$73 - .byte $8E,$CB,$2C,$5E - .byte $8E,$C9,$3C,$7C - .res 4 ; to bring it up to 256 bytes per angle + !byte $8E,$39,$3F,$7E + !byte $8E,$37,$3D,$7E + !byte $8E,$35,$3B,$7E + !byte $8E,$33,$39,$7E + !byte $8E,$32,$37,$7E + !byte $8E,$30,$35,$7E + !byte $8E,$2E,$33,$7E + !byte $8E,$2C,$31,$7E + !byte $8E,$2A,$2F,$7E + !byte $8E,$29,$2D,$7E + !byte $8E,$27,$2B,$7E + !byte $8E,$25,$29,$7E + !byte $8E,$23,$27,$7E + !byte $8E,$21,$25,$7E + !byte $8E,$20,$23,$7E + !byte $8E,$1E,$21,$7E + !byte $8E,$1C,$1F,$7E + !byte $8E,$1A,$1D,$7E + !byte $8E,$18,$1B,$7E + !byte $8E,$17,$19,$7E + !byte $8E,$15,$17,$7E + !byte $8E,$13,$15,$7E + !byte $8E,$11,$13,$7E + !byte $8E,$0F,$11,$7E + !byte $8E,$0E,$0F,$7E + !byte $8E,$0C,$0D,$7E + !byte $8E,$0A,$0B,$7E + !byte $8E,$08,$09,$7E + !byte $8E,$06,$07,$7E + !byte $8E,$05,$05,$7E + !byte $8E,$03,$03,$7E + !byte $8E,$01,$01,$7E + !byte $8E,$FF,$01,$7F + !byte $8E,$FD,$03,$7F + !byte $8E,$FB,$04,$65 + !byte $8E,$FA,$07,$7F + !byte $8E,$F8,$09,$7F + !byte $8E,$F6,$0A,$73 + !byte $8E,$F4,$0A,$61 + !byte $8E,$F2,$0C,$65 + !byte $8E,$F1,$0C,$59 + !byte $8E,$EF,$0B,$49 + !byte $8E,$ED,$15,$7F + !byte $8E,$EB,$16,$79 + !byte $8E,$E9,$18,$79 + !byte $8E,$E8,$19,$75 + !byte $8E,$E6,$1A,$71 + !byte $8E,$E4,$1E,$7A + !byte $8E,$E2,$1C,$6B + !byte $8E,$E0,$21,$77 + !byte $8E,$DF,$20,$6D + !byte $8E,$DD,$1E,$61 + !byte $8E,$DB,$1B,$53 + !byte $8E,$D9,$1D,$55 + !byte $8E,$D7,$29,$73 + !byte $8E,$D6,$2C,$76 + !byte $8E,$D4,$2F,$79 + !byte $8E,$D2,$24,$59 + !byte $8E,$D0,$2D,$6B + !byte $8E,$CE,$30,$6E + !byte $8E,$CD,$34,$73 + !byte $8E,$CB,$2C,$5E + !byte $8E,$C9,$3C,$7C + !fill 4 ; to bring it up to 256 bytes per angle precast_9: - .byte $81,$09,$09,$7F - .byte $82,$07,$05,$56 - .byte $82,$06,$05,$6F - .byte $83,$04,$04,$7D - .byte $84,$02,$02,$6A - .byte $85,$01,$00,$7F - .byte $85,$FF,$01,$7C - .byte $86,$FD,$02,$5C - .byte $87,$FC,$04,$71 - .byte $87,$FA,$06,$79 - .byte $88,$F8,$06,$5E - .byte $89,$F7,$09,$73 - .byte $89,$F5,$09,$61 - .byte $8A,$F3,$0D,$79 - .byte $8B,$F2,$0B,$5A - .byte $8B,$F0,$0E,$66 - .byte $8C,$EE,$12,$76 - .byte $8D,$ED,$15,$7D - .byte $8E,$EB,$14,$6D - .byte $8E,$E9,$19,$7E - .byte $8F,$E8,$0E,$41 - .byte $90,$E6,$19,$6C - .byte $90,$E4,$1D,$75 - .byte $91,$E3,$20,$79 - .byte $92,$E1,$1B,$60 - .byte $92,$DF,$22,$72 - .byte $93,$DE,$23,$6F - .byte $94,$DC,$2A,$7F - .byte $94,$DA,$22,$61 - .byte $95,$D9,$2A,$72 - .byte $96,$D7,$2E,$77 - .byte $97,$D5,$33,$7E - .byte $97,$D4,$24,$55 - .byte $98,$D2,$2E,$68 - .byte $99,$D0,$35,$73 - .byte $99,$CF,$32,$68 - .byte $9A,$CD,$3F,$7E - .byte $9B,$CB,$40,$7B - .byte $9B,$CA,$43,$7C - .byte $9C,$C8,$3C,$6B - .byte $9D,$C6,$39,$62 - .byte $9D,$C5,$2F,$4E - .byte $9E,$C3,$49,$75 - .byte $9F,$C1,$47,$6E - .byte $A0,$C0,$54,$7E - .byte $A0,$BE,$50,$74 - .byte $A1,$BC,$2F,$42 - .byte $A2,$BB,$56,$75 - .byte $A2,$B9,$5B,$78 - .byte $A3,$B7,$56,$6E - .byte $A4,$B6,$53,$67 - .byte $A4,$B4,$53,$64 - .byte $A5,$B2,$64,$75 - .byte $A6,$B1,$5F,$6C - .byte $A6,$AF,$56,$5F - .byte $A7,$AD,$6C,$74 - .byte $A8,$AC,$70,$75 - .byte $A8,$AA,$7A,$7C - .byte $A9,$A8,$5C,$5B - .byte $AA,$A7,$6C,$68 - .byte $AB,$A5,$71,$6A - .byte $AB,$A3,$68,$5F - .byte $AC,$A2,$64,$59 - .res 4 ; to bring it up to 256 bytes per angle + !byte $81,$09,$09,$7F + !byte $82,$07,$05,$56 + !byte $82,$06,$05,$6F + !byte $83,$04,$04,$7D + !byte $84,$02,$02,$6A + !byte $85,$01,$00,$7F + !byte $85,$FF,$01,$7C + !byte $86,$FD,$02,$5C + !byte $87,$FC,$04,$71 + !byte $87,$FA,$06,$79 + !byte $88,$F8,$06,$5E + !byte $89,$F7,$09,$73 + !byte $89,$F5,$09,$61 + !byte $8A,$F3,$0D,$79 + !byte $8B,$F2,$0B,$5A + !byte $8B,$F0,$0E,$66 + !byte $8C,$EE,$12,$76 + !byte $8D,$ED,$15,$7D + !byte $8E,$EB,$14,$6D + !byte $8E,$E9,$19,$7E + !byte $8F,$E8,$0E,$41 + !byte $90,$E6,$19,$6C + !byte $90,$E4,$1D,$75 + !byte $91,$E3,$20,$79 + !byte $92,$E1,$1B,$60 + !byte $92,$DF,$22,$72 + !byte $93,$DE,$23,$6F + !byte $94,$DC,$2A,$7F + !byte $94,$DA,$22,$61 + !byte $95,$D9,$2A,$72 + !byte $96,$D7,$2E,$77 + !byte $97,$D5,$33,$7E + !byte $97,$D4,$24,$55 + !byte $98,$D2,$2E,$68 + !byte $99,$D0,$35,$73 + !byte $99,$CF,$32,$68 + !byte $9A,$CD,$3F,$7E + !byte $9B,$CB,$40,$7B + !byte $9B,$CA,$43,$7C + !byte $9C,$C8,$3C,$6B + !byte $9D,$C6,$39,$62 + !byte $9D,$C5,$2F,$4E + !byte $9E,$C3,$49,$75 + !byte $9F,$C1,$47,$6E + !byte $A0,$C0,$54,$7E + !byte $A0,$BE,$50,$74 + !byte $A1,$BC,$2F,$42 + !byte $A2,$BB,$56,$75 + !byte $A2,$B9,$5B,$78 + !byte $A3,$B7,$56,$6E + !byte $A4,$B6,$53,$67 + !byte $A4,$B4,$53,$64 + !byte $A5,$B2,$64,$75 + !byte $A6,$B1,$5F,$6C + !byte $A6,$AF,$56,$5F + !byte $A7,$AD,$6C,$74 + !byte $A8,$AC,$70,$75 + !byte $A8,$AA,$7A,$7C + !byte $A9,$A8,$5C,$5B + !byte $AA,$A7,$6C,$68 + !byte $AB,$A5,$71,$6A + !byte $AB,$A3,$68,$5F + !byte $AC,$A2,$64,$59 + !fill 4 ; to bring it up to 256 bytes per angle precast_10: - .byte $87,$D8,$2A,$7F - .byte $89,$D6,$29,$76 - .byte $8A,$D5,$2A,$74 - .byte $8B,$D4,$1A,$45 - .byte $8C,$D3,$28,$66 - .byte $8E,$D1,$2A,$67 - .byte $8F,$D0,$24,$55 - .byte $90,$CF,$33,$74 - .byte $92,$CE,$2A,$5C - .byte $93,$CC,$35,$70 - .byte $94,$CB,$37,$70 - .byte $95,$CA,$39,$70 - .byte $97,$C8,$27,$4A - .byte $98,$C7,$42,$79 - .byte $99,$C6,$3D,$6C - .byte $9A,$C5,$45,$76 - .byte $9C,$C3,$48,$77 - .byte $9D,$C2,$4B,$78 - .byte $9E,$C1,$4B,$74 - .byte $A0,$BF,$54,$7E - .byte $A1,$BE,$2F,$44 - .byte $A2,$BD,$57,$7A - .byte $A3,$BC,$4C,$67 - .byte $A5,$BA,$60,$7E - .byte $A6,$B9,$55,$6C - .byte $A7,$B8,$5B,$70 - .byte $A9,$B7,$5E,$70 - .byte $AA,$B5,$6E,$7F - .byte $AB,$B4,$6E,$7B - .byte $AC,$B3,$6C,$75 - .byte $AE,$B1,$66,$6B - .byte $AF,$B0,$7C,$7E - .byte $B0,$AF,$40,$3F - .byte $B1,$AE,$6C,$67 - .byte $B3,$AC,$76,$6D - .byte $B4,$AB,$7C,$6F - .byte $B5,$AA,$71,$62 - .byte $B7,$A9,$51,$44 - .byte $B8,$A7,$7B,$64 - .byte $B9,$A6,$7F,$64 - .byte $BA,$A5,$7A,$5D - .byte $BC,$A3,$7E,$5D - .byte $BD,$A2,$7B,$58 - .byte $BE,$A1,$51,$38 - .byte $BF,$A0,$7F,$55 - .byte $C1,$9E,$7A,$4F - .byte $C2,$9D,$7B,$4D - .byte $C3,$9C,$72,$45 - .byte $C5,$9A,$5E,$37 - .byte $C6,$99,$7A,$45 - .byte $C7,$98,$77,$41 - .byte $C8,$97,$5B,$30 - .byte $CA,$95,$6E,$38 - .byte $CB,$94,$72,$38 - .byte $CC,$93,$74,$37 - .byte $CE,$92,$7F,$3A - .byte $CF,$90,$6D,$30 - .byte $D0,$8F,$5C,$27 - .byte $D1,$8E,$4C,$1F - .byte $D3,$8C,$4F,$1F - .byte $D4,$8B,$72,$2B - .byte $D5,$8A,$7F,$2E - .byte $D6,$89,$73,$28 - .res 4 ; to bring it up to 256 bytes per angle + !byte $87,$D8,$2A,$7F + !byte $89,$D6,$29,$76 + !byte $8A,$D5,$2A,$74 + !byte $8B,$D4,$1A,$45 + !byte $8C,$D3,$28,$66 + !byte $8E,$D1,$2A,$67 + !byte $8F,$D0,$24,$55 + !byte $90,$CF,$33,$74 + !byte $92,$CE,$2A,$5C + !byte $93,$CC,$35,$70 + !byte $94,$CB,$37,$70 + !byte $95,$CA,$39,$70 + !byte $97,$C8,$27,$4A + !byte $98,$C7,$42,$79 + !byte $99,$C6,$3D,$6C + !byte $9A,$C5,$45,$76 + !byte $9C,$C3,$48,$77 + !byte $9D,$C2,$4B,$78 + !byte $9E,$C1,$4B,$74 + !byte $A0,$BF,$54,$7E + !byte $A1,$BE,$2F,$44 + !byte $A2,$BD,$57,$7A + !byte $A3,$BC,$4C,$67 + !byte $A5,$BA,$60,$7E + !byte $A6,$B9,$55,$6C + !byte $A7,$B8,$5B,$70 + !byte $A9,$B7,$5E,$70 + !byte $AA,$B5,$6E,$7F + !byte $AB,$B4,$6E,$7B + !byte $AC,$B3,$6C,$75 + !byte $AE,$B1,$66,$6B + !byte $AF,$B0,$7C,$7E + !byte $B0,$AF,$40,$3F + !byte $B1,$AE,$6C,$67 + !byte $B3,$AC,$76,$6D + !byte $B4,$AB,$7C,$6F + !byte $B5,$AA,$71,$62 + !byte $B7,$A9,$51,$44 + !byte $B8,$A7,$7B,$64 + !byte $B9,$A6,$7F,$64 + !byte $BA,$A5,$7A,$5D + !byte $BC,$A3,$7E,$5D + !byte $BD,$A2,$7B,$58 + !byte $BE,$A1,$51,$38 + !byte $BF,$A0,$7F,$55 + !byte $C1,$9E,$7A,$4F + !byte $C2,$9D,$7B,$4D + !byte $C3,$9C,$72,$45 + !byte $C5,$9A,$5E,$37 + !byte $C6,$99,$7A,$45 + !byte $C7,$98,$77,$41 + !byte $C8,$97,$5B,$30 + !byte $CA,$95,$6E,$38 + !byte $CB,$94,$72,$38 + !byte $CC,$93,$74,$37 + !byte $CE,$92,$7F,$3A + !byte $CF,$90,$6D,$30 + !byte $D0,$8F,$5C,$27 + !byte $D1,$8E,$4C,$1F + !byte $D3,$8C,$4F,$1F + !byte $D4,$8B,$72,$2B + !byte $D5,$8A,$7F,$2E + !byte $D6,$89,$73,$28 + !fill 4 ; to bring it up to 256 bytes per angle precast_11: - .byte $A0,$AD,$62,$71 - .byte $A2,$AC,$61,$6D - .byte $A3,$AB,$74,$7F - .byte $A5,$AB,$69,$70 - .byte $A7,$AA,$67,$6B - .byte $A8,$A9,$5A,$5B - .byte $AA,$A8,$7D,$7B - .byte $AC,$A8,$5E,$5A - .byte $AD,$A7,$66,$5F - .byte $AF,$A6,$4A,$43 - .byte $B1,$A6,$7D,$6E - .byte $B2,$A5,$7C,$6A - .byte $B4,$A4,$6A,$58 - .byte $B6,$A4,$43,$36 - .byte $B7,$A3,$4E,$3D - .byte $B9,$A2,$74,$58 - .byte $BB,$A2,$66,$4B - .byte $BC,$A1,$49,$34 - .byte $BE,$A0,$64,$45 - .byte $C0,$A0,$7F,$55 - .byte $C1,$9F,$4F,$33 - .byte $C3,$9E,$7D,$4E - .byte $C5,$9D,$49,$2C - .byte $C6,$9D,$6E,$40 - .byte $C8,$9C,$7B,$45 - .byte $CA,$9B,$6F,$3C - .byte $CB,$9B,$62,$33 - .byte $CD,$9A,$7F,$40 - .byte $CF,$99,$4F,$26 - .byte $D0,$99,$75,$36 - .byte $D2,$98,$71,$32 - .byte $D4,$97,$76,$32 - .byte $D5,$97,$79,$31 - .byte $D7,$96,$4B,$1D - .byte $D9,$95,$7A,$2D - .byte $DA,$94,$4D,$1B - .byte $DC,$94,$7E,$2A - .byte $DE,$93,$72,$24 - .byte $DF,$92,$7C,$25 - .byte $E1,$92,$67,$1D - .byte $E3,$91,$66,$1B - .byte $E4,$90,$79,$1E - .byte $E6,$90,$5F,$16 - .byte $E8,$8F,$74,$19 - .byte $E9,$8E,$7D,$19 - .byte $EB,$8E,$62,$12 - .byte $ED,$8D,$77,$14 - .byte $EE,$8C,$48,$0B - .byte $F0,$8B,$50,$0B - .byte $F2,$8B,$62,$0C - .byte $F3,$8A,$5D,$0A - .byte $F5,$89,$56,$08 - .byte $F7,$89,$66,$08 - .byte $F8,$88,$7D,$08 - .byte $FA,$87,$78,$06 - .byte $FC,$87,$70,$04 - .byte $FD,$86,$5B,$02 - .byte $FF,$85,$7B,$01 - .byte $01,$85,$5B,$00 - .byte $02,$84,$69,$02 - .byte $04,$83,$7C,$04 - .byte $06,$82,$6E,$05 - .byte $07,$82,$67,$06 - .res 4 ; to bring it up to 256 bytes per angle + !byte $A0,$AD,$62,$71 + !byte $A2,$AC,$61,$6D + !byte $A3,$AB,$74,$7F + !byte $A5,$AB,$69,$70 + !byte $A7,$AA,$67,$6B + !byte $A8,$A9,$5A,$5B + !byte $AA,$A8,$7D,$7B + !byte $AC,$A8,$5E,$5A + !byte $AD,$A7,$66,$5F + !byte $AF,$A6,$4A,$43 + !byte $B1,$A6,$7D,$6E + !byte $B2,$A5,$7C,$6A + !byte $B4,$A4,$6A,$58 + !byte $B6,$A4,$43,$36 + !byte $B7,$A3,$4E,$3D + !byte $B9,$A2,$74,$58 + !byte $BB,$A2,$66,$4B + !byte $BC,$A1,$49,$34 + !byte $BE,$A0,$64,$45 + !byte $C0,$A0,$7F,$55 + !byte $C1,$9F,$4F,$33 + !byte $C3,$9E,$7D,$4E + !byte $C5,$9D,$49,$2C + !byte $C6,$9D,$6E,$40 + !byte $C8,$9C,$7B,$45 + !byte $CA,$9B,$6F,$3C + !byte $CB,$9B,$62,$33 + !byte $CD,$9A,$7F,$40 + !byte $CF,$99,$4F,$26 + !byte $D0,$99,$75,$36 + !byte $D2,$98,$71,$32 + !byte $D4,$97,$76,$32 + !byte $D5,$97,$79,$31 + !byte $D7,$96,$4B,$1D + !byte $D9,$95,$7A,$2D + !byte $DA,$94,$4D,$1B + !byte $DC,$94,$7E,$2A + !byte $DE,$93,$72,$24 + !byte $DF,$92,$7C,$25 + !byte $E1,$92,$67,$1D + !byte $E3,$91,$66,$1B + !byte $E4,$90,$79,$1E + !byte $E6,$90,$5F,$16 + !byte $E8,$8F,$74,$19 + !byte $E9,$8E,$7D,$19 + !byte $EB,$8E,$62,$12 + !byte $ED,$8D,$77,$14 + !byte $EE,$8C,$48,$0B + !byte $F0,$8B,$50,$0B + !byte $F2,$8B,$62,$0C + !byte $F3,$8A,$5D,$0A + !byte $F5,$89,$56,$08 + !byte $F7,$89,$66,$08 + !byte $F8,$88,$7D,$08 + !byte $FA,$87,$78,$06 + !byte $FC,$87,$70,$04 + !byte $FD,$86,$5B,$02 + !byte $FF,$85,$7B,$01 + !byte $01,$85,$5B,$00 + !byte $02,$84,$69,$02 + !byte $04,$83,$7C,$04 + !byte $06,$82,$6E,$05 + !byte $07,$82,$67,$06 + !fill 4 ; to bring it up to 256 bytes per angle precast_12: - .byte $C7,$8E,$7F,$40 - .byte $C9,$8E,$5F,$2E - .byte $CB,$8E,$4F,$25 - .byte $CD,$8E,$5F,$2B - .byte $CE,$8E,$47,$1F - .byte $D0,$8E,$72,$30 - .byte $D2,$8E,$79,$31 - .byte $D4,$8E,$71,$2C - .byte $D6,$8E,$43,$19 - .byte $D7,$8E,$7B,$2C - .byte $D9,$8E,$7B,$2A - .byte $DB,$8E,$56,$1C - .byte $DD,$8E,$71,$23 - .byte $DF,$8E,$77,$23 - .byte $E0,$8E,$73,$20 - .byte $E2,$8E,$67,$1B - .byte $E4,$8E,$41,$10 - .byte $E6,$8E,$75,$1B - .byte $E8,$8E,$79,$1A - .byte $E9,$8E,$7D,$19 - .byte $EB,$8E,$73,$15 - .byte $ED,$8E,$7D,$15 - .byte $EF,$8E,$6A,$10 - .byte $F1,$8E,$6F,$0F - .byte $F2,$8E,$6D,$0D - .byte $F4,$8E,$74,$0C - .byte $F6,$8E,$67,$09 - .byte $F8,$8E,$7D,$09 - .byte $FA,$8E,$7D,$07 - .byte $FB,$8E,$7D,$05 - .byte $FD,$8E,$7D,$03 - .byte $FF,$8E,$7D,$01 - .byte $01,$8E,$7E,$01 - .byte $03,$8E,$7E,$03 - .byte $05,$8E,$7E,$05 - .byte $06,$8E,$7E,$07 - .byte $08,$8E,$7E,$09 - .byte $0A,$8E,$7E,$0B - .byte $0C,$8E,$7E,$0D - .byte $0E,$8E,$7E,$0F - .byte $0F,$8E,$7E,$11 - .byte $11,$8E,$7E,$13 - .byte $13,$8E,$7E,$15 - .byte $15,$8E,$7E,$17 - .byte $17,$8E,$7E,$19 - .byte $18,$8E,$7E,$1B - .byte $1A,$8E,$7E,$1D - .byte $1C,$8E,$7E,$1F - .byte $1E,$8E,$7E,$21 - .byte $20,$8E,$7E,$23 - .byte $21,$8E,$7E,$25 - .byte $23,$8E,$7E,$27 - .byte $25,$8E,$7E,$29 - .byte $27,$8E,$7E,$2B - .byte $29,$8E,$7E,$2D - .byte $2A,$8E,$7E,$2F - .byte $2C,$8E,$7E,$31 - .byte $2E,$8E,$7E,$33 - .byte $30,$8E,$7E,$35 - .byte $32,$8E,$7E,$37 - .byte $33,$8E,$7E,$39 - .byte $35,$8E,$7E,$3B - .byte $37,$8E,$7E,$3D - .res 4 ; to bring it up to 256 bytes per angle + !byte $C7,$8E,$7F,$40 + !byte $C9,$8E,$5F,$2E + !byte $CB,$8E,$4F,$25 + !byte $CD,$8E,$5F,$2B + !byte $CE,$8E,$47,$1F + !byte $D0,$8E,$72,$30 + !byte $D2,$8E,$79,$31 + !byte $D4,$8E,$71,$2C + !byte $D6,$8E,$43,$19 + !byte $D7,$8E,$7B,$2C + !byte $D9,$8E,$7B,$2A + !byte $DB,$8E,$56,$1C + !byte $DD,$8E,$71,$23 + !byte $DF,$8E,$77,$23 + !byte $E0,$8E,$73,$20 + !byte $E2,$8E,$67,$1B + !byte $E4,$8E,$41,$10 + !byte $E6,$8E,$75,$1B + !byte $E8,$8E,$79,$1A + !byte $E9,$8E,$7D,$19 + !byte $EB,$8E,$73,$15 + !byte $ED,$8E,$7D,$15 + !byte $EF,$8E,$6A,$10 + !byte $F1,$8E,$6F,$0F + !byte $F2,$8E,$6D,$0D + !byte $F4,$8E,$74,$0C + !byte $F6,$8E,$67,$09 + !byte $F8,$8E,$7D,$09 + !byte $FA,$8E,$7D,$07 + !byte $FB,$8E,$7D,$05 + !byte $FD,$8E,$7D,$03 + !byte $FF,$8E,$7D,$01 + !byte $01,$8E,$7E,$01 + !byte $03,$8E,$7E,$03 + !byte $05,$8E,$7E,$05 + !byte $06,$8E,$7E,$07 + !byte $08,$8E,$7E,$09 + !byte $0A,$8E,$7E,$0B + !byte $0C,$8E,$7E,$0D + !byte $0E,$8E,$7E,$0F + !byte $0F,$8E,$7E,$11 + !byte $11,$8E,$7E,$13 + !byte $13,$8E,$7E,$15 + !byte $15,$8E,$7E,$17 + !byte $17,$8E,$7E,$19 + !byte $18,$8E,$7E,$1B + !byte $1A,$8E,$7E,$1D + !byte $1C,$8E,$7E,$1F + !byte $1E,$8E,$7E,$21 + !byte $20,$8E,$7E,$23 + !byte $21,$8E,$7E,$25 + !byte $23,$8E,$7E,$27 + !byte $25,$8E,$7E,$29 + !byte $27,$8E,$7E,$2B + !byte $29,$8E,$7E,$2D + !byte $2A,$8E,$7E,$2F + !byte $2C,$8E,$7E,$31 + !byte $2E,$8E,$7E,$33 + !byte $30,$8E,$7E,$35 + !byte $32,$8E,$7E,$37 + !byte $33,$8E,$7E,$39 + !byte $35,$8E,$7E,$3B + !byte $37,$8E,$7E,$3D + !fill 4 ; to bring it up to 256 bytes per angle precast_13: - .byte $F7,$81,$7E,$09 - .byte $F9,$82,$67,$06 - .byte $FA,$82,$6E,$05 - .byte $FC,$83,$7C,$04 - .byte $FE,$84,$69,$02 - .byte $FF,$85,$5B,$00 - .byte $01,$85,$7B,$01 - .byte $03,$86,$5B,$02 - .byte $04,$87,$70,$04 - .byte $06,$87,$78,$06 - .byte $08,$88,$7D,$08 - .byte $09,$89,$66,$08 - .byte $0B,$89,$56,$08 - .byte $0D,$8A,$5D,$0A - .byte $0E,$8B,$62,$0C - .byte $10,$8B,$50,$0B - .byte $12,$8C,$48,$0B - .byte $13,$8D,$77,$14 - .byte $15,$8E,$62,$12 - .byte $17,$8E,$7D,$19 - .byte $18,$8F,$74,$19 - .byte $1A,$90,$5F,$16 - .byte $1C,$90,$79,$1E - .byte $1D,$91,$66,$1B - .byte $1F,$92,$67,$1D - .byte $21,$92,$7C,$25 - .byte $22,$93,$72,$24 - .byte $24,$94,$7E,$2A - .byte $26,$94,$4D,$1B - .byte $27,$95,$7A,$2D - .byte $29,$96,$4B,$1D - .byte $2B,$97,$79,$31 - .byte $2C,$97,$76,$32 - .byte $2E,$98,$71,$32 - .byte $30,$99,$75,$36 - .byte $31,$99,$4F,$26 - .byte $33,$9A,$7F,$40 - .byte $35,$9B,$62,$33 - .byte $36,$9B,$6F,$3C - .byte $38,$9C,$7B,$45 - .byte $3A,$9D,$6E,$40 - .byte $3B,$9D,$49,$2C - .byte $3D,$9E,$7D,$4E - .byte $3F,$9F,$4F,$33 - .byte $40,$A0,$7F,$55 - .byte $42,$A0,$64,$45 - .byte $44,$A1,$49,$34 - .byte $45,$A2,$66,$4B - .byte $47,$A2,$74,$58 - .byte $49,$A3,$4E,$3D - .byte $4A,$A4,$43,$36 - .byte $4C,$A4,$6A,$58 - .byte $4E,$A5,$7C,$6A - .byte $4F,$A6,$7D,$6E - .byte $51,$A6,$4A,$43 - .byte $53,$A7,$66,$5F - .byte $54,$A8,$5E,$5A - .byte $56,$A8,$7D,$7B - .byte $58,$A9,$5A,$5B - .byte $59,$AA,$67,$6B - .byte $5B,$AB,$69,$70 - .byte $5D,$AB,$74,$7F - .byte $5E,$AC,$61,$6D - .res 4 ; to bring it up to 256 bytes per angle + !byte $F7,$81,$7E,$09 + !byte $F9,$82,$67,$06 + !byte $FA,$82,$6E,$05 + !byte $FC,$83,$7C,$04 + !byte $FE,$84,$69,$02 + !byte $FF,$85,$5B,$00 + !byte $01,$85,$7B,$01 + !byte $03,$86,$5B,$02 + !byte $04,$87,$70,$04 + !byte $06,$87,$78,$06 + !byte $08,$88,$7D,$08 + !byte $09,$89,$66,$08 + !byte $0B,$89,$56,$08 + !byte $0D,$8A,$5D,$0A + !byte $0E,$8B,$62,$0C + !byte $10,$8B,$50,$0B + !byte $12,$8C,$48,$0B + !byte $13,$8D,$77,$14 + !byte $15,$8E,$62,$12 + !byte $17,$8E,$7D,$19 + !byte $18,$8F,$74,$19 + !byte $1A,$90,$5F,$16 + !byte $1C,$90,$79,$1E + !byte $1D,$91,$66,$1B + !byte $1F,$92,$67,$1D + !byte $21,$92,$7C,$25 + !byte $22,$93,$72,$24 + !byte $24,$94,$7E,$2A + !byte $26,$94,$4D,$1B + !byte $27,$95,$7A,$2D + !byte $29,$96,$4B,$1D + !byte $2B,$97,$79,$31 + !byte $2C,$97,$76,$32 + !byte $2E,$98,$71,$32 + !byte $30,$99,$75,$36 + !byte $31,$99,$4F,$26 + !byte $33,$9A,$7F,$40 + !byte $35,$9B,$62,$33 + !byte $36,$9B,$6F,$3C + !byte $38,$9C,$7B,$45 + !byte $3A,$9D,$6E,$40 + !byte $3B,$9D,$49,$2C + !byte $3D,$9E,$7D,$4E + !byte $3F,$9F,$4F,$33 + !byte $40,$A0,$7F,$55 + !byte $42,$A0,$64,$45 + !byte $44,$A1,$49,$34 + !byte $45,$A2,$66,$4B + !byte $47,$A2,$74,$58 + !byte $49,$A3,$4E,$3D + !byte $4A,$A4,$43,$36 + !byte $4C,$A4,$6A,$58 + !byte $4E,$A5,$7C,$6A + !byte $4F,$A6,$7D,$6E + !byte $51,$A6,$4A,$43 + !byte $53,$A7,$66,$5F + !byte $54,$A8,$5E,$5A + !byte $56,$A8,$7D,$7B + !byte $58,$A9,$5A,$5B + !byte $59,$AA,$67,$6B + !byte $5B,$AB,$69,$70 + !byte $5D,$AB,$74,$7F + !byte $5E,$AC,$61,$6D + !fill 4 ; to bring it up to 256 bytes per angle precast_14: - .byte $28,$87,$7E,$2A - .byte $2A,$89,$73,$28 - .byte $2B,$8A,$7F,$2E - .byte $2C,$8B,$7A,$2E - .byte $2D,$8C,$4F,$1F - .byte $2F,$8E,$4C,$1F - .byte $30,$8F,$76,$32 - .byte $31,$90,$7D,$37 - .byte $32,$92,$7F,$3A - .byte $34,$93,$72,$36 - .byte $35,$94,$72,$38 - .byte $36,$95,$6E,$38 - .byte $38,$97,$6E,$3A - .byte $39,$98,$77,$41 - .byte $3A,$99,$73,$41 - .byte $3B,$9A,$6A,$3E - .byte $3D,$9C,$72,$45 - .byte $3E,$9D,$7B,$4D - .byte $3F,$9E,$77,$4D - .byte $41,$A0,$7F,$55 - .byte $42,$A1,$51,$38 - .byte $43,$A2,$7E,$5A - .byte $44,$A3,$7E,$5D - .byte $46,$A5,$7A,$5D - .byte $47,$A6,$5E,$4A - .byte $48,$A7,$7B,$64 - .byte $49,$A9,$51,$44 - .byte $4B,$AA,$78,$68 - .byte $4C,$AB,$72,$66 - .byte $4D,$AC,$76,$6D - .byte $4F,$AE,$56,$52 - .byte $50,$AF,$7F,$7D - .byte $51,$B0,$7D,$7F - .byte $52,$B1,$52,$56 - .byte $54,$B3,$6C,$75 - .byte $55,$B4,$66,$72 - .byte $56,$B5,$68,$78 - .byte $57,$B7,$5E,$70 - .byte $59,$B8,$5B,$70 - .byte $5A,$B9,$4A,$5E - .byte $5B,$BA,$60,$7E - .byte $5D,$BC,$4C,$67 - .byte $5E,$BD,$5A,$7E - .byte $5F,$BE,$2F,$44 - .byte $60,$BF,$54,$7E - .byte $62,$C1,$4D,$77 - .byte $63,$C2,$4B,$78 - .byte $64,$C3,$48,$77 - .byte $66,$C5,$3E,$6A - .byte $67,$C6,$41,$73 - .byte $68,$C7,$42,$79 - .byte $69,$C8,$3A,$6E - .byte $6B,$CA,$39,$70 - .byte $6C,$CB,$37,$70 - .byte $6D,$CC,$36,$72 - .byte $6E,$CE,$2A,$5C - .byte $70,$CF,$37,$7D - .byte $71,$D0,$32,$76 - .byte $72,$D1,$2A,$67 - .byte $74,$D3,$28,$66 - .byte $75,$D4,$2E,$7A - .byte $76,$D5,$2A,$74 - .byte $77,$D6,$29,$76 - .res 4 ; to bring it up to 256 bytes per angle + !byte $28,$87,$7E,$2A + !byte $2A,$89,$73,$28 + !byte $2B,$8A,$7F,$2E + !byte $2C,$8B,$7A,$2E + !byte $2D,$8C,$4F,$1F + !byte $2F,$8E,$4C,$1F + !byte $30,$8F,$76,$32 + !byte $31,$90,$7D,$37 + !byte $32,$92,$7F,$3A + !byte $34,$93,$72,$36 + !byte $35,$94,$72,$38 + !byte $36,$95,$6E,$38 + !byte $38,$97,$6E,$3A + !byte $39,$98,$77,$41 + !byte $3A,$99,$73,$41 + !byte $3B,$9A,$6A,$3E + !byte $3D,$9C,$72,$45 + !byte $3E,$9D,$7B,$4D + !byte $3F,$9E,$77,$4D + !byte $41,$A0,$7F,$55 + !byte $42,$A1,$51,$38 + !byte $43,$A2,$7E,$5A + !byte $44,$A3,$7E,$5D + !byte $46,$A5,$7A,$5D + !byte $47,$A6,$5E,$4A + !byte $48,$A7,$7B,$64 + !byte $49,$A9,$51,$44 + !byte $4B,$AA,$78,$68 + !byte $4C,$AB,$72,$66 + !byte $4D,$AC,$76,$6D + !byte $4F,$AE,$56,$52 + !byte $50,$AF,$7F,$7D + !byte $51,$B0,$7D,$7F + !byte $52,$B1,$52,$56 + !byte $54,$B3,$6C,$75 + !byte $55,$B4,$66,$72 + !byte $56,$B5,$68,$78 + !byte $57,$B7,$5E,$70 + !byte $59,$B8,$5B,$70 + !byte $5A,$B9,$4A,$5E + !byte $5B,$BA,$60,$7E + !byte $5D,$BC,$4C,$67 + !byte $5E,$BD,$5A,$7E + !byte $5F,$BE,$2F,$44 + !byte $60,$BF,$54,$7E + !byte $62,$C1,$4D,$77 + !byte $63,$C2,$4B,$78 + !byte $64,$C3,$48,$77 + !byte $66,$C5,$3E,$6A + !byte $67,$C6,$41,$73 + !byte $68,$C7,$42,$79 + !byte $69,$C8,$3A,$6E + !byte $6B,$CA,$39,$70 + !byte $6C,$CB,$37,$70 + !byte $6D,$CC,$36,$72 + !byte $6E,$CE,$2A,$5C + !byte $70,$CF,$37,$7D + !byte $71,$D0,$32,$76 + !byte $72,$D1,$2A,$67 + !byte $74,$D3,$28,$66 + !byte $75,$D4,$2E,$7A + !byte $76,$D5,$2A,$74 + !byte $77,$D6,$29,$76 + !fill 4 ; to bring it up to 256 bytes per angle precast_15: - .byte $53,$A0,$62,$55 - .byte $54,$A2,$64,$59 - .byte $55,$A3,$68,$5F - .byte $55,$A5,$71,$6A - .byte $56,$A7,$6C,$68 - .byte $57,$A8,$5C,$5B - .byte $58,$AA,$7A,$7C - .byte $58,$AC,$70,$75 - .byte $59,$AD,$6C,$74 - .byte $5A,$AF,$56,$5F - .byte $5A,$B1,$5F,$6C - .byte $5B,$B2,$64,$75 - .byte $5C,$B4,$53,$64 - .byte $5C,$B6,$53,$67 - .byte $5D,$B7,$56,$6E - .byte $5E,$B9,$5B,$78 - .byte $5E,$BB,$56,$75 - .byte $5F,$BC,$2F,$42 - .byte $60,$BE,$50,$74 - .byte $60,$C0,$54,$7E - .byte $61,$C1,$47,$6E - .byte $62,$C3,$49,$75 - .byte $63,$C5,$2F,$4E - .byte $63,$C6,$39,$62 - .byte $64,$C8,$3C,$6B - .byte $65,$CA,$43,$7C - .byte $65,$CB,$40,$7B - .byte $66,$CD,$3F,$7E - .byte $67,$CF,$32,$68 - .byte $67,$D0,$35,$73 - .byte $68,$D2,$2E,$68 - .byte $69,$D4,$24,$55 - .byte $69,$D5,$33,$7E - .byte $6A,$D7,$2E,$77 - .byte $6B,$D9,$2A,$72 - .byte $6C,$DA,$22,$61 - .byte $6C,$DC,$2A,$7F - .byte $6D,$DE,$23,$6F - .byte $6E,$DF,$22,$72 - .byte $6E,$E1,$1B,$60 - .byte $6F,$E3,$20,$79 - .byte $70,$E4,$1D,$75 - .byte $70,$E6,$19,$6C - .byte $71,$E8,$0E,$41 - .byte $72,$E9,$19,$7E - .byte $72,$EB,$14,$6D - .byte $73,$ED,$15,$7D - .byte $74,$EE,$12,$76 - .byte $75,$F0,$0E,$66 - .byte $75,$F2,$0B,$5A - .byte $76,$F3,$0D,$79 - .byte $77,$F5,$09,$61 - .byte $77,$F7,$09,$73 - .byte $78,$F8,$06,$5E - .byte $79,$FA,$06,$79 - .byte $79,$FC,$04,$71 - .byte $7A,$FD,$02,$5C - .byte $7B,$FF,$01,$7C - .byte $7B,$01,$00,$7F - .byte $7C,$02,$02,$6A - .byte $7D,$04,$04,$7D - .byte $7E,$06,$05,$6F - .byte $7E,$07,$05,$56 - .res 4 ; to bring it up to 256 bytes per angle + !byte $53,$A0,$62,$55 + !byte $54,$A2,$64,$59 + !byte $55,$A3,$68,$5F + !byte $55,$A5,$71,$6A + !byte $56,$A7,$6C,$68 + !byte $57,$A8,$5C,$5B + !byte $58,$AA,$7A,$7C + !byte $58,$AC,$70,$75 + !byte $59,$AD,$6C,$74 + !byte $5A,$AF,$56,$5F + !byte $5A,$B1,$5F,$6C + !byte $5B,$B2,$64,$75 + !byte $5C,$B4,$53,$64 + !byte $5C,$B6,$53,$67 + !byte $5D,$B7,$56,$6E + !byte $5E,$B9,$5B,$78 + !byte $5E,$BB,$56,$75 + !byte $5F,$BC,$2F,$42 + !byte $60,$BE,$50,$74 + !byte $60,$C0,$54,$7E + !byte $61,$C1,$47,$6E + !byte $62,$C3,$49,$75 + !byte $63,$C5,$2F,$4E + !byte $63,$C6,$39,$62 + !byte $64,$C8,$3C,$6B + !byte $65,$CA,$43,$7C + !byte $65,$CB,$40,$7B + !byte $66,$CD,$3F,$7E + !byte $67,$CF,$32,$68 + !byte $67,$D0,$35,$73 + !byte $68,$D2,$2E,$68 + !byte $69,$D4,$24,$55 + !byte $69,$D5,$33,$7E + !byte $6A,$D7,$2E,$77 + !byte $6B,$D9,$2A,$72 + !byte $6C,$DA,$22,$61 + !byte $6C,$DC,$2A,$7F + !byte $6D,$DE,$23,$6F + !byte $6E,$DF,$22,$72 + !byte $6E,$E1,$1B,$60 + !byte $6F,$E3,$20,$79 + !byte $70,$E4,$1D,$75 + !byte $70,$E6,$19,$6C + !byte $71,$E8,$0E,$41 + !byte $72,$E9,$19,$7E + !byte $72,$EB,$14,$6D + !byte $73,$ED,$15,$7D + !byte $74,$EE,$12,$76 + !byte $75,$F0,$0E,$66 + !byte $75,$F2,$0B,$5A + !byte $76,$F3,$0D,$79 + !byte $77,$F5,$09,$61 + !byte $77,$F7,$09,$73 + !byte $78,$F8,$06,$5E + !byte $79,$FA,$06,$79 + !byte $79,$FC,$04,$71 + !byte $7A,$FD,$02,$5C + !byte $7B,$FF,$01,$7C + !byte $7B,$01,$00,$7F + !byte $7C,$02,$02,$6A + !byte $7D,$04,$04,$7D + !byte $7E,$06,$05,$6F + !byte $7E,$07,$05,$56 + !fill 4 ; to bring it up to 256 bytes per angle ; Rendering buffers -txNumBuf: .res 256 -txColBuf: .res 256 -heightBuf: .res 256 -depthBuf: .res 256 -linkBuf: .res 256 +txNumBuf: !fill 256 +txColBuf: !fill 256 +heightBuf: !fill 256 +depthBuf: !fill 256 +linkBuf: !fill 256 ; Useful constants -wLog256: .word $0800 -wLogViewDist: .word $0E3F +wLog256: !word $0800 +wLogViewDist: !word $0E3F ; Movement amounts when walking at each angle ; Each entry consists of an X bump and a Y bump, in 8.8 fixed point walkDirs: - .word $0040, $0000 - .word $003B, $0018 - .word $002D, $002D - .word $0018, $003B - .word $0000, $0040 - .word $FFE8, $003B - .word $FFD3, $002D - .word $FFC5, $0018 - .word $FFC0, $0000 - .word $FFC5, $FFE8 - .word $FFD3, $FFD3 - .word $FFE8, $FFC5 - .word $0000, $FFC0 - .word $0018, $FFC5 - .word $002D, $FFD3 - .word $003B, $FFE8 + !word $0040, $0000 + !word $003B, $0018 + !word $002D, $002D + !word $0018, $003B + !word $0000, $0040 + !word $FFE8, $003B + !word $FFD3, $002D + !word $FFC5, $0018 + !word $FFC0, $0000 + !word $FFC5, $FFE8 + !word $FFD3, $FFD3 + !word $FFE8, $FFC5 + !word $0000, $FFC0 + !word $0018, $FFC5 + !word $002D, $FFD3 + !word $003B, $FFE8 ; Sin of each angle, in log8.8 format plus the high bit being the sign (0x8000 = negative) sinTbl: - .word $0000, $8699, $877F, $87E1, $8800, $87E1, $877F, $8699 - .word $8195, $0699, $077F, $07E1, $0800, $07E1, $077F, $0699 + !word $0000, $8699, $877F, $87E1, $8800, $87E1, $877F, $8699 + !word $8195, $0699, $077F, $07E1, $0800, $07E1, $077F, $0699