Важная информация

User Tag List

Страница 1 из 30 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 298

Тема: Библиотека нужных процедур для написания демо

  1. #1
    Master Аватар для GM BIT
    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Благодарностей: 230
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Библиотека нужных процедур для написания демо

    Предлагаю создать библиотеку наиболее нужных процедур часто используемых при написании демо. Таких как: расчеты адресов, вывод точки, линия, заливка, fade_in, fade_out и т.д.
    Постите процедуры сюда, я их буду собирать в один файл в первом посте
    Может потом кто и прикрутит её в текстовик, допустим пишешь down_hl и это компилится во всем известную процедуру.

    Просьба тему не засорять рассуждениями
    ИТОГО: 10 процедур
    Вложения Вложения
    Последний раз редактировалось GM BIT; 03.08.2012 в 08:40.

  2. Эти 9 пользователя(ей) поблагодарили GM BIT за это полезное сообщение:
    ALKO (29.07.2012), Andrew771 (27.07.2012), Biozoom (08.09.2014), GriV (03.08.2012), John North (01.08.2012), moroz1999 (27.07.2012), perestoronin (14.02.2014), Robus (21.08.2012), VNN_KCS (28.07.2012)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  4. #2
    goblinish
    Гость

    По умолчанию

    Ротозумер с плазмой не постить, не?

    PHP код:
    ;--------точка,построение по de(y,x)--------------------------
    PLOTTBL EQU #A000

      
    call FORMER
    ;-----------------------формируем адреса для точек-------------
    FORMER  LD DE,#4000,BC,#8000,L,E
    FLP1    LD H,high PLOTTBL
            LD 
    (HL),D:INC H:LD (HL),E:INC H
            LD 
    (HL),C:INC H:LD (HL),B
            RRC B
            LD A
    ,C:ADC A,0:LD C,A
    FBR1    INC D
    :LD A,D:AND 7
            JR NZ
    ,FNXT:LD A,E:ADD A,32
            LD E
    ,A:JR C,FNXT
            LD A
    ,D:SUB 8:LD D,A
    FNXT    INC L
    :JR NZ,FLP1
            LD HL
    ,PLOTTBL+#C0,BC,#3F
            
    LD DE,HL:INC E
            LD 
    (HL),0:LDIR
            RET
    ;-----------ставим точку на DE------------------------
    PLOT    PUSH HL,BC:LD H,HIGH PLOTTBL,L,D,B,(HL):INC H
            LD A
    ,(HL),L,E:INC H:OR (HL)
            
    INC H:LD C,A,A,(BC)
            OR (
    HL):LD (BC),A
            POP BC
    ,HL:RET 

  5. Эти 2 пользователя(ей) поблагодарили goblinish за это полезное сообщение:
    GM BIT (27.07.2012), moroz1999 (27.07.2012)

  6. #3
    Master Аватар для GM BIT
    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Благодарностей: 230
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goblinish Посмотреть сообщение
    Ротозумер с плазмой не постить, не?
    Ну эт тогда библиотека исходников получится
    Может я мысль неправильно донес, я про рутину по написанию этих маленьких процедур

  7. #4
    goblinish
    Гость

    По умолчанию

    откуда этюд "бегущая строка", кстати?

  8. #5
    Master Аватар для GM BIT
    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Благодарностей: 230
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goblinish Посмотреть сообщение
    откуда этюд "бегущая строка", кстати?
    В библиотеке? или откуда взят?
    Если про библиотеку пусть висит, она всем новичкам нужна

  9. #6
    goblinish
    Гость

    По умолчанию

    окружность Брезенхэма, линию надо поискать бы..

    PHP код:
        device zxspectrum128

            ORG 25000
    PLOTTBL EQU 
    #A000
    begin
      call FORMER
    LOOP
        ei
    :halt:di
    radv1 ld a
    ,#40:call circle
     
    ld a,(radv1+1):inc a:ld (radv1+1),a
      LD A
    ,127:IN A,(#FE)
        
    RRA:JR C,LOOP
        EI
    :RET

    xr db 
    #80
    yr db #60
    rad db 0
    circle
        ld 
    (rad),a;a=radius
        ld d
    ,a,e,0;:= 0,:= RADIUS
     ld h
    ,0,l,a
     add hl
    ,hl
     ld bc
    ,hl,hl,3
     
    or a:sbc hl,bc;:= - (RADIUS)

    clp1

      ld a
    ,e:cp djr z,nlp1
      ret nc
    nlp1
        call plotall
    ;PLOT
        inc e
       bit 7
    ,h:jr z,else1;if (d<0)
    ;
    := + (x) + 6
        push hl
        ld h
    ,0,l,e
        add hl
    ,hl
        add hl
    ,hl
        ld bc
    ,6
        add hl
    ,bc
        pop bc
        add hl
    bc
      jp endif1
    else1
    ;:= * (y) + 10
     push hl
     ld h
    ,0,l,e
     ld c
    ,d,b,0
     
    or a:sbc hl,bc
     add hl
    ,hl
     add hl
    ,hl
     ld bc
    ,10
     add hl
    ,bc
     pop bc
     add hl
    ,bc
     dec d
    ;:= 1;
    endif1
     
    ;inc e
     jp clp1

    plotall
    ;PutPixel(CenterX XCenter Y Y)/setPixel(xCenter+x,yCenter+y)
     
    push de:ld a,(xr):add a,e:ld e,a
     ld a
    ,(yr):add a,d:ld d,a
     call PLOT
    :pop de:push de;ok
    ;PutPixel(CenterX XCenter Y Y)/setPixel(xCenter+y,yCenter+x)
     
    ld a,(xr):add a,d:ld c,e,e,a
     ld a
    ,(yr):add a,c:ld d,a
     call PLOT
    :pop de:push de;ok
    ;PutPixel(CenterX XCenter Y Y)/setPixel(xCenter-x,yCenter+y)
     
    ld a,(xr):sub e:ld e,a
     ld a
    ,(yr):add a,d:ld d,a
     call PLOT
    :pop de:push de;ok
    ;PutPixel(CenterX XCenter Y Y)/setPixel(xCenter+y,yCenter-x)
     
    ld a,(xr):add a,d:ld c,e,e,a
     ld a
    ,(yr):sub c:ld d,a
     call PLOT
    :pop de:push de;ok
    ;PutPixel(CenterX YCenter Y X)/setPixel(xCenter-x,yCenter-y)
     
    ld a,(xr):sub e:ld e,a
     ld a
    ,(yr):sub d:ld d,a
     call PLOT
    :pop de:push de;ok
    ;PutPixel(CenterX YCenter Y X)/setPixel(xCenter-y,yCenter-x)
     
    ld a,(xr):sub d:ld c,e,e,a
     ld a
    ,(yr):sub c:ld d,a
     call PLOT
    :pop de:push de;ok
    ;PutPixel(CenterX YCenter Y X)/setPixel(xCenter+x,yCenter-y)
     
    ld a,(xr):add a,e:ld e,a
     ld a
    ,(yr):sub d:ld d,a
     call PLOT
    :pop de:push de;ok
    ;PutPixel(CenterX YCenter Y X)/setPixel(xCenter-y,yCenter+x)
     
    ld a,(xr):sub d:ld c,e,e,a
     ld a
    ,(yr):add a,c:ld d,a
     call PLOT
    :pop de
     ret

    FORMER  LD DE
    ,#4000,BC,#8000,L,E
    FLP1    LD H,high PLOTTBL
            LD 
    (HL),D:INC H:LD (HL),E:INC H
            LD 
    (HL),C:INC H:LD (HL),B
            RRC B
            LD A
    ,C:ADC A,0:LD C,A
    FBR1    INC D
    :LD A,D:AND 7
            JR NZ
    ,FNXT:LD A,E:ADD A,32
            LD E
    ,A:JR C,FNXT
            LD A
    ,D:SUB 8:LD D,A
    FNXT    INC L
    :JR NZ,FLP1
            LD HL
    ,PLOTTBL+#C0,BC,#3F
            
    LD DE,HL:INC E
            LD 
    (HL),0:LDIR
            RET


    ;----------- plot DE=x.y------------------------
    PLOT
        PUSH HL
    ,BC:LD H,HIGH PLOTTBL,L,D,B,(HL):INC H
            LD A
    ,(HL),L,E:INC H:OR (HL)
            
    INC H:LD C,A,A,(BC)
            OR (
    HL):LD (BC),A
            POP BC
    ,HL:RET

    end
        display 
    /d,end-begin
        savesna 
    "test.sna",begin 


    ---------- Post added at 07:32 ---------- Previous post was at 07:31 ----------

    Цитата Сообщение от GM BIT Посмотреть сообщение
    В библиотеке? или откуда взят?
    Если про библиотеку пусть висит, она всем новичкам нужна
    а попроще с комментариями написать религия не позволяет?)

    ---------- Post added at 07:34 ---------- Previous post was at 07:32 ----------

    Цитата Сообщение от GM BIT Посмотреть сообщение
    fade_in, fade_out и т.д.
    общие процедуры для атрибутов?
    пишите в "Библию.." табличный принцип тогда в целом. или все же процедуры?

  10. Этот пользователь поблагодарил goblinish за это полезное сообщение:
    moroz1999 (27.07.2012)

  11. #7
    Master Аватар для GM BIT
    Регистрация
    27.11.2008
    Адрес
    Красноярск
    Сообщений
    747
    Благодарностей: 230
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Этюдных куча была, чтоб не вспоминать и не искать их

    ---------- Post added at 06:38 ---------- Previous post was at 06:38 ----------

    Цитата Сообщение от GM BIT Посмотреть сообщение
    а попроще с комментариями написать религия не позволяет?)
    напиши попроще, проще у меня голова уже не соображает

  12. #8
    goblinish
    Гость

    По умолчанию

    Цитата Сообщение от GM BIT Посмотреть сообщение
    напиши попроще, проще у меня голова уже не соображает
    Дода, ты математику добавь - деление, умножение там...

    Линия, не знаю, насколько быстрая, автор Johny Coder/BMZ

    PHP код:
    PIX_TAB EQU #7C00
        
    device zxspectrum128

            ORG 
    #6000
    begin
            CALL INIT
    ;HL=XY,BC=YX
       ld BC
    ,#bfff;bf
    MAIN    EI:HALT
            LD A
    ,0:OUT (#FE),A
            
    push bc
            LD HL
    ,#0000
            
    CALL DRAW
            LD A
    ,2:OUT (#FE),A
            
    pop bc:dec c:jr zwkey
            jp MAIN
    wkey
            LD A
    ,#7F:IN A,(#FE)
            
    RRA:JR C,wkey;MAIN
            EXX
    :LD HL,#2758:EXX
            
    RET

    ;-------------------------------
    DRAW    LD (TEK_POI+1),HL,E,H
            LD H
    ,high PIX_TAB,A,(HL);[
            
    INC H:LD D,(HL):INC H
            LD L
    ,E:OR (HL):LD E,A
            INC H
    :LD A,(DE):OR (HL)
            
    LD (DE),A

            LD HL
    ,(TEK_POI+1),DE,#FFFF
            
    LD A,H:SUB C:JR NC,$+6
            NEG
    :LD E,1,C,A
            LD A
    ,L:SUB B:JR NC,$+6
            NEG
    :LD D,1,B,A
            LD A
    ,C:CP B:JR NC,L24C4
            LD L
    ,C:PUSH DE:XOR A
            LD E
    ,A:JR L24CB
    L24C4   
    OR C:RET Z:LD L,B,B,C
            PUSH DE
    :LD D,0
    L24CB   LD H
    ,B,A,B
            RRA
    L24CE   ADD A
    ,L:JR C,L24D4
            CP H
    :JR C,L24DB
    L24D4   SUB H
    :LD C,A
            EXX
    :POP BC:PUSH BC
            JR TEK_POI
    L24DB   LD C
    ,A:PUSH DE
            EXX
    :POP BC
    TEK_POI LD HL
    ,0,A,C
            ADD A
    ,H
            LD H
    ,A,A,B
            ADD A
    ,L:LD L,A
            LD 
    (TEK_POI+1),HL

            LD E
    ,H,H,high PIX_TAB;[
            
    LD A,(HL):INC H
            LD D
    ,(HL):INC H
            LD L
    ,E:OR (HL)
            
    LD E,A:INC H
            LD A
    ,(DE):OR (HL):LD (DE),A
            EXX
    :LD A,C:DJNZ L24CE
            POP DE
    RETURN  RET
    ;ANY RET

    INIT    LD DE
    ,#4000,L,E,BC,#8000;#C000
    ILP1    LD H,high PIX_TAB,(HL),E:INC H;[
            
    LD (HL),D:INC H
            LD 
    (HL),C:INC H
            LD 
    (HL),B
          CALL DOWN_DE
    ;,DOWN_DE
          RRC B
    ;,B
            LD A
    ,C:ADC A,0:LD C,A
            INC L
    :JR NZ,ILP1
    ;        LD HL,PIX_TAB+96;256+96
    ;ILP2    LD (HL),0:INC L:JR NZ,ILP2
            RET
    ;-------------------------------
    DOWN_DE INC D:LD A,D:AND 7:RET NZ
            LD A
    ,E:ADD A,32:LD E,A:RET C
            LD A
    ,D:SUB 8:LD D,A:RET
    end
        display 
    /d,end-begin
        savesna 
    "test.sna",begin 
    [COLOR="Silver"]
    Последний раз редактировалось goblinish; 27.07.2012 в 11:29. Причина: поправил ошибку

  13. Этот пользователь поблагодарил goblinish за это полезное сообщение:
    GM BIT (30.07.2012)

  14. #9
    Veteran
    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,497
    Благодарностей: 668
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Процедуры могут быть оптимизированы по быстродействию или по памяти - это надо указывать. А то не всегда подходит под текущий проект.

    Вот список, что неплохо бы иметь: http://zx.pk.ru/showpost.php?p=356168&postcount=62
    Формально всё правильно, а по существу - издевательство (В.И.Ленин)

  15. #10
    goblinish
    Гость

    По умолчанию

    Цитата Сообщение от Andrew771 Посмотреть сообщение
    Процедуры могут быть оптимизированы по быстродействию или по памяти - это надо указывать
    и кто возьмется?))))

Страница 1 из 30 12345 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Графическая библиотека
    от alone в разделе Программирование
    Ответов: 81
    Последнее: 31.01.2016, 20:37
  2. Что нужно для написания игр ?
    от zst в разделе Игры
    Ответов: 316
    Последнее: 25.02.2014, 21:25
  3. библиотека на форум
    от sevol в разделе Форум
    Ответов: 4
    Последнее: 26.06.2010, 07:06
  4. простой скрипт для написания хелпов
    от jim в разделе Программирование
    Ответов: 2
    Последнее: 09.04.2007, 12:33
  5. Ответов: 3
    Последнее: 08.02.2007, 19:38

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •