?login_element?

Subversion Repositories NedoOS

Rev

Rev 673 | 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,0x48a1;#48E1
  328.         ld BC,0x5810;#4810
  329.         CALL VlN
  330.         LD L,0xa5;#E5
  331.         CALL VlN
  332.         LD L,0xa7;#E7
  333.         CALL VlN
  334.         LD L,0xaf;#EF
  335.         CALL VlN
  336.         LD L,0xb7;#F7
  337.         CALL VlN
  338.         LD L,0xbf;#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,0x4f80;#4FC0
  364.         ld B,31
  365.          LD (HL),C
  366.          INC L
  367.         DJNZ $-2
  368.         LD (HL),#F0
  369.         LD DE,0x1a06;0x1806;#1A06
  370.         CALL pRSprRR
  371.         call pRSprRR
  372.         LD de,0x1a09;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,0x1806;0x1606;#1806
  381.         CALL pRSprPM2
  382.         ;INC E
  383.          ;inc d
  384.          ;inc d
  385.         CALL pRSprPM2
  386.         call pRSprPM2
  387.         LD DE,0x1009;#1D0D
  388.         CALL pRSprPM
  389.         LD de,0x1d06;0x1b06;E,6
  390.         CALL pRSprPM2
  391.         ;INC E
  392.          ;inc d
  393.          ;inc d
  394.         CALL pRSprPM
  395. pRSprPM2
  396.         CALL pRSprPM
  397. pRSprPM
  398.         LD HL,SprPM
  399.         ld B,8
  400. pRSprU
  401.         PUSH DE
  402.         push HL
  403.         CALL DE2SCR
  404.         POP DE
  405. pRSpr0  LD A,(DE)
  406.         ld (HL),A
  407.         INC HL
  408.         inc DE
  409.         LD A,(DE)
  410.         ld (HL),A
  411.         INC DE
  412.         DEC HL
  413.         INC H
  414.         DJNZ pRSpr0
  415.         POP DE
  416.         INC E
  417.         RET
  418. pRSprRR
  419.         LD HL,SprRRR
  420.         ld B,6
  421.         JR pRSprU
  422.  
  423. VlN
  424.        PUSH BC
  425.        push HL
  426. VlN0    LD (HL),C
  427.         CALL DHL
  428.         DJNZ VlN0
  429.        POP HL
  430.        pop BC
  431.         RET
  432. SprPM
  433.         db 0x01,0x01,0x10,0x00,0x11,0x01,0x7C,0x7C,0x11,0x01,0x10,0x00,0x01,0x01,0xAA,0xAA
  434. SprRRR
  435.         db 0x00,0x00,0x22,0x20,0x33,0x30,0x3B,0xB8,0x33,0x30,0x22,0x20
  436. Tfonscr
  437.  DB        "Tempo       04      Disk Options       Octave 04   Step 00"
  438.  DB 6,0, 1,"Position    00         Clears"
  439.  DB 6,0, 2,"Pattern     00        Compiler"
  440.  DB 6,0, 3,"Length      01         Set_up"
  441.  DB 6,0, 4,"Loop to     00      Play  Melody"
  442.  DB 6,0, 5,"Volume      0F      Play Pattern"
  443.  DB 6,0, 6,"Edit patt.  00        About Me         Sample 01        01"
  444.  DB 6,0, 7,"Patt length 64      Edit  Melody       Ornam. 01        01"
  445.  DB 6,0, 8,"Edit data OFF ----     Chip 01        Pattern 00        00"
  446.  DB 6,0, 9,"Auto env. OFF  1:1  Vol Tone +00      Channel 01        01"
  447.  DB 6,0,10,"Music:",6,38,10,"Begin   00    Home00"
  448.  DB 6,0,11,"   by:",6,38,11,"End     63      Exchange"
  449.  DB 6,0,12,"      ---- ---- ----            ----            ----"
  450.  db #A0
  451. FONATRS
  452.         ;INCBIN "fonatrs.bin"
  453.         ds 16,0x45 ;0
  454.        ds 16,0x07
  455.         ds 16,0x44 ;1
  456.        db 0x07,0x47,0x47,0x47,0x47,0x07,0x47,0x47,0x47,0x47,0x07,0x47,0x47,0x47,0x47,0x07
  457.         ds 16,0x45 ;2
  458.        db 0x07,0x47,0x47,0x47,0x47,0x07,0x47,0x47,0x47,0x47,0x07,0x47,0x47,0x47,0x47,0x07
  459.         ds 16,0x44 ;3
  460.        db 0x07,0x47,0x47,0x47,0x47,0x07,0x47,0x47,0x47,0x47,0x07,0x47,0x47,0x47,0x47,0x07
  461.         ds 9,0x45  ;4
  462.        ds 7,0x47
  463.        db 0x07,0x47,0x47,0x47,0x47,0x07,0x47,0x47,0x47,0x47,0x07,0x47,0x47,0x47,0x47,0x07
  464.         ds 16,0x44 ;5
  465.        ds 16,0x07
  466.         ds 31,0x45 ;6
  467.        db 0x07
  468.         ds 31,0x44 ;7
  469.        db 0x07
  470.         ds 9,0x45  ;8
  471.        ds 10,0x07
  472.        ds 12,0x45
  473.        db 0x07
  474.         ds 31,0x44 ;9
  475.        db 0x07
  476.         ds 3,0x45  ;10
  477.        ds 16,0x47
  478.        ds 7,0x45
  479.        ds 2,0x07
  480.        ds 3,0x45
  481.        db 0x07
  482.         ds 3,0x44  ;11
  483.        ds 16,0x47
  484.        ds 12,0x44
  485.        db 0x07
  486.         ds 32,0x07 ;12
  487.        
  488.         ds 32*6,0x07
  489.         db 0x4f,0x4d,0x4f,0x4f,0x4f,0x4f,0x4e,0x4f,0x4f,0x4f,0x4f,0x4f,0x4f,0x4e,0x4e,0x4d
  490.         db 0x4f,0x4f,0x4f,0x4f,0x4f,0x4e,0x4e,0x4d,0x4f,0x4f,0x4f,0x4f,0x4f,0x4e,0x4e,0x4d
  491.         ds 32*4,0x07
  492. ;end
  493.