Subversion Repositories NedoOS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

  1.         ;ORG #C000,pg6&7
  2.         align 256
  3. TDHL
  4. wassin
  5. s=32768
  6. c=777
  7.         DUP 128
  8.         ;display "s=",s,",c=",c
  9.         DB (s>>7)&0xff
  10. a=s
  11. s=(s+c)&0xffff
  12. c=(c-((a-32768)/1610))&0xffff
  13.         EDUP
  14. INPAGE
  15.         LD E,B
  16. sad0    LD L,E
  17.         RES 7,L
  18.         LD D,SIN/256+15
  19.         LD BC,#1010
  20.         XOR A
  21. sad1    ex de,hl
  22.         LD (HL),C
  23.         SLA (HL)
  24.         ex de,hl
  25.         BIT 7,E
  26.         jr Z,sader
  27.         SUB (HL)
  28.         jr NC,$+3
  29.          DEC C
  30.         JR sadq
  31. sader   ADD A,(HL)
  32.         jr NC,$+3
  33.          INC C
  34. sadq    DEC D
  35.         DJNZ sad1
  36.         INC E
  37.         jr NZ,sad0
  38.         ;CALL cs_8026
  39.         ;jr C,$+7
  40.         ; LD A,201
  41.         ; ld (IMnOFF),A
  42.         LD DE,#4020
  43.         LD HL,TDHL
  44.         LD B,E
  45. MKDHL   LD (HL),E
  46.         INC L
  47.         LD (HL),D
  48.         INC L
  49.         CALL DDE
  50.         DJNZ MKDHL
  51.         RET
  52. GETAYER
  53.         jr Z,IMnOFF
  54.        ;LD (ITEMFLG),A
  55.         LD HL,(ARXY)
  56.         ld A,L
  57.         SUB 8
  58.         CP 32
  59.         jr NC,IMnOFF
  60.         LD A,H
  61.         LD HL,CLST3
  62.         ld DE,PLoffC
  63.         CP #D4
  64.         jr NC,IMabc
  65.         LD L,CLST2&0xff ;TODO fix
  66.         ld DE,PLoffB
  67.         CP #AC
  68.         jr NC,IMabc
  69.         LD L,CLST1&0xff ;TODO fix
  70.         ld DE,PLoffA
  71.         CP #88
  72.         jr C,IMnOFF
  73.        LD A,(WBUFTOP+1)
  74.        INC A ;edsmp
  75.        jr Z,IMnOFF
  76. IMabc   LD A,(DE)
  77.         ld (HL),A
  78.        ;INC HL
  79.        ;LD (HL),A
  80.         CPL
  81.         LD (DE),A
  82. IMnOFF
  83.        LD A,(WBUFTOP+1)
  84.        INC A  ;edsmp
  85.         LD A,#11
  86.         ld HL,8
  87.         LD DE,rgbufA
  88.        CALL NZ,GETRG
  89.         LD A,#16
  90.         ld HL,#209
  91.         LD DE,rgbufB
  92.         CALL GETRG
  93.         LD A,#1B
  94.         ld HL,#40A
  95.         LD DE,rgbufC
  96. GETRG
  97.         LD (ZZC),A
  98.         LD BC,-3
  99.         OUT (C),L
  100.         IN A,(C)
  101.         OUT (C),H
  102.         IN L,(C)
  103.         INC H
  104.         OUT (C),H
  105.         CPL
  106.         AND #F
  107.         ADD A,SIN/256
  108.         LD H,A
  109.         IN A,(C)
  110.         BIT 3,A
  111.         CPL
  112.         jr Z,$+3
  113.          XOR A
  114.         AND 7
  115.         LD C,A
  116.         ex de,hl
  117.        IF skipABC
  118.         LD B,1
  119.         CP (HL)
  120.         LD (HL),A
  121.         JR Z,$+3
  122.          INC B
  123.         INC HL
  124.         LD A,E
  125.         CP (HL)
  126.         LD (HL),A
  127.         JR Z,$+3
  128.          INC B
  129.         INC HL
  130.         LD A,D
  131.         CP (HL)
  132.         LD (HL),A
  133.         JR Z,$+3
  134.          INC B
  135.         INC HL
  136.         LD A,(HL)
  137.         INC HL
  138.         CP (HL)
  139.         LD (HL),A
  140.         JR NZ,$+4
  141.          DEC B
  142.          RET Z
  143.        ELSE
  144.         LD A,(HL)
  145.        ENDIF
  146.        PUSH BC
  147.        push DE
  148.         INC HL
  149.         LD E,(HL)
  150.         INC HL
  151.         LD D,(HL)
  152.         LD B,A
  153.         ld C,A
  154.         ex de,hl
  155.         LD (CLSTSP+1),SP
  156.         JP (HL)
  157. CLSTSP  LD SP,0
  158.        POP DE
  159.        pop BC
  160. ZZC=$+1
  161.         LD B,0
  162.         EXX
  163.         LD B,4
  164. zz0     EXX
  165. b=7
  166.        DUP 4
  167.         ex de,hl
  168.         LD A,L
  169.         ADD A,C ;channel volume?
  170.         LD L,A
  171.         ld E,(HL)
  172.         ex de,hl
  173.         ADD A,C
  174.         LD E,A
  175.         ld H,TDHL/256
  176.         ld A,(HL)
  177.         OR B
  178.         INC L
  179.         LD H,(HL)
  180.         ld L,A
  181.         SET b,(HL)
  182.         LD A,(DE)
  183.         ld L,A
  184.         ld H,TDHL/256
  185.         ld A,(HL)
  186.         OR B
  187.         INC L
  188.         LD H,(HL)
  189.         ld L,A
  190.         SET b-1,(HL)
  191. b=b-2
  192.        EDUP
  193.         INC B
  194.         EXX
  195.         DJNZ zz0
  196.         RET
  197.  
  198. CLSTAN3
  199. s=#403F
  200.        DUP 3
  201.        DUP 4
  202.        DUP 8
  203.         LD SP,s
  204.         PUSH BC
  205.         push BC
  206. s=s+256
  207.        EDUP
  208. s=s-#7E0
  209.        EDUP
  210.         JP CLSTSP
  211. s=s-#85
  212.        EDUP
  213. CLSTlen=($-CLSTAN3)/3
  214. CLSTAN2=CLSTAN3+CLSTlen
  215. CLSTAN1=CLSTAN2+CLSTlen
  216.  
  217. rgbufA
  218.        IF skipABC
  219.         DS 3,#AA
  220.        ENDIF
  221. CLST1   NOP
  222.        IF skipABC
  223.         NOP
  224.        ENDIF
  225.         DW CLSTAN1
  226. rgbufB
  227.        IF skipABC
  228.         DS 3,#AA
  229.        ENDIF
  230. CLST2   NOP
  231.        IF skipABC
  232.         NOP
  233.        ENDIF
  234.         DW CLSTAN2
  235. rgbufC
  236.        IF skipABC
  237.         DS 3,#AA
  238.        ENDIF
  239. CLST3   NOP
  240.        IF skipABC
  241.         NOP
  242.        ENDIF
  243.         DW CLSTAN3
  244.  
  245.        IF 0==frqrosh
  246. tab2frq INCBIN "kozasm.bin"
  247.         DW #CDA
  248. tab0frq INCBIN "kozpt.bin"
  249. tab1frq INCBIN "kozst.bin"
  250.        ELSE
  251. NT_DATA
  252.         DB T_NEW_0-T_
  253.        ADC A,D
  254.         DB TCNEW_0-T_
  255.  
  256.         DB T_NEW_1-T_
  257.         OR A
  258.         DB TCNEW_1-T_
  259.  
  260.         DB T_NEW_2-T_
  261.        ADC A,D
  262.         DB TCNEW_2-T_
  263.  
  264.         DB T_NEW_3-T_
  265.        ADC A,D
  266.         DB TCNEW_3-T_
  267. T_
  268. TCNEW_1
  269. TCOLD_1 DB #5C+1,0
  270. TCNEW_3 DB #56+1
  271. TCOLD_3 DB #1E+1,#22+1,#24+1,#28+1,#2C+1,#2E+1,#32+1,#BE+1,0
  272. TCNEW_0 DB #1C+1,#20+1,#22+1,#26+1,#2A+1,#2C+1,#30+1,#54+1
  273.         DB #BC+1,#BE+1,0
  274. TCNEW_2 DB #1A+1,#20+1,#24+1,#28+1,#2A+1,#3A+1,#4C+1,#5E+1
  275.         DB #BA+1,#BC+1,#BE+1,0
  276.  
  277. ;first 12 values of tone tables
  278.  
  279. T_NEW_1
  280. T_OLD_1 DW #0EF8*2,#0E10*2,#0D60*2,#0C80*2,#0BD8*2,#0B28*2
  281.         DW #0A88*2,#09F0*2,#0960*2,#08E0*2,#0858*2,#07E0*2
  282. T_NEW_3
  283. T_OLD_3 DW #0CDA*2,#0C22*2,#0B73*2,#0ACF*2,#0A33*2,#09A1*2
  284.         DW #0917*2,#0894*2,#0819*2,#07A4*2,#0737*2,#06CF*2
  285. T_OLD_0=T_OLD_3+2
  286. T_NEW_0=T_OLD_3+2
  287.         DW #066D*2
  288. T_NEW_2 DW #0D10*2,#0C55*2,#0BA4*2,#0AFC*2,#0A5F*2,#09CA*2
  289.         DW #093D*2,#08B8*2,#083B*2,#07C5*2,#0755*2,#06EC*2
  290.        ENDIF
  291. MEMOBUF;(320=#140)
  292. SIN=(($+#23F)/256)<<8
  293.         DISPLAY "SKIP BEFORE SIN=",SIN-MEMOBUF-#140
  294. ;        ds $-SIN
  295. ;        ds 0x1000
  296.         DISPLAY "SINEND=",SIN+#1000
  297. PRFONSCR
  298.        IF mkvol
  299.         LD HL,#11
  300.         LD D,H
  301.         ld E,H
  302.         LD IX,TVOL+16
  303.         LD B,#10
  304. INITV2  PUSH HL
  305.         ADD HL,DE
  306.         ex de,hl
  307.         SBC HL,HL
  308. INITV1  LD A,L
  309.         RLA
  310.         LD A,H
  311.         ADC A,0
  312.         LD (IX),A
  313.         INC IX
  314.         ADD HL,DE
  315.         INC B
  316.         LD A,B
  317.         AND 15
  318.         jr NZ,INITV1
  319.         POP HL
  320.         LD A,E
  321.         CP #77
  322.         JR NZ,$+3
  323.          INC E
  324.         INC B
  325.         DJNZ INITV2
  326.        ENDIF
  327.         LD HL,#48E1
  328.         ld BC,#4810
  329.         CALL VlN
  330.         LD L,#E5
  331.         CALL VlN
  332.         LD L,#E7
  333.         CALL VlN
  334.         LD L,#EF
  335.         CALL VlN
  336.         LD L,#F7
  337.         CALL VlN
  338.         LD L,#FF
  339.         CALL VlN
  340.         LD HL,#4715
  341.         ld BC,#2281
  342.         CALL VlN
  343.         LD L,#1A
  344.         CALL VlN
  345.         LD L,#1F
  346.         DEC C
  347.         CALL VlN
  348.         LD L,#10
  349.         ld C,1
  350.         CALL VlN
  351.         INC L
  352. PRFONSCRL
  353.        DUP 3
  354.         LD BC,#4FF
  355.         LD (HL),C
  356.         INC L
  357.         DJNZ $-2
  358.         INC L
  359.        EDUP
  360.         BIT 0,H
  361.         LD HL,#40B1
  362.         jr NZ,PRFONSCRL
  363.         LD HL,#4FC0
  364.         ld B,31
  365.         LD (HL),C
  366.         INC L
  367.         DJNZ $-2
  368.         LD (HL),#F0
  369.         LD DE,#1A06
  370.         CALL pRSprRR
  371.         call pRSprRR
  372.         LD E,10
  373.         CALL pRSprRR
  374.         LD DE,#700
  375.         ld C,8;10
  376. PRFONSCR0
  377.         CALL pRSprPM
  378.         DEC C
  379.         jr NZ,PRFONSCR0
  380.         LD DE,#1806
  381.         CALL pRSprPM2
  382.         INC E
  383.         CALL pRSprPM2
  384.         call pRSprPM2
  385.         LD DE,#1D0D
  386.         CALL pRSprPM
  387.         LD E,6
  388.         CALL pRSprPM2
  389.         INC E
  390.         CALL pRSprPM
  391. pRSprPM2
  392.         CALL pRSprPM
  393. pRSprPM
  394.         LD HL,SprPM
  395.         ld B,8
  396. pRSprU
  397.         PUSH DE
  398.         push HL
  399.         CALL DE2SCR
  400.         POP DE
  401. pRSpr0  LD A,(DE)
  402.         ld (HL),A
  403.         INC HL
  404.         inc DE
  405.         LD A,(DE)
  406.         ld (HL),A
  407.         INC DE
  408.         DEC HL
  409.         INC H
  410.         DJNZ pRSpr0
  411.         POP DE
  412.         INC E
  413.         RET
  414. pRSprRR
  415.         LD HL,SprRRR
  416.         ld B,6
  417.         JR pRSprU
  418.  
  419. VlN
  420.        PUSH BC
  421.        push HL
  422. VlN0    LD (HL),C
  423.         CALL DHL
  424.         DJNZ VlN0
  425.        POP HL
  426.        pop BC
  427.         RET
  428. SprPM
  429.         db 0x01,0x01,0x10,0x00,0x11,0x01,0x7C,0x7C,0x11,0x01,0x10,0x00,0x01,0x01,0xAA,0xAA
  430. SprRRR
  431.         db 0x00,0x00,0x22,0x20,0x33,0x30,0x3B,0xB8,0x33,0x30,0x22,0x20
  432. Tfonscr
  433.         DB "Tempo       04      Disk Options",6,0,1
  434.         DB "Position    00         Clears",6,0,2
  435.         DB "Pattern     00        Compiler",6,0,3
  436.         DB "Length      01       Decompiler",6,0,4
  437.         DB "Loop to     00      Play  Melody",6,0,5
  438.         DB "Volume      0F      Play Pattern",6,0,6
  439.  DB "Edit patt.  00        About Me         Sample 01        01"
  440.  DB 6,0,7
  441.  DB "Patt length 64      Edit  Melody       Ornam. 01        01"
  442.  DB 6,2,8
  443.  DB "Octave    04         Set_up"
  444.  DB 6,2,9
  445.  DB "Edit step 00",6,38,9,"Pattern 00    Home00",6,0,10
  446.  DB "Edit data OFF ----",6,38,10,"Channel 01        01",6,0,11
  447.  DB "Auto env. OFF  1:1",6,38,11,"Begin   00        00"
  448.  DB 6,23,11,"Chip 01"
  449.  DB 6,0,12
  450.  DB "Music:",6,38,12,"End     63      Exchange"
  451.  DB "   by:",6,39,13,"Volume  Tone   +00 ",6,0,14
  452.  DB "      ---- ---- ----            ----            ----",#A0
  453. FONATRS
  454.         INCBIN "fonatrs.bin"
  455. ;end
  456.