Subversion Repositories NedoOS

Rev

Rev 1917 | Blame | Compare with Previous | Last modification | View Log | Download

  1.         align 256
  2. distbuf;=#BA00 ;#300 ;ID,texx,dist
  3.         ds 0x300
  4.  
  5.       IF atm
  6.        MACRO setpgfast pg
  7.         LD A,pg
  8.         setpgafast
  9.        ENDM
  10.        MACRO setpgafast
  11.         ;LD (curpg),A
  12.         ;LD BC,#FFF7
  13.         ;OUT (C),A
  14.         SETPGC000
  15.        ENDM
  16.       ELSE ;~atm
  17.        MACRO setpg pg
  18.         LD A,pg
  19.         setpgA
  20.        ENDM
  21.        MACRO setpgA
  22.         CALL SETPGA
  23.        ENDM
  24.        MACRO setpgfast pg
  25.         LD A,pg
  26.         setpgafast
  27.        ENDM
  28.        MACRO setpgafast
  29.         LD (curpg),A
  30.         LD BC,#7FFD
  31.         OUT (C),A
  32.        ENDM
  33.       ENDIF ;~atm
  34.      
  35.  
  36.  
  37. wascorrlogd
  38.         INCBIN "corlogd_"
  39.         ORG $-256
  40.        DUP 256
  41.         DB {$+(scrtopx*8)}&0xff
  42.        EDUP
  43.        IF lores
  44.         ORG $-256
  45. _=$
  46.        DUP 128
  47.         DB {_}&0xff
  48. _=_+2
  49.        EDUP
  50.         DS 128
  51.        ENDIF
  52. wasda
  53.         INCBIN "da"
  54.         ORG $-256
  55.        DUP 256
  56.         DB 0xff&({$}+128)
  57.        EDUP
  58.         ORG $-256
  59.        DUP 256
  60.         DB 0xff&({$+(scrtopx*8)})
  61.        EDUP
  62.        IF lores
  63.         ORG $-256
  64. _=$
  65.        DUP 128
  66.         DB {_}&0xff
  67. _=_+2
  68.        EDUP
  69.         DS 128
  70.        ENDIF
  71.  
  72. TEXCODEGO
  73.        IF atm == 0
  74.         LD HL,0;-2
  75.         ADD HL,SP
  76.         LD (clscrbufsp),HL
  77.         LD (eorfillsp),HL
  78.        endif
  79.  
  80.        IF atm
  81.         call setpgmap4000
  82.        ENDIF
  83.         LD BC,#FBDF
  84.         IN A,(C)
  85.         LD (mouseoldx),A       
  86.         CALL RECMAP
  87.       if 0
  88.         LD HL,tcos
  89. REtcos0
  90.        DUP 2;4
  91.         SRA (HL)
  92.        EDUP
  93.         INC L
  94.         jr NZ,REtcos0
  95.       endif
  96.         INCLUDE "zxloop.asm"
  97.         INCLUDE "WSCAN10.asm"
  98.         INCLUDE "WREND.asm"
  99.         INCLUDE "WCTRL.asm"
  100.  
  101. ;переменные рендера (обновляются в начале рендера)
  102. curXx
  103. curx    DB #80
  104. curX    DB #0
  105. curYy
  106. cury    DB #80
  107. curY    DB #0
  108. curxy   DW 0
  109. curyx   DW 0
  110. curYX   DW 0
  111. curangle
  112.         DW tsin
  113. demobegin
  114.        IF demoplay
  115.         INCBIN "demorec9"
  116.        ELSE
  117.         DB %00111111 ;all keys released
  118.        ENDIF
  119.  
  120.         ;DISPLAY "PROG END=",$
  121.  
  122.         align 256 ;DS .(-$)
  123. tables
  124. wastables
  125. shift=tables-$
  126. tlogd2sca=$+shift
  127.        IF scale64
  128.        IF scale64 == 3
  129.         INCBIN "logd2sc3"
  130.        ELSE
  131.         INCBIN "logd2sc2"
  132.        ENDIF
  133.        ELSE
  134.         INCBIN "logd2sc_"
  135.        ENDIF
  136. tsqr2=$+shift
  137.         INCBIN "sqr2int"
  138. tlogd=$+shift
  139.         INCBIN "logd"
  140. tcorrlogd=$+shift
  141.        DUP 256
  142.         DB {wascorrlogd+$-tcorrlogd}&0xff
  143.        EDUP
  144. tcos=$+shift
  145.         INCBIN "cos"
  146. tlogcos=$+shift
  147.         INCBIN "pluslcos"
  148. tda=$+shift
  149.        DUP 256
  150.         DB {wasda+$-tda}&0xff
  151.        EDUP
  152. tctg=$+shift
  153.         INCBIN "plusctg"
  154. tsin=$+shift
  155.         INCBIN "sin"
  156.        if 1
  157. ;               z=0:255; sprintf('%d,',fix(atan(2.^(z/32))*128/pi))
  158.  
  159.                 ;;;;;;;; atan(2^(x/32))*128/pi ;;;;;;;;
  160. atan_tab=$+shift       
  161.                 db 020h,020h,020h,021h,021h,022h,022h,023h,023h,023h,024h,024h,025h,025h,026h,026h
  162.                 db 026h,027h,027h,028h,028h,028h,029h,029h,02Ah,02Ah,02Ah,02Bh,02Bh,02Ch,02Ch,02Ch
  163.                 db 02Dh,02Dh,02Dh,02Eh,02Eh,02Eh,02Fh,02Fh,02Fh,030h,030h,030h,031h,031h,031h,031h
  164.                 db 032h,032h,032h,032h,033h,033h,033h,033h,034h,034h,034h,034h,035h,035h,035h,035h
  165.                 db 036h,036h,036h,036h,036h,037h,037h,037h,037h,037h,037h,038h,038h,038h,038h,038h
  166.                 db 038h,039h,039h,039h,039h,039h,039h,039h,039h,03Ah,03Ah,03Ah,03Ah,03Ah,03Ah,03Ah
  167.                 db 03Ah,03Bh,03Bh,03Bh,03Bh,03Bh,03Bh,03Bh,03Bh,03Bh,03Bh,03Bh,03Ch,03Ch,03Ch,03Ch
  168.                 db 03Ch,03Ch,03Ch,03Ch,03Ch,03Ch,03Ch,03Ch,03Ch,03Dh,03Dh,03Dh,03Dh,03Dh,03Dh,03Dh
  169.                 db 03Dh,03Dh,03Dh,03Dh,03Dh,03Dh,03Dh,03Dh,03Dh,03Dh,03Dh,03Dh,03Eh,03Eh,03Eh,03Eh
  170.                 db 03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh
  171.                 db 03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Eh,03Fh,03Fh,03Fh,03Fh
  172.                 db 03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh
  173.                 db 03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh
  174.                 db 03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh
  175.                 db 03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh
  176.                 db 03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh,03Fh
  177.  
  178.  ;              x=0:255;x(1)=1; sprintf('%d,',fix(32*log2(x)))
  179.  
  180.                 ;;;;;;;; log2(x)*32 ;;;;;;;;
  181. log2_tab=$+shift
  182.                 db 000h,000h,020h,032h,040h,04Ah,052h,059h,060h,065h,06Ah,06Eh,072h,076h,079h,07Dh
  183.                 db 080h,082h,085h,087h,08Ah,08Ch,08Eh,090h,092h,094h,096h,098h,099h,09Bh,09Dh,09Eh
  184.                 db 0A0h,0A1h,0A2h,0A4h,0A5h,0A6h,0A7h,0A9h,0AAh,0ABh,0ACh,0ADh,0AEh,0AFh,0B0h,0B1h
  185.                 db 0B2h,0B3h,0B4h,0B5h,0B6h,0B7h,0B8h,0B9h,0B9h,0BAh,0BBh,0BCh,0BDh,0BDh,0BEh,0BFh
  186.                 db 0C0h,0C0h,0C1h,0C2h,0C2h,0C3h,0C4h,0C4h,0C5h,0C6h,0C6h,0C7h,0C7h,0C8h,0C9h,0C9h
  187.                 db 0CAh,0CAh,0CBh,0CCh,0CCh,0CDh,0CDh,0CEh,0CEh,0CFh,0CFh,0D0h,0D0h,0D1h,0D1h,0D2h
  188.                 db 0D2h,0D3h,0D3h,0D4h,0D4h,0D5h,0D5h,0D5h,0D6h,0D6h,0D7h,0D7h,0D8h,0D8h,0D9h,0D9h
  189.                 db 0D9h,0DAh,0DAh,0DBh,0DBh,0DBh,0DCh,0DCh,0DDh,0DDh,0DDh,0DEh,0DEh,0DEh,0DFh,0DFh
  190.                 db 0DFh,0E0h,0E0h,0E1h,0E1h,0E1h,0E2h,0E2h,0E2h,0E3h,0E3h,0E3h,0E4h,0E4h,0E4h,0E5h
  191.                 db 0E5h,0E5h,0E6h,0E6h,0E6h,0E7h,0E7h,0E7h,0E7h,0E8h,0E8h,0E8h,0E9h,0E9h,0E9h,0EAh
  192.                 db 0EAh,0EAh,0EAh,0EBh,0EBh,0EBh,0ECh,0ECh,0ECh,0ECh,0EDh,0EDh,0EDh,0EDh,0EEh,0EEh
  193.                 db 0EEh,0EEh,0EFh,0EFh,0EFh,0EFh,0F0h,0F0h,0F0h,0F1h,0F1h,0F1h,0F1h,0F1h,0F2h,0F2h
  194.                 db 0F2h,0F2h,0F3h,0F3h,0F3h,0F3h,0F4h,0F4h,0F4h,0F4h,0F5h,0F5h,0F5h,0F5h,0F5h,0F6h
  195.                 db 0F6h,0F6h,0F6h,0F7h,0F7h,0F7h,0F7h,0F7h,0F8h,0F8h,0F8h,0F8h,0F9h,0F9h,0F9h,0F9h
  196.                 db 0F9h,0FAh,0FAh,0FAh,0FAh,0FAh,0FBh,0FBh,0FBh,0FBh,0FBh,0FCh,0FCh,0FCh,0FCh,0FCh
  197.                 db 0FDh,0FDh,0FDh,0FDh,0FDh,0FDh,0FEh,0FEh,0FEh,0FEh,0FEh,0FFh,0FFh,0FFh,0FFh,0FFh
  198.        endif
  199. tscaljps=$+shift
  200.         ds 256;INCBIN "scaljps"
  201. tID=$+shift
  202.         MACRO WALL pgnum,num2
  203.         DB pgnum,num2;-pgnum,num2
  204.         ENDM
  205.        DUP 64+16 ;skip and 0..15 ;в примере используются стены 16..35
  206.         WALL 0,#02
  207.        EDUP
  208.         MACRO PGWALL pgnum
  209.         WALL pgnum,#02
  210.         WALL pgnum,#42
  211.         WALL pgnum,#82
  212.         WALL pgnum,#C2
  213.         ENDM
  214.         PGWALL 0
  215.         PGWALL 1
  216.         PGWALL 2
  217.         PGWALL 3
  218.         PGWALL 4
  219.        DUP 64-20-16 ;?..63
  220.         WALL 0,#02
  221.        EDUP
  222. cursprites=$+shift
  223.         DS 256
  224. ltables=$-wastables
  225.  
  226.         include "recmap.asm"
  227.