home *** CD-ROM | disk | FTP | other *** search
/ ANG-Pokey Magazine 3 / ANG_Pokey_Magazine_03_1993_01_ANG_Software_nl_Side_B.atr / arcdocs.arc / EXPO.SRC < prev    next >
Text File  |  1988-09-01  |  6KB  |  606 lines

  1. * - ATARI EXPO DEMO 1991 -
  2. *  DONE BY FRANKENSTEIN!
  3.  
  4.     ORG $B600
  5.  
  6. MUSIX    EQU $B003
  7. MUNEW    EQU $B000
  8. BEGGB    EQU $4000
  9. ENDGB    EQU $4800
  10. BEGNL    EQU $4800
  11. ENDNL    EQU $5000-20
  12. XOSS    EQU $8C00
  13.  
  14. SAMPLE    EQU $8900
  15.  
  16. PMB    EQU $2400
  17. PM4    EQU PMB+$180
  18.  
  19. SCROL    EQU $4000
  20. MAINDL    EQU $2000
  21. RESTDL    EQU 192+3    ;64*3
  22. NMIVKT    EQU $FFFA
  23. WAVE    EQU $0600
  24. PICTURE    EQU $9000+16
  25. PICEND    EQU PICTURE+8040
  26. DLZP    EQU $F0        (AND $F1)
  27. PICZP    EQU $F2        (AND $F3)
  28. X    EQU $F4        (AND $F5)
  29. Y    EQU $F6        (AND $F7)
  30. BITS    EQU $F8
  31. WAVTEL    EQU $F9
  32. BEGIN    EQU $FA        (AND $FB)
  33. DUMTEL    EQU $FC
  34. OLDY    EQU $FD
  35. NEWY    EQU $FE
  36.  
  37. PICOL0    EQU $24
  38. PICOL1    EQU $56
  39. PICOL2    EQU $78
  40.  
  41. WAVLEN    EQU 90
  42. BEGHI    EQU $B4
  43. ENDHI    EQU $BA
  44.  
  45. PROGRAM    JSR RIEZET
  46.  
  47. * FIRST MAKE A FEASIBLE DL!
  48.  
  49.     JSR MUNEW
  50.  
  51.     LDA #0
  52.     STA 559
  53.     LDA #1
  54.     STA $220
  55. IBM    LDA $220
  56.     BNE IBM
  57.  
  58. * INIT. SCROLLER (GB)
  59.  
  60.     LDA #BEGGB:L
  61.     STA SCRLO
  62.     STA SCRLO2
  63.     LDA #BEGGB:H
  64.     STA SCRLO+1
  65.     STA SCRLO2+1
  66.  
  67.     LDX #0
  68.     LDA #255
  69. FILMSL    STA PM4,X
  70.     INX
  71.     BPL FILMSL
  72.  
  73.     LDA #3
  74.     STA 53277
  75.  
  76.     LDA #PMB:H
  77.     STA 54279
  78.  
  79.     LDA #$FF
  80.     STA $D00C
  81.  
  82. * MAKE MAIN DL (128 SCAN LINES)
  83.  
  84.     JSR INITDL
  85.  
  86.     LDA #PICTURE:L
  87.     STA PICZP
  88.     LDA #PICTURE:H
  89.     STA PICZP+1
  90.  
  91.     LDX #0        ;1ST LINE
  92.  
  93. NOEND    LDY #0
  94.     LDA #$4E
  95.     STA (DLZP),Y    ;LMS
  96.     INY
  97.     LDA PICZP    ;LO
  98.     STA (DLZP),Y
  99.     INY
  100.     LDA PICZP+1    ;HI
  101.     STA (DLZP),Y
  102.  
  103. * ADD 3 BYTES, NEXT DL INSTRUCTION
  104.  
  105.     LDA DLZP
  106.     CLC
  107.     ADC #3
  108.     STA DLZP
  109.     LDA DLZP+1
  110.     ADC #0
  111.     STA DLZP+1
  112.  
  113. * ADD 40 BYTES, NEXT PICTURE LINE
  114.  
  115.     LDA PICZP
  116.     CLC
  117.     ADC #40
  118.     STA PICZP
  119.     LDA PICZP+1
  120.     ADC #0
  121.     STA PICZP+1
  122.  
  123.     INX
  124.     CPX #192
  125.     BNE NOEND
  126.  
  127. * TO END OF DL
  128.  
  129.     LDA #$01
  130.     STA MAINDL+576
  131.     LDA #ENDL:L
  132.     STA MAINDL+577
  133.     LDA #ENDL:H
  134.     STA MAINDL+578
  135.  
  136. * SOME OTHER THINGS....
  137.  
  138.     LDA #0
  139.     STA WAVTEL
  140.     STA DUMTEL
  141.  
  142.     STA OLDJMP
  143.     STA NEWJMP
  144.     JSR GETNEW
  145.  
  146.     STA $D40E
  147.     STA $D20E
  148.  
  149.     LDA #$FE
  150.     STA $D301
  151.  
  152.     LDA #NMI:L
  153.     STA NMIVKT
  154.     LDA #NMI:H
  155.     STA NMIVKT+1
  156.  
  157.     LDA #DLI
  158.     STA $200
  159.     LDA #DLI/256
  160.     STA $201
  161.  
  162.     LDA #46
  163.     STA 559
  164.  
  165.     LDA #$C0
  166.     STA $D40E
  167.  
  168. BOVEN    LDA #PICOL0
  169.     STA $D016
  170.     LDA #PICOL1
  171.     STA $D017
  172.     LDA #PICOL2
  173.     STA $D018
  174.     JMP LOOP
  175.  
  176. * MAIN LOOP
  177.  
  178. LOOP    LDA $D40B
  179.     BEQ BOVEN
  180.  
  181.     CMP #44
  182.     BCC LOOP
  183.     CMP #44+32
  184.     BCS GROTER
  185.  
  186.     LDA #4
  187.     STA $D40A
  188.     STA $D016
  189.     LDA #6
  190.     STA $D017
  191.     LDA #10
  192.     STA $D018
  193.  
  194.     JMP LOOP
  195.  
  196. GROTER    LDA #$74
  197.     STA $D40A
  198.     STA $D016
  199.     LDA #$76
  200.     STA $D017
  201.     LDA #$78
  202.     STA $D018
  203.  
  204.     LDA $D01F
  205.     CMP #5
  206.     BNE NSEL
  207.  
  208.     LDA #BEGNL:L
  209.     STA SCRLO
  210.     STA SCRLO2
  211.     LDA #BEGNL:H
  212.     STA SCRLO+1
  213.     STA SCRLO2+1
  214.     JMP LOOP
  215.  
  216. NSEL    CMP #3
  217.     BNE NOPT
  218.  
  219.     LDA #BEGGB:L
  220.     STA SCRLO
  221.     STA SCRLO2
  222.     LDA #BEGGB:H
  223.     STA SCRLO+1
  224.     STA SCRLO2+1
  225.     JMP LOOP
  226.  
  227. NOPT    CMP #6
  228.     BNE LOOP
  229.  
  230.     LDA SCRLO
  231.     BPL LOOP
  232.     LDA SCRLO+1
  233.     CMP #BEGNL/256+7
  234.     BEQ TOEGANG
  235.     LDA SCRLO+1
  236.     CMP #BEGGB/256+7
  237.     BEQ TOEGANG
  238.     JMP LOOP
  239.  
  240. TOEGANG    LDA #0
  241.     STA $D40E
  242.     STA $D20E
  243.     STA $D400
  244.     LDX #8
  245. STILTE    STA $D200,X
  246.     STA $D000,X
  247.     DEX
  248.     BPL STILTE
  249.  
  250.     JMP SAMPLE
  251.  
  252. NMI    PHA
  253.     TXA
  254.     PHA
  255.     TYA
  256.     PHA
  257.  
  258.     BIT $D40F
  259.     BPL VBLANK
  260.     JMP ($200)
  261.  
  262. VBLANK    STA $D40F
  263.  
  264.     LDA WAVTEL
  265.     BNE ISWAVE
  266.     INC DUMTEL
  267.     LDA DUMTEL
  268. *    CMP #32
  269.     BNE NMIEND
  270.  
  271. ISWAVE    LDA NEWJMP
  272.     STA OLDJMP
  273.  
  274.     LDX WAVTEL
  275.     LDA WAVE,X
  276.     STA NEWJMP
  277. *    INX
  278.     INX
  279.     CPX #WAVLEN
  280.     BNE BOEHOE
  281.     LDX #0
  282.     DEC DUMTEL
  283. BOEHOE    STX WAVTEL
  284.  
  285.     JSR PUGEPU
  286.  
  287. NMIEND    LDA 559
  288.     STA $D400
  289.     LDA #DL:L
  290.     STA $D402
  291.     LDA #DL:H
  292.     STA $D403
  293.     LDA #DLI:L
  294.     STA $200
  295.     LDA #DLI:H
  296.     STA $201
  297.     LDA #PICOL0
  298.     STA $D016
  299.     LDA #PICOL1
  300.     STA $D017
  301.     LDA #PICOL2
  302.     STA $D018
  303.     LDA #0
  304.     STA $D01A
  305.     LDA #2
  306.     STA $D401
  307.     LDA #XOSS:H
  308.     STA $D409
  309.     LDA #1+16
  310.     STA $D01B
  311.     JSR SCRLR
  312.     LDA SMT
  313.     STA $D404
  314.     LDA SCRLO
  315.     STA SCRLO2
  316.     LDA SCRLO+1
  317.     STA SCRLO2+1
  318.  
  319.     JSR MUSIX
  320.  
  321.     LDA #8
  322.     STA $D01F
  323.  
  324. EXITDLI    PLA
  325.     TAY
  326.     PLA
  327.     TAX
  328.     PLA
  329.     RTI
  330.  
  331. DLI    LDX #0
  332.     LDA #$28
  333.     STA $D004
  334.     LDA #$30
  335.     STA $D005
  336.     LDA #$C8
  337.     STA $D006
  338.     LDA #$D0
  339.     STA $D007
  340. ALCOL    LDA TUBCOL2,X
  341.     STA $D40A
  342.     STA $D01A
  343.     LDA TUBCOL,X
  344.     STA $D019
  345.     EOR #$90
  346.     STA $D016
  347.     INX
  348.     CPX #32
  349.     BNE ALCOL
  350.  
  351.     LDA #6
  352.     STA $D401
  353.  
  354. ALC2    LDA TUBCOL2,X
  355.     STA $D40A
  356.     STA $D01A
  357.     LDA TUBCOL,X
  358.     STA $D019
  359.     STA $D016
  360.     INX
  361.     CPX #63
  362.     BNE ALC2
  363. *    LDA #PICOL0
  364. *    STA $D016
  365. *    LDA #PICOL2
  366. *    STA $D018
  367.     LDA #0
  368.     STA $D004
  369.     STA $D005
  370.     STA $D006
  371.     STA $D007
  372.  
  373.     LDA #DLI2:L
  374.     STA $200
  375.     LDA #DLI2:H
  376.     STA $201
  377.  
  378.     JMP EXITDLI
  379.  
  380. DLI2    LDA #2
  381.     STA $D401
  382.     LDX #0
  383.     TXA
  384. ZOEWART    STA $D40A
  385.     STA $D018
  386.     INX
  387.     CPX #8
  388.     BNE ZOEWART
  389.  
  390.     JMP EXITDLI
  391.  
  392. * PUT OLD DMA INTRUCTION
  393.  
  394. PUGEPU    LDA OLDJMP
  395.     JSR MULTI
  396.     LDA X
  397.     CLC
  398.     ADC #MAINDL:L
  399.     STA X
  400.     LDA X+1
  401.     ADC #MAINDL:H
  402.     STA X+1
  403.  
  404.     LDY #0
  405.     LDA OLDMA
  406.     STA (X),Y
  407.     INY
  408.     LDA OLDMA+1
  409.     STA (X),Y
  410.     INY
  411.     LDA OLDMA+2
  412.     STA (X),Y
  413.  
  414. * GET NEW DMA INTRUCTION
  415.  
  416. GETNEW    LDA NEWJMP
  417.     JSR MULTI
  418.     LDA X
  419.     CLC
  420.     ADC #MAINDL:L
  421.     STA X
  422.     LDA X+1
  423.     ADC #MAINDL:H
  424.     STA X+1
  425.  
  426.     LDY #0
  427.     LDA (X),Y
  428.     STA OLDMA
  429.     INY
  430.     LDA (X),Y
  431.     STA OLDMA+1
  432.     INY
  433.     LDA (X),Y
  434.     STA OLDMA+2
  435.  
  436. * PUT JMP INSTRUCTION
  437.  
  438.     LDY #0
  439.     LDA #1        ;DL JUMP
  440.     STA (X),Y
  441.     INY
  442.     LDA #TUBEDL:L    ;LO
  443.     STA (X),Y
  444.     INY
  445.     LDA #TUBEDL:H    ;HI
  446.     STA (X),Y
  447.  
  448.     LDA X
  449.     CLC
  450.     ADC #RESTDL:L
  451.     STA RESTJMP
  452.     LDA X+1
  453.     ADC #RESTDL:H
  454.     STA RESTJMP+1
  455.  
  456.     RTS
  457.  
  458. * MULTIPLY X WITH 3 (X=X*3)
  459.  
  460. MULTI    STA X
  461.     LDA #3
  462.     STA Y
  463.     LDA #0
  464.     STA Y+1
  465.     STA X+1
  466.  
  467.     LDA #16
  468.     STA BITS
  469.     LDX #0
  470.     LDY #0
  471. LABEL1    DEC BITS
  472.     BPL LABEL2
  473.     STX X
  474.     STY X+1
  475.     RTS
  476. LABEL2    LSR Y+1
  477.     ROR Y
  478.     BCC LABEL3
  479.     CLC
  480.     TXA
  481.     ADC X
  482.     TAX
  483.     TYA
  484.     ADC X+1
  485.     TAY
  486. LABEL3    ASL X
  487.     ROL X+1
  488.     JMP LABEL1
  489.  
  490. INITDL    LDA #MAINDL:L
  491.     STA DLZP
  492.     LDA #MAINDL:H
  493.     STA DLZP+1
  494.     RTS
  495.  
  496. * ENGELS/NEDERLANDS SCROLLER
  497.  
  498. SCRLR    DEC SMT
  499.     LDA SMT
  500.     BPL NOTHIN
  501.  
  502.     LDA #7
  503.     STA SMT
  504.     INC SCRLO
  505.     BNE NOSHI
  506.     INC SCRLO+1
  507.  
  508. NOSHI    LDA SCRLO
  509.     CMP #ENDNL:L
  510.     BNE MOOINI
  511.     LDA SCRLO+1
  512.     CMP #ENDNL:H
  513.     BNE MOOINI
  514.  
  515. * NEDERLANDSE TEXT OPNIEUW
  516.  
  517.     LDA #BEGNL:L
  518.     STA SCRLO
  519.     LDA #BEGNL:H
  520.     STA SCRLO+1
  521. NOTHIN    RTS
  522.  
  523. MOOINI    LDA SCRLO
  524.     CMP #ENDGB:L
  525.     BNE NOTHIN
  526.     LDA SCRLO+1
  527.     CMP #ENDGB:H
  528.     BNE NOTHIN
  529.  
  530. * ENGELSE TEXT OPNIEUW
  531.  
  532.     LDA #BEGGB:L
  533.     STA SCRLO
  534.     LDA #BEGGB:H
  535.     STA SCRLO+1
  536.  
  537.     RTS
  538.  
  539. * RIEZET VEC.
  540.  
  541. RIEZET    LDA #0
  542.     STA 580
  543.     LDA #2
  544.     STA 9
  545.     LDA #PROGRAM:L
  546.     STA 2
  547.     LDA #PROGRAM:H
  548.     STA 3
  549.     RTS
  550.  
  551. * START DL
  552.  
  553. DL    DFB 112,112,16
  554.     DFB 1
  555.     DFW MAINDL
  556.  
  557. * 8 LINES SCROL TUBE DL
  558.  
  559. TUBEDL    DFB 128,112,96    ;1.5
  560.  
  561.     DFB $47+16    ;2
  562. SCRLO    DFW SCROL
  563.     DFB 64        ;1
  564.     DFB $46+16    ;2
  565. SCRLO2    DFW SCROL
  566.  
  567.     DFB 112,96,32    ;1.5
  568.  
  569.     DFB 1
  570. RESTJMP    DFW RESTDL
  571.  
  572. ENDL    DFB 0,0,128,0,$42
  573.     DFW ENGNED
  574.     DFB $41
  575.     DFW DL
  576.  
  577. ENGNED    ASC %   OPTION=ENGLISH   %
  578.     ASC %SELECT=NEDERLANDS   %
  579.  
  580. OLDMA    DFB 0,0,0
  581. OLDJMP    DFB 0
  582. NEWJMP    DFB 0
  583. SMT    DFB 0
  584.  
  585. TUBCOL    DFB 4,6,4,6,6,6,8,6,8,8,8,8
  586.     DFB 8,10,8
  587.     DFB 10,10,10,10,10
  588.     DFB 12,10,12
  589.     DFB 12,12,14,12,14,14,14,14
  590.     DFB 14,14,14,14,12,14,12,12
  591.     DFB 12,10,12,10,10,10
  592.     DFB 10,10,8,10,8
  593.     DFB 8,8,8,8,6,8,6,6,6,4,6,4
  594.     DFB 0
  595.  
  596. TUBCOL2    DFB 4,6,4,6,6,6,8,6,8,8,8,8
  597.     DFB 6,4,2
  598.     DFB 0,0,0,0,0
  599.     DFB 0,0,0
  600.     DFB 0,0,0,0,0,0,0,0
  601.     DFB 0,0,0,0,2,4,2,4
  602.     DFB 4,4,6,4,6,6
  603.     DFB 6,6,8,10,8
  604.  
  605.     DFB 8,8,8,8,6,8,6,6,6,4,6,4
  606.     DFB 0¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯