diff --git a/demos/second/interrupt_handler.s b/demos/second/interrupt_handler.s index 85da4909..f2d73df3 100644 --- a/demos/second/interrupt_handler.s +++ b/demos/second/interrupt_handler.s @@ -29,6 +29,11 @@ interrupt_handler: ; inc $0404 ; debug (flashes char onscreen) + lda IRQ_COUNTDOWN + beq skip_irq_dec + dec IRQ_COUNTDOWN +skip_irq_dec: + .include "pt3_lib_irq_handler.s" diff --git a/demos/second/music.s b/demos/second/music.s index 86d60bc1..d018540b 100644 --- a/demos/second/music.s +++ b/demos/second/music.s @@ -28,5 +28,6 @@ PT3_ENABLE_APPLE_IIC = 1 .align $100 PT3_LOC: ;.incbin "music/z00m_unreal2_part1.pt3" -.incbin "music/z00m_unreal2_part2.pt3" +;.incbin "music/z00m_unreal2_part2.pt3" +.incbin "music/second_3d.pt3" diff --git a/demos/second/music/second_3d.pt3 b/demos/second/music/second_3d.pt3 new file mode 100644 index 00000000..3d6f06d6 Binary files /dev/null and b/demos/second/music/second_3d.pt3 differ diff --git a/demos/second/part18_3d/3d.inc b/demos/second/part18_3d/3d.inc index cd1838f5..b2b24197 100644 --- a/demos/second/part18_3d/3d.inc +++ b/demos/second/part18_3d/3d.inc @@ -85,6 +85,11 @@ frame15: .include "auto/frame098.inc" ; .include "auto/frame099.inc" ; .include "auto/frame100.inc" ; + .include "auto/frame101.inc" ; + .include "auto/frame102.inc" ; + .include "auto/frame103.inc" ; + .include "auto/frame104.inc" ; + .include "auto/frame105.inc" ; -num_scenes=(100-15)+1 +num_scenes=(105-15)+1 diff --git a/demos/second/part18_3d/auto/frame101.inc b/demos/second/part18_3d/auto/frame101.inc new file mode 100644 index 00000000..d301bea6 --- /dev/null +++ b/demos/second/part18_3d/auto/frame101.inc @@ -0,0 +1,48 @@ + .byte SET_COLOR | GREEN + .byte BOX,4,6,35,41 + .byte SET_COLOR | PINK + .byte 4,13,7,23 + .byte 9,25,15,28 + .byte 8,32,15,41 + .byte 5,8,8,9 + .byte HLIN,6,8,10 + .byte SET_COLOR | BROWN + .byte BOX,5,6,8,7 + .byte 19,11,32,12 + .byte BOX_ADD,18,33,16 ; 13 + .byte BOX_ADD_LSAME,34,21 ; 18, 17 + .byte 35,25 + .byte BOX,9,23,14,28 + .byte 18,26,34,27 + .byte BOX_ADD,19,33,29 ; 28 + .byte BOX,9,29,15,31 + .byte BOX_ADD,22,32,33 ; 32 + .byte BOX,8,32,15,38 + .byte 4,13,6,20 + .byte HLIN,23,28,7 + .byte HLIN_ADD,21,29 ; 8 + .byte 20,30 ; 9 + .byte HLIN_ADD_LSAME,31 ; 20, 31, 10 + .byte HLIN,11,14,22 + .byte 20,33,30 + .byte HLIN_ADD,21,32 ; 31 + .byte HLIN,23,28,34 + .byte 8,13,39 + .byte 4,5,21 + .byte PLOT,8,40 + .byte SET_COLOR | DARK_BLUE + .byte BOX,20,14,31,16 + .byte BOX_ADD_LSAME,32,21 ; 20, 17 + .byte 33,23 + .byte 32,25 + .byte BOX,22,27,31,28 + .byte HLIN,22,28,10 + .byte HLIN_ADD_LSAME,29 ; 22, 29, 11 + .byte HLIN,21,30,12 + .byte HLIN_ADD_LSAME,31 ; 21, 31, 13 + .byte HLIN,21,31,26 + .byte 23,30,29 + .byte 25,27,9 + .byte 24,26,30 + .byte END +; total size = 155 diff --git a/demos/second/part18_3d/auto/frame102.inc b/demos/second/part18_3d/auto/frame102.inc new file mode 100644 index 00000000..2bece56c --- /dev/null +++ b/demos/second/part18_3d/auto/frame102.inc @@ -0,0 +1,65 @@ + .byte SET_COLOR | GREEN + .byte BOX,4,28,35,41 + .byte 10,22,35,27 + .byte SET_COLOR | MEDIUM_BLUE + .byte 5,6,35,15 + .byte BOX_ADD_RSAME,6,17 + .byte 7,21 ; 35 18 + .byte HLIN,7,32,22 + .byte HLIN_ADD,8,27 ; 23 + .byte HLIN_ADD_LSAME,22 ; 8, 22, 24 + .byte 18 + .byte 14 + .byte 9 + .byte SET_COLOR | BROWN + .byte BOX,28,25,32,28 + .byte 22,26,26,31 + .byte 28,29,35,31 + .byte 22,33,27,34 + .byte 16,33,20,36 + .byte BOX_ADD,9,11,41 ; 37 + .byte HLIN,31,32,24 + .byte 22,33,32 + .byte 18,20,32 + .byte 28,31,41 + .byte 34,35,28 + .byte PLOT,26,25 + .byte SET_COLOR | LIGHT_BLUE + .byte BOX,19,6,22,9 + .byte 13,7,15,11 + .byte 26,13,28,17 + .byte 31,13,33,16 + .byte 19,15,22,18 + .byte 14,16,16,19 + .byte 26,6,28,8 + .byte HLIN,32,34,6 + .byte 14,15,6 + .byte HLIN_ADD,32,33 ; 7 + .byte HLIN,19,21,10 + .byte 32,33,12 + .byte 14,15,20 + .byte SET_COLOR | PINK + .byte 30,32,27 + .byte HLIN_ADD_RSAME,28 ; 28 32 28 + .byte HLIN,23,26,29 + .byte HLIN_ADD,22,24 ; 30 + .byte HLIN,31,33,32 + .byte HLIN_ADD_RSAME,29 ; 29 33 33 + .byte HLIN,23,27,34 + .byte HLIN_ADD,22,25 ; 35 + .byte HLIN,19,20,35 + .byte HLIN_ADD_RSAME,16 ; 16 20 36 + .byte HLIN,16,17,37 + .byte VLIN,31,32,35 + .byte PLOT,26,28 + .byte 28,29 + .byte 27,33 + .byte 29,34 + .byte SET_COLOR | GREY1 + .byte BOX,4,21,5,28 + .byte 4,11,5,15 + .byte VLIN,6,10,4 + .byte SET_COLOR | GREY2 + .byte PLOT,5,28 + .byte END +; total size = 195 diff --git a/demos/second/part18_3d/auto/frame103.inc b/demos/second/part18_3d/auto/frame103.inc new file mode 100644 index 00000000..828839e1 --- /dev/null +++ b/demos/second/part18_3d/auto/frame103.inc @@ -0,0 +1,53 @@ + .byte SET_COLOR | DARK_BLUE + .byte BOX,5,6,35,21 + .byte SET_COLOR | MEDIUM_BLUE + .byte BOX_ADD_RSAME,4,32 + .byte 7,37 ; 35 33 + .byte 8,41 ; 35 38 + .byte BOX,4,6,5,9 + .byte HLIN,27,35,17 + .byte HLIN_ADD_RSAME,22 ; 22 35 18 + .byte 17 ; 17 35 19 + .byte 13 ; 13 35 20 + .byte 8 ; 8 35 21 + .byte HLIN,32,35,16 + .byte VLIN,38,41,4 + .byte SET_COLOR | LIGHT_BLUE + .byte BOX,30,21,32,25 + .byte 22,23,25,27 + .byte 14,24,17,28 + .byte 29,30,31,34 + .byte 22,32,24,35 + .byte 15,33,18,37 + .byte BOX_ADD,28,30,41 ; 38 + .byte BOX,33,38,35,40 + .byte 22,40,24,41 + .byte HLIN,23,25,22 + .byte 34,35,37 + .byte HLIN_ADD,15,16 ; 38 + .byte HLIN,17,19,41 + .byte 23,24,39 + .byte VLIN,29,32,35 + .byte SET_COLOR | BROWN + .byte BOX,20,6,21,15 + .byte 7,6,8,12 + .byte 23,12,32,13 + .byte 6,13,7,17 + .byte HLIN,25,32,11 + .byte 30,31,10 + .byte SET_COLOR | GREY1 + .byte BOX,4,25,5,30 + .byte BOX_ADD_LSAME,6,32 ; 4, 31 + .byte BOX,5,38,6,41 + .byte VLIN,14,24,4 + .byte SET_COLOR | PINK + .byte HLIN,30,32,12 + .byte HLIN_ADD_RSAME,26 ; 26 32 13 + .byte HLIN,23,30,14 + .byte HLIN_ADD_LSAME,26 ; 23, 26, 15 + .byte HLIN,20,21,15 + .byte 6,7,18 + .byte SET_COLOR | GREY2 + .byte PLOT,4,10 + .byte END +; total size = 164 diff --git a/demos/second/part18_3d/auto/frame104.inc b/demos/second/part18_3d/auto/frame104.inc new file mode 100644 index 00000000..887725cd --- /dev/null +++ b/demos/second/part18_3d/auto/frame104.inc @@ -0,0 +1,71 @@ + .byte SET_COLOR | MEDIUM_BLUE + .byte BOX,4,6,27,27 + .byte BOX_ADD,6,8,38 ; 28 + .byte SET_COLOR | DARK_BLUE + .byte BOX,8,29,35,38 + .byte BOX_ADD_RSAME,5,41 + .byte BOX,9,19,35,28 + .byte HLIN,4,14,6 + .byte 28,35,14 + .byte HLIN_ADD_RSAME,27 ; 27 35 15 + .byte 22 ; 22 35 16 + .byte 17 ; 17 35 17 + .byte 12 ; 12 35 18 + .byte HLIN,4,10,7 + .byte SET_COLOR | PINK + .byte BOX,23,18,29,19 + .byte BOX_ADD,12,18,21 ; 20 + .byte BOX,12,28,18,29 + .byte 27,26,32,33 + .byte HLIN,21,23,20 + .byte 12,14,22 + .byte 12,14,30 + .byte VLIN,6,13,28 + .byte SET_COLOR | BROWN + .byte BOX,30,6,35,8 + .byte BOX_ADD_RSAME,31,11 + .byte 30,13 ; 35 12 + .byte BOX,26,24,31,25 + .byte BOX_ADD_LSAME,32,28 ; 26, 26 + .byte BOX,23,35,24,38 + .byte 9,37,10,41 + .byte 22,27,23,29 + .byte HLIN,28,30,14 + .byte 24,29,17 + .byte 13,18,19 + .byte HLIN_ADD,12,15 ; 20 + .byte HLIN,21,22,20 + .byte 27,31,23 + .byte 16,18,27 + .byte HLIN_ADD,12,17 ; 28 + .byte 27,28 ; 29 + .byte VLIN,20,36,10 + .byte 21,26,22 + .byte 30,34,23 + .byte 39,41,24 + .byte 18,19,21 + .byte 30,31,27 + .byte PLOT,23,18 + .byte 12,29 + .byte SET_COLOR | LIGHT_BLUE + .byte BOX,17,8,19,11 + .byte 12,9,14,12 + .byte 7,10,9,13 + .byte 22,7,23,10 + .byte HLIN,22,23,15 + .byte HLIN_ADD,18,19 ; 16 + .byte 13,14 ; 17 + .byte 9,10 ; 18 + .byte SET_COLOR | GREY1 + .byte BOX,5,39,7,41 + .byte 5,33,6,38 + .byte HLIN,6,7,6 + .byte 4,5,27 + .byte VLIN,21,26,4 + .byte 31,32,5 + .byte SET_COLOR | GREY2 + .byte HLIN,28,29,14 + .byte VLIN,6,8,30 + .byte PLOT,4,20 + .byte END +; total size = 223 diff --git a/demos/second/part18_3d/auto/frame105.inc b/demos/second/part18_3d/auto/frame105.inc new file mode 100644 index 00000000..a3588309 --- /dev/null +++ b/demos/second/part18_3d/auto/frame105.inc @@ -0,0 +1,104 @@ + .byte SET_COLOR | MEDIUM_BLUE + .byte BOX,4,6,29,39 + .byte BOX_ADD,6,9,41 ; 40 + .byte SET_COLOR | DARK_BLUE + .byte BOX,6,7,35,9 + .byte 5,12,35,14 + .byte BOX_ADD_LSAME,29,18 ; 5, 15 + .byte BOX,4,19,29,20 + .byte 31,28,35,33 + .byte 10,40,35,41 + .byte 31,10,32,11 + .byte HLIN,10,35,6 + .byte 6,29,10 + .byte HLIN_ADD_RSAME,5 ; 5 29 11 + .byte HLIN,4,27,21 + .byte HLIN_ADD_LSAME,22 ; 4, 22, 22 + .byte 17 + .byte HLIN,19,35,35 + .byte HLIN_ADD_RSAME,18 ; 18 35 36 + .byte 14 ; 14 35 37 + .byte 10 ; 10 35 38 + .byte 11 ; 11 35 39 + .byte HLIN,27,35,34 + .byte VLIN,15,16,32 + .byte SET_COLOR | LIGHT_BLUE + .byte BOX,8,8,9,12 + .byte BOX_ADD_LSAME,14,15 ; 8, 13 + .byte BOX,10,13,12,16 + .byte 24,23,25,27 + .byte 19,24,20,28 + .byte 14,25,16,29 + .byte 9,27,11,30 + .byte 24,30,25,34 + .byte 19,31,21,35 + .byte 14,32,16,36 + .byte 10,33,11,37 + .byte 13,10,14,11 + .byte HLIN,7,8,6 + .byte 8,13,9 + .byte 9,10,26 + .byte VLIN,16,21,14 + .byte 17,18,10 + .byte PLOT,14,12 + .byte 10,38 + .byte SET_COLOR | BROWN + .byte BOX,16,6,21,7 + .byte 33,6,35,16 + .byte 8,8,12,9 + .byte 18,11,22,13 + .byte 11,12,12,16 + .byte BOX_ADD,31,35,18 ; 17 + .byte BOX,16,18,21,20 + .byte 32,19,35,27 + .byte 7,20,12,22 + .byte 30,28,35,32 + .byte 24,37,32,38 + .byte 12,40,20,41 + .byte 24,40,25,41 + .byte HLIN,22,23,16 + .byte 30,33,33 + .byte 30,32,35 + .byte HLIN_ADD_RSAME,28 ; 28 32 36 + .byte HLIN,15,20,39 + .byte 24,29,39 + .byte 19,20,38 + .byte VLIN,9,15,8 + .byte 8,10,21 + .byte 17,19,14 + .byte 10,11,14 + .byte 14,15,22 + .byte PLOT,23,17 + .byte SET_COLOR | PINK + .byte BOX,16,6,20,7 + .byte 27,6,30,7 + .byte BOX_ADD_RSAME,28,9 + .byte BOX,18,12,21,13 + .byte 29,12,30,14 + .byte 16,19,21,20 + .byte BOX_ADD,7,12,22 ; 21 + .byte BOX,28,10,29,11 + .byte HLIN,8,12,9 + .byte 28,32,38 + .byte HLIN_ADD,25,29 ; 39 + .byte HLIN,14,20,41 + .byte 19,20,40 + .byte VLIN,14,15,8 + .byte 18,19,23 + .byte 20,21,14 + .byte PLOT,32,37 + .byte SET_COLOR | GREY1 + .byte BOX,10,13,13,15 + .byte 30,28,31,33 + .byte HLIN,11,12,12 + .byte VLIN,24,27,30 + .byte PLOT,11,11 + .byte 11,16 + .byte SET_COLOR | GREY2 + .byte BOX,4,38,5,39 + .byte VLIN,31,37,4 + .byte 15,18,31 + .byte SET_COLOR | YELLOW + .byte PLOT,12,15 + .byte END +; total size = 347 diff --git a/demos/second/part18_3d/threed.s b/demos/second/part18_3d/threed.s index 5adacc38..142b71d0 100644 --- a/demos/second/part18_3d/threed.s +++ b/demos/second/part18_3d/threed.s @@ -65,8 +65,14 @@ was_page1: done_pageflip: sta DRAW_PAGE ; 3 + lda #12 + sta IRQ_COUNTDOWN - jsr wait_until_keypress +wait_for_irq: + lda IRQ_COUNTDOWN + bne wait_for_irq + +; jsr wait_until_keypress diff --git a/demos/second/zp.inc b/demos/second/zp.inc index b74b05e1..2e1f3cc4 100644 --- a/demos/second/zp.inc +++ b/demos/second/zp.inc @@ -160,7 +160,7 @@ SCENE_COUNT = $EC STATE = $ED OFFSET = $EF - ;FIRST = $F0 +IRQ_COUNTDOWN = $F0 LASTKEY = $F1 PADDLE_STATUS = $F2