?login_element?

Subversion Repositories NedoOS

Rev

Rev 941 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. //#include <evo.h>
  2. #include "../_sdk/evo.h"
  3. #include "functions.h"
  4. //#include "startup.h"  //¤ЄюЄ Їрщы ухэхЁшЁєхЄё  ртЄюьрЄшўхёъш яЁш ъюьяшы Ўшш startup.asm
  5.  
  6. void vsync(void) __naked
  7. {
  8. __asm
  9.         halt
  10.         ret
  11. __endasm;
  12. }
  13.  
  14.  
  15.  
  16. u8 joystick(void) __naked
  17. {
  18. __asm
  19.         jp _JOYSTICK
  20. __endasm;
  21. }
  22.  
  23.  
  24. void draw_tile(u8 x,u8 y,u16 tile) __naked
  25. {
  26. __asm
  27.         ld hl,#2
  28.         add hl,sp
  29.         ld c,(hl)
  30.         inc hl
  31.         ld b,(hl)
  32.         inc hl
  33.         ld e,(hl)
  34.         inc hl
  35.         ld d,(hl)
  36.         jp _DRAW_TILE
  37. __endasm;
  38. }
  39.  
  40. void draw_image(u8 x,u8 y,u8 id) __naked
  41. {
  42. __asm
  43.         ld hl,#2
  44.         add hl,sp
  45.        
  46.         ;push   ix
  47.         ;ld     ix,#0
  48.         ;add    ix,sp
  49.        
  50.         ld c,(hl)
  51.         inc hl
  52.         ld b,(hl)
  53.         inc hl
  54.         ld a,(hl)      
  55.         call _DRAW_IMAGE
  56.        
  57.         ;pop ix
  58.        
  59.         ret
  60. __endasm;
  61. }
  62.  
  63. void draw_image_extra(u8 x,u8 y,u8 id,u8 width,u8 begx) __naked
  64. {
  65. __asm
  66.         ld hl,#2
  67.         add hl,sp ;cy=0
  68.        
  69.         ;push   ix
  70.         ;ld     ix,#0
  71.         ;add    ix,sp
  72.        
  73.         ;ld a,(_MEMSLOT2)
  74.         ;push af
  75.        
  76.         ld c,(hl)
  77.         inc hl
  78.         ld b,(hl)
  79.         inc hl
  80.         ld a,(hl)
  81.         inc hl
  82.         ld e,(hl)
  83.         inc hl
  84.         ld d,(hl)
  85.         scf
  86.         call _DRAW_IMAGE
  87.        
  88.         ;pop af
  89.         ;LD     BC, #0xbff7
  90.     ;ld (_MEMSLOT2),a
  91.     ;out (c),a
  92.        
  93.         ;pop ix
  94.        
  95.         ret
  96. __endasm;
  97. }
  98.  
  99.  
  100. void memset(void* m,u8 b,u16 len) __naked
  101. {
  102. __asm
  103.         ld hl,#2
  104.         add hl,sp
  105.         ld e,(hl)
  106.         inc hl
  107.         ld d,(hl)
  108.         inc hl
  109.         ld a,(hl)
  110.         inc hl
  111.         ld c,(hl)
  112.         inc hl
  113.         ld b,(hl)
  114.  
  115.         ex de,hl
  116.         ld d,h
  117.         ld e,l
  118.         inc de
  119.         dec bc
  120.         ld (hl),a
  121.         jp _FAST_LDIR
  122. __endasm;
  123. }
  124.  
  125.  
  126.  
  127. void memcpy(void* d,void* s,u16 len) __naked
  128. {
  129. __asm
  130.         ld hl,#2
  131.         add hl,sp
  132.         ld e,(hl)
  133.         inc hl
  134.         ld d,(hl)
  135.         push de
  136.         inc hl
  137.         ld e,(hl)
  138.         inc hl
  139.         ld d,(hl)
  140.         inc hl
  141.         ld c,(hl)
  142.         inc hl
  143.         ld b,(hl)
  144.         ex de,hl
  145.         pop de
  146.         jp _FAST_LDIR
  147. __endasm;
  148. }
  149.  
  150. void pal_select(u8 id) __naked
  151. {
  152. __asm
  153.         ld hl,#2
  154.         add hl,sp
  155.         ld a,(hl)
  156.         jp _PAL_SELECT
  157. __endasm;
  158. }
  159.  
  160.  
  161.  
  162. void pal_bright(u8 bright) __naked
  163. {
  164. __asm
  165.         ld hl,#2
  166.         add hl,sp
  167.         ld a,(hl)
  168.         jp _PAL_BRIGHT
  169. __endasm;
  170. }
  171.  
  172. void pal_copy(u8 id,u8* pal) __naked
  173. {
  174. __asm
  175.         ld hl,#2
  176.         add hl,sp
  177.         ld a,(hl)
  178.         inc hl
  179.         ld e,(hl)
  180.         inc hl
  181.         ld d,(hl)
  182.         jp _PAL_COPY
  183. __endasm;
  184. }
  185.  
  186.  
  187.  
  188. void sfx_play(u8 sfx,i8 vol) __naked
  189. {
  190. __asm
  191.         ld hl,#2
  192.         add hl,sp
  193.         ld b,(hl)
  194.         inc hl
  195.         ld c,(hl)
  196.         jp _SFX_PLAY
  197. __endasm;
  198. }
  199.  
  200.  
  201.  
  202. void sfx_stop(void) __naked
  203. {
  204. __asm
  205.         jp _SFX_STOP
  206. __endasm;
  207. }
  208.  
  209.  
  210.  
  211.  
  212.  
  213. void pal_clear(void) __naked
  214. {
  215. __asm
  216.         ld hl,#_PALETTE
  217.         ld bc,#0x1000
  218. 1$:
  219.         ld (hl),c
  220.         inc l
  221.         djnz 1$
  222.         ld a,h
  223.         ld (_PALCHANGE),a
  224.         ret
  225. __endasm;
  226. }
  227.  
  228.  
  229.  
  230.  
  231.  
  232. void pal_col(u8 id,u8 col) __naked
  233. {
  234. __asm
  235.         ld hl,#2
  236.         add hl,sp
  237.         ld a,(hl)
  238.         inc hl
  239.         ld c,(hl)
  240.         ld hl,#_PALETTE
  241.         add a,l
  242.         ld l,a
  243.         ld a,c
  244.         and #63
  245.         ld (hl),a
  246.         ld a,h
  247.         ld (_PALCHANGE),a
  248.         ret
  249. __endasm;
  250. }
  251.  
  252.  
  253.  
  254.  
  255.  
  256. void pal_custom(u8* pal) __naked
  257. {
  258. __asm
  259.         ld hl,#2
  260.         add hl,sp
  261.         ld a,(hl)
  262.         inc hl
  263.         ld h,(hl)
  264.         ld l,a
  265.         ld de,#_PALETTE
  266.         ld b,#16
  267. 1$:
  268.         ld a,(hl)
  269.         and #63
  270.         ld (de),a
  271.         inc hl
  272.         inc e
  273.         djnz 1$
  274.         ld a,d
  275.         ld (_PALCHANGE),a
  276.         ret
  277. __endasm;
  278. }
  279.  
  280.  
  281.  
  282.  
  283. void draw_tile_key(u8 x,u8 y,u16 tile) __naked
  284. {
  285. __asm
  286.         ld hl,#2
  287.         add hl,sp
  288.         ld c,(hl)
  289.         inc hl
  290.         ld b,(hl)
  291.         inc hl
  292.         ld e,(hl)
  293.         inc hl
  294.         ld d,(hl)
  295.         jp _DRAW_TILE_KEY
  296. __endasm;
  297. }
  298.  
  299.  
  300.  
  301.  
  302. void clear_screen(u8 color) __naked
  303. {
  304. __asm
  305.         ld hl,#2
  306.         add hl,sp
  307.         ld a,(hl)
  308.         jp _CLEAR_SCREEN
  309. __endasm;
  310. }
  311.  
  312.  
  313.  
  314.  
  315.  
  316. void select_image(u8 id) __naked
  317. {
  318. __asm
  319.         ld hl,#2
  320.         add hl,sp
  321.         ld l,(hl)
  322.         jp _SELECT_IMAGE
  323. __endasm;
  324. }
  325.  
  326.  
  327.  
  328. void color_key(u8 col) __naked
  329. {
  330. __asm
  331.         ld hl,#2
  332.         add hl,sp
  333.         ld c,(hl)
  334.         jp _COLOR_KEY
  335. __endasm;
  336. }
  337.  
  338.  
  339.  
  340.  
  341. u32 time(void) __naked
  342. {
  343. __asm
  344.         ld hl,#_TIME+3
  345.         ld d,(hl)
  346.         dec hl
  347.         ld e,(hl)
  348.         dec hl
  349.         ld a,(hl)
  350.         dec hl
  351.         ld l,(hl)
  352.         ld h,a
  353.         ret
  354. __endasm;
  355. }
  356.  
  357.  
  358.  
  359. void delay(u16 time) __naked
  360. {
  361. __asm
  362.        
  363.        
  364.         ld hl,#2
  365.         add hl,sp
  366.         ld c,(hl)
  367.         inc hl
  368.         ld b,(hl)
  369.         ld a,b
  370.         or c
  371.         ret z
  372. 1$:
  373.         halt
  374.         dec bc
  375.         ld a,b
  376.         or c
  377.         jr nz,1$
  378.        
  379.         ret
  380. __endasm;
  381. }
  382.  
  383. void swap_screen(void) __naked
  384. {
  385. __asm
  386.  
  387.        
  388.         jp _SWAP_SCREEN
  389.        
  390. __endasm;
  391. }
  392.  
  393.  
  394.  
  395.  
  396. void border(u8 n) __naked
  397. {
  398. __asm
  399.         ld hl,#2
  400.         add hl,sp
  401.         ld a,(hl)
  402.         ld (_BORDERCOL),a
  403.         ;ld c,a
  404.         ;and #7
  405.         ;bit 3,c
  406.         ;jr nz,1$
  407.         ;out (0xfe),a
  408.         ;ret
  409. ;1$:
  410.         ;out (0xf6),a
  411.         ret
  412. __endasm;
  413. }
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420. void keyboard(u8* keys) __naked
  421. {
  422. __asm
  423.         ld hl,#2
  424.         add hl,sp
  425.         ld e,(hl)
  426.         inc hl
  427.         ld d,(hl)
  428.         jp _KEYBOARD
  429. __endasm;
  430. }
  431.  
  432.  
  433. void music_play(u8 mus) __naked
  434. {
  435. __asm
  436.         ld hl,#2
  437.         add hl,sp
  438.         ld a,(hl)
  439.         jp _MUSIC_PLAY
  440. __endasm;
  441. }
  442.  
  443.  
  444.  
  445. void music_stop(void) __naked
  446. {
  447. __asm
  448.         jp _MUSIC_STOP
  449. __endasm;
  450. }
  451.  
  452.  
  453.  
  454. void sample_play(u8 sample) __naked
  455. {
  456. __asm
  457.         ld hl,#2
  458.         add hl,sp
  459.         ld l,(hl)
  460.         jp _SAMPLE_PLAY
  461. __endasm;
  462. }
  463.  
  464.  
  465.  
  466. u16 rand16(void) __naked
  467. {
  468. __asm
  469.         ld hl,(1$)
  470.         push hl
  471.         srl h
  472.         rr l
  473.         ex de,hl
  474.         ld hl,(2$)
  475.         add hl,de
  476.         ld (2$),hl
  477.         ld a,l
  478.         xor #15
  479.         ld l,a
  480.         ex de,hl
  481.         pop hl
  482.         sbc hl,de
  483.         ld (1$),hl
  484.         ret
  485.  
  486. 1$:     .dw 1
  487. 2$:     .dw 5
  488.  
  489. __endasm;
  490. }
  491.  
  492.  
  493. /*
  494.  
  495. u8 mouse_pos(u8* x,u8* y) __naked
  496. {
  497. __asm
  498.         ld hl,#2
  499.         add hl,sp
  500.         ld c,(hl)
  501.         inc hl
  502.         ld b,(hl)
  503.         inc hl
  504.         ld e,(hl)
  505.         inc hl
  506.         ld d,(hl)
  507.         ld a,(_MOUSE_X)
  508.         ld (bc),a
  509.         ld a,(_MOUSE_Y)
  510.         ld (de),a
  511.         ld a,(_MOUSE_BTN)
  512.         ld l,a
  513.         ret
  514. __endasm;
  515. }
  516.  
  517.  
  518.  
  519. void mouse_set(u8 x,u8 y) __naked
  520. {
  521. __asm
  522.         ld hl,#2
  523.         add hl,sp
  524.         ld a,(hl)
  525.         ld (_MOUSE_X),a
  526.         inc hl
  527.         ld a,(hl)
  528.         ld (_MOUSE_Y),a
  529.         jp _MOUSE_APPLY_CLIP
  530. __endasm;
  531. }
  532.  
  533.  
  534.  
  535. void mouse_clip(u8 xmin,u8 ymin,u8 xmax,u8 ymax) __naked
  536. {
  537. __asm
  538.         ld hl,#2
  539.         add hl,sp
  540.         ld a,(hl)
  541.         ld (_MOUSE_CX1),a
  542.         inc hl
  543.         ld a,(hl)
  544.         ld (_MOUSE_CY1),a
  545.         inc hl
  546.         ld a,(hl)
  547.         ld (_MOUSE_CX2),a
  548.         inc hl
  549.         ld a,(hl)
  550.         ld (_MOUSE_CY2),a
  551.         jp _MOUSE_APPLY_CLIP
  552. __endasm;
  553. }
  554.  
  555.  
  556.  
  557. u8 mouse_delta(i8* x,i8* y) __naked
  558. {
  559. __asm
  560.         ld hl,#2
  561.         add hl,sp
  562.         ld c,(hl)
  563.         inc hl
  564.         ld b,(hl)
  565.         inc hl
  566.         ld e,(hl)
  567.         inc hl
  568.         ld d,(hl)
  569.         ld a,(_MOUSE_DX)
  570.         ld (bc),a
  571.         ld a,(_MOUSE_DY)
  572.         ld (bc),a
  573.         ld a,(_MOUSE_BTN)
  574.         ld l,a
  575.         ret
  576. __endasm;
  577. }
  578.  
  579.  
  580. */
  581.  
  582. void set_sprite(u8 id,u8 x,u8 y,u16 spr) __naked
  583. {
  584. __asm
  585.         ld hl,#2
  586.         add hl,sp
  587.         ld a,(hl)       ;id
  588.         inc hl
  589.         ld c,(hl)       ;x
  590.         inc hl
  591.         ld b,(hl)       ;y
  592.         inc hl
  593.         ld e,(hl)       ;sprl
  594.         inc hl
  595.         ld d,(hl)       ;sprh
  596.        
  597.         add a,a
  598.         add a,a
  599.         ld l,a
  600.         ld h,#_SPRQUEUE/256
  601.  
  602.         ld a,d          ;яхЁхёў╕Є эюьхЁр ёяЁрщЄр
  603.         cp #255
  604.         jr z,1$
  605.         add a,a
  606.         add a,d
  607.         ld d,a
  608. 1$:
  609.         ld a,(_SCREENACTIVE)
  610.         and #2
  611.         jr nz,2$
  612.         inc h
  613. 2$:
  614.         ld (hl),d
  615.         inc l
  616.         ld (hl),e
  617.         inc l
  618.         ld (hl),b
  619.         inc l
  620.         ld (hl),c
  621.         ret
  622. __endasm;
  623. }
  624.  
  625.  
  626.  
  627. void sprites_start(void) __naked
  628. {
  629. __asm
  630.         jp _SPRITES_START
  631. __endasm;
  632. }
  633.  
  634.  
  635.  
  636. void sprites_stop(void) __naked
  637. {
  638. __asm
  639.         jp _SPRITES_STOP
  640. __endasm;
  641. }
  642.  
  643.