Deja Vu #04
31 марта 1998

CODING - Вращение спрайтов.

SoundTrack:  MR.Z OF LASER SOFT '98 (C)BD 
__________________________________________


;----------------------------------------;
;            TURN SPRITES                ;
; (c) SerzhSoft, Shadrinsk, 31 july 1997 ;
;----------------------------------------;
        ORG     #8000
        JP      EXAMPLE
;----------------------------------------;
;используется в изменяемых командах
_NULL   EQU     0
;----------------------------------------;
ALFA    dw      0 ;угол наклона спрайта
;
COSALFA db      0 ;абсолютное значение
        db      0 ;знак: 0=[+], #ff=[-]
;
SINALFA db      0 ;абсолютное значение
        db      0 ;знак: 0=[+], #ff=[-]
;----------------------------------------;
ATTR_P  EQU     23693 ;атрибуты экрана
;----------------------------------------;
;биты:   0 - over 0/1,   2 - inverse 0/1
;      4 - ink & paper 9 (прозрачные атр.)
P_FLAG  EQU     23697
;----------------------------------------;
;демонстрационный пример

EXAMPLE
        di
;
        XOR     A
        LD      (P_FLAG),A
;
        ld      hl,0   ;угол накл. спрайта
        ld      a,128  ;масштаб: 0.5:1
        call    INISYST ;иниц-я системы
                         координат
;
        ld      e,0       ;X спрайта
        ld      d,0       ;Y спрайта
        ld      ix,MYSPR2 ;ADR_SPR
        ld      c,(ix+0)  ;ширина, байты
        ld      b,(ix+1)  ;высота, пиксели
        inc     ix
        inc     ix
        call    CORNSPR ;вывод спрайта по
                         лев. верх. углу
;
        ld      e,200     ;X спрайта
        ld      d,0       ;Y спрайта
        ld      ix,MYSPR1 ;ADR_SPR
        ld      c,(ix+0)  ;ширина, байты
        ld      b,(ix+1)  ;высота, пиксели
        inc     ix
        inc     ix
        call    CORNSPR ;вывод спрайта по
                         лев. верх. углу
;
        ld      hl,45   ;наклон 45 град.
        ld      a,255   ;масштаб: 1:1
        call    INISYST ;сист. координат
;
        ld      e,100     ;X
        ld      d,100     ;Y
        ld      ix,MYSPR2 ;ADR_SPR
        ld      c,(ix+0)  ;XR_IN_BYTES
        ld      b,(ix+1)  ;YR_IN_PIXELS
        inc     ix
        inc     ix
        call    CENTSPR ;PUT_CENTRE_TURN_
                         SPRITE
;
        LD      A,#04      ;[set 2,a]
        LD      (P_FLAG),A ;inverse 1
;
        ld      hl,90     ;наклон 45 град.
        ld      a,255     ;масштаб: 1:1
        call    INISYST   ;сист. координат
;
        ld      e,210     ;X
        ld      d,100     ;Y
        ld      ix,MYSPR1 ;ADR_SPR
        ld      c,(ix+0)  ;XR_IN_BYTES
        ld      b,(ix+1)  ;YR_IN_PIXELS
        inc     ix
        inc     ix
        call    CENTSPR ;PUT_CENTRE_TURN_
                         SPRITE
;
        CALL    WAITKEY
        ei
        ret
;----------------------------------------;
;инициализация системы координат для
; последующих выводов спрайтов
; HL=0..359 - угол наклона в градусах
; A=0..255 - масштаб 0:1 ... 1:1

INISYST
        push    af
        ld      (ALFA),hl
        call    SIN_HL
        pop     bc
        push    bc
        ld      c,a
        sbc     a,a
        ld      d,a
        call    MULT_BC
        ld      l,a
        ld      h,d
        ld      (SINALFA),hl
        ld      hl,(ALFA)
        call    COS_HL
        pop     bc
        ld      c,a
        sbc     a,a
        ld      d,a
        call    MULT_BC
        ld      l,a
        ld      h,d
        ld      (COSALFA),hl
        ld      ix,DTATAB
        ld      de,#0000
        ld      a,d
LPIS1   push    af
        ld      a,(COSALFA)
        pop     bc
        push    bc
        ld      c,a
        call    MULT_BC
        ld      h,a
        sub     e
        ld      e,h
        ld      c,a
        ld      a,(COSALFA+1)
        rra
        jr      nc,GOIS1
        ld      a,c
        neg
        ld      c,a
GOIS1   ld      (ix+0),c
        inc     ix
        ld      a,(SINALFA)
        pop     bc
        push    bc
        ld      c,a
        call    MULT_BC
        ld      h,a
        sub     d
        ld      d,h
        ld      c,a
        ld      a,(SINALFA+1)
        rra
        jr      nc,GOIS2
        ld      a,c
        neg
        ld      c,a
GOIS2   ld      (ix+0),c
        inc     ix
        pop     af
        inc     a
        jr      nz,LPIS1
        ret
;----------------------------------------;
;вывод повернутого спрайта по центру
; прерывания - запрещать! (из-за стека)
; E=x, D=y - координаты центра
; C=xr - ширина спрайта в знакоместах
; B=yr - высота спрайта в пикселях
; IX - адрес данных спрайта

CENTSPR
        push    bc
        srl     b
        sla     c
        sla     c
        push    bc
        ld      a,(SINALFA)
        ld      c,a
        call    MULT_BC
        ld      h,a
        ld      a,(SINALFA+1)
        rra
        ld      a,h
        jr      c,GOCS1
        neg
GOCS1   add     a,e
        ld      e,a     ;X0-YR/2*SIN(A)
        pop     bc
        push    bc
        ld      a,(COSALFA)
        ld      b,a
        call    MULT_BC
        ld      h,a
        ld      a,(COSALFA+1)
        rra
        ld      a,h
        jr      c,GOCS2
        neg
GOCS2   add     a,e
        ld      e,a     ;X0-YR/2*SIN(A)-
                         -XR/2*COS(A)
        pop     bc
        push    bc
        ld      a,(COSALFA)
        ld      c,a
        call    MULT_BC
        ld      h,a
        ld      a,(COSALFA+1)
        rra
        ld      a,h
        jr      c,GOCS3
        neg
GOCS3   add     a,d
        ld      d,a     ;Y0-YR/2*COS(A)
        pop     bc
        ld      a,(SINALFA)
        ld      b,a
        call    MULT_BC
        ld      h,a
        ld      a,(SINALFA+1)
        rra
        ld      a,h
        jr      nc,GOCS4
        neg
GOCS4   add     a,d
        ld      d,a     ;Y0-YR/2*COS(A)+
                         +XR/2*SIN(A)
        pop     bc
;--------------------------------------;
;вывод повернутого спрайта по углу
; прерывания - запрещать! (из-за стека)
; E=x, D=y - координаты лев. верх. угла
; C=xr - ширина спрайта в знакоместах
; B=yr - высота спрайта в пикселях
; IX - адрес данных спрайта

CORNSPR
        ld      hl,DTATAB
LPCRS0  push    bc
        push    de
        push    hl
        ld      (CORNSP1),sp
        ld      sp,DTATAB
        ld      a,c
LPCRS1  ld      b,(ix+0)
LPCRS2  ex      af,af'
        pop     hl
        ld      a,e
SIGN_XX add     a,l
        ld      e,a
        ld      a,d
SIGN_XY sub     h
        cp      #C0
        jr      nc,NO_PUT
        ld      d,a
;
        LD      C,#07
        ld      a,d
        rra
        scf
        rra
        rra
        and     #5F
        ld      h,a
        xor     e
        and     C
        xor     e
        rrca
        rrca
        rrca
        ld      l,a
        ld      a,d
        xor     h
        and     C
        xor     h
        ld      h,a
        LD      A,E
        AND     C
        LD      C,B
        LD      B,A
        LD      A,#80
        JR      Z,IF_TRN
LP_TRN  RRCA
        DJNZ    LP_TRN
IF_TRN  LD      B,C
        LD      C,A
        LD      A,(P_FLAG)
        rlc     b
        jr      c,NO_RES
        xor     #04
NO_RES  BIT     2,A
        LD      A,#A9 ;[xor c] - inv. 1
        JR      NZ,IF_TRN1
        LD      A,#00 ;[nop] - inverse 0
IF_TRN1 LD      (INV_TRN),A
        LD      A,(HL)
        OR      C
INV_TRN XOR     C
        LD      (HL),A
        LD      A,(P_FLAG)
        BIT     4,A
        JR      NZ,NO_PUT
        LD      A,H
        RRA
        RRA
        RRA
        AND     #03
        OR      #58
        LD      H,A
        LD      A,(ATTR_P)
        LD      (HL),A
;
NO_PUT  ex      af,af'
        add     a,#20
        jp      nc,LPCRS2
        inc     ix
        dec     a
        jp      nz,LPCRS1
EXCRS1  ld      sp,0
CORNSP1 equ     $-2
        pop     hl
        pop     de
        ld      a,d
SIGN_YY add     a,(hl)
        ld      d,a
        inc     hl
        ld      a,e
SIGN_YX add     a,(hl)
        ld      e,a
        inc     hl
        pop     bc
        DEC     B
        JP      NZ,LPCRS0
        ret
;----------------------------------------;
;быстрое умножение B на C
;AL=B*C

MULT_BC
        ld      l,b
        xor     a
        rr      l
        jr nc,$+3: add a,c: rra: rr l
        jr nc,$+3: add a,c: rra: rr l
        jr nc,$+3: add a,c: rra: rr l
        jr nc,$+3: add a,c: rra: rr l
        jr nc,$+3: add a,c: rra: rr l
        jr nc,$+3: add a,c: rra: rr l
        jr nc,$+3: add a,c: rra: rr l
        jr nc,$+3: add a,c: rra: rr l
        ret
;----------------------------------------;
;вычисление синуса HL
;A=sin(HL)*255, CF=sign (NC=[+], C=[-])

SIN_HL
        dec     h
        jr      z,GOSIN2
        inc     h
        jr      nz,SIN360
        ld      h,SINTAB/256
        ld      a,l
        cp      180
        jr      nc,GOSIN1
        ld      a,(hl)
        and     a
        ret
GOSIN1  sub     180
        ld      l,a
        ld      a,(hl)
        scf
        ret
GOSIN2  ld      a,l
        cp      104
        jr      nc,GOSIN3
        ld      l,a
        ld      a,104
        sub     l
        ld      l,a
        ld      h,SINTAB/256
        ld      a,(hl)
        scf
        ret
GOSIN3  inc     h
SIN360  ld      bc,360
        and     a
LPSIN1  sbc     hl,bc
        jr      nc,LPSIN1
        add     hl,bc
        jp      SIN_HL
;----------------------------------------;
;вычисление косинуса HL
;A=cos(HL)*255, CF=sign (NC=[+], C=[-])

COS_HL
        dec     h
        jr      z,GOCOS3
        inc     h
        jr      nz,COS360
        ld      h,SINTAB/256
        ld      a,l
        cp      180
        jr      nc,GOCOS2
        sub     90
        jr      c,GOCOS1
        ld      l,a
        ld      a,(hl)
        scf
        ret
GOCOS1  add     a,180
        ld      l,a
        ld      a,(hl)
        and     a
        ret
GOCOS2  sub     90
        ld      l,a
        ld      a,(hl)
        scf
        ret
GOCOS3  ld      a,l
        cp      14
        jr      nc,GOCOS4
        add     a,166
        ld      l,a
        ld      h,SINTAB/256
        ld      a,(hl)
        scf
        ret
GOCOS4  cp      104
        jr      nc,GOCOS5
        sub     14
        ld      l,a
        ld      h,SINTAB/256
        ld      a,(hl)
        and     a
        ret
GOCOS5  inc     h
COS360  ld      bc,360
        and     a
LPCOS1  sbc     hl,bc
        jr      nc,LPCOS1
        add     hl,bc
        jp      COS_HL
;----------------------------------------;
;ждет нажатия на любую клавишу

WAITKEY
        XOR     A
        IN      A,(#FE)
        CPL
        AND     #1F
        JR      Z,WAITKEY
        RET
;----------------------------------------;
;выравнивание на сегмент (граница 256)
        ds      $/256*256+256-$
SINTAB  insert  "sincos.d"
;----------------------------------------;
MYSPR1  insert  "spr1.spr" ;спрайт 1
MYSPR2  insert  "spr2.spr" ;спрайт 2
;----------------------------------------;
DTATAB  ds      512       ;DELTA_LINES
;можно использовать все тот же BUFFER
;----------------------------------------;


==========================================


;----------------------------------------;
;       CIRCLE AND TEXTURED FILL         ;
; (c) SerzhSoft, Shadrinsk, 31 july 1997 ;
;----------------------------------------;

        ORG     #8000
        JP      EXAMPLE
;----------------------------------------;
;используется в изменяемых командах
_NULL   EQU     0
;----------------------------------------;
;адрес текстуры для вывода
TXRADR  DW      TEXTURE
;----------------------------------------;
ATTR_P  EQU     23693 ;атрибуты экрана
;----------------------------------------;
;биты:   0 - over 0/1,   2 - inverse 0/1
;      4 - ink&paper 9 (прозрачные атр.)
P_FLAG  EQU     23697
;----------------------------------------;
;демонстрационный пример
EXAMPLE
        XOR     A
        LD      (P_FLAG),A
;
        ld      hl,-100
        ld      de,-100
        ld      a,255
        CALL    CIRCLE
;
        LD      E,10
        LD      D,10
        XOR     A
        CALL    TXRFILL
;
        ld      hl,200
        ld      de,100
        ld      a,50
        CALL    CIRCLE
;
        LD      E,200
        LD      D,100
        LD      A,1
        CALL    TXRFILL
;
        ld      hl,115
        ld      de,150
        ld      a,20
        CALL    CIRCLE
;
        LD      E,115
        LD      D,150
        LD      A,2
        CALL    TXRFILL
;
        LD      A,#04 ;[set 2,a]
        LD      (P_FLAG),A ;inverse 1
;
        LD      E,10
        LD      D,170
        LD      A,2
        CALL    TXRFILL
;
        CALL    WAITKEY
        RET
;----------------------------------------;
;ждет нажатия на любую клавишу
WAITKEY
        XOR     A
        IN      A,(#FE)
        CPL
        AND     #1F
        JR      Z,WAITKEY
        RET
;----------------------------------------;
;Algorythm designed by SerzhSoft (c)1996
;рисование окружности
; HL=x, DE=y (-32768..+23767)
; A=радиус (0..255) ;при 0 - точка
CIRCLE
        ld      (X_CIRC),hl
        ld      (Y_CIRC),de
        ld      e,a
        ld      c,#00
        ld      b,c
        ld      d,c
        srl     a
LPCIR1  ex      af,af'
LPCIR2  call    PUT8PX
        inc     c
        ex      af,af'
        sub     c
        jr      nc,LPCIR1
        dec     e
        add     a,e
        ex      af,af'
        ld      a,e
        cp      c
        jr      nc,LPCIR2
        ret
;
PUT8PX  call    PUT4PX
;
PUT4PX  ld      a,c
        ld      c,e
        ld      e,a
        ld      hl,_NULL
X_CIRC  equ     $-2
        push    hl
        add     hl,bc
        call    PUT2PX
        pop     hl
        sbc     hl,bc
;
PUT2PX  inc     h
        dec     h
        ret     nz
        ld      a,l
        ld      (X_NEW),a
        ld      hl,_NULL
Y_CIRC  equ     $-2
        push    hl
        add     hl,de
        call    PUT1PX
        pop     hl
        sbc     hl,de
;
PUT1PX  inc     h
        dec     h
        ret     nz
        ld      a,l
        cp      #C0
        ret     nc
        push    de
        ld      d,a
        ld      e,_NULL
X_NEW   equ     $-1
        push    bc
        call    PLOT
        pop     bc
        pop     de
        ret
;----------------------------------------;
;текстурная заливка
; E=x, D=y, A=номер текстуры (0..255)
TXRFILL
        RRCA
        RRCA
        RRCA
        LD      H,A
        AND     #E0
        LD      L,A
        XOR     H
        ADD     A,TEXTURE/256
        LD      H,A
        LD      (TXRADR),HL
;
;заливка, но не по номеру текстуры, а
;по адресу, установленному в TXRADR
TXRFIL2
        LD      A,D
        CP      #C0
        RET     NC
        LD      A,(P_FLAG)
        BIT     2,A
        LD      A,#A9 ;[xor c] - inv. 0
        JR      Z,IF_TXF0
        LD      A,#A1 ;[and c] - inv. 1
IF_TXF0 LD      (INV_TXF),A
        LD      HL,BUFFER
        LD      A,#FF
        PUSH    AF
        PUSH    DE
LP_TXF1 POP     DE
        INC     D
        JP      Z,GO_TXF0
        DEC     D
        CALL    POINTHL
        JR      NZ,LP_TXF1
        EX      AF,AF'
LP_TXF2 LD      A,E
        LD      (HL),A
        OR      A
        JR      Z,GO_TXF1
        DEC     E
        CALL    POINTHL
        JR      Z,LP_TXF2
LP_TXF3 INC     E
        JR      Z,GO_TXF8
GO_TXF1 PUSH    HL
        CALL    POINT
        JR      NZ,GO_TXF7
        LD      A,(HL)
        OR      C
        CALL    TO_PLOT
        POP     HL
        LD      A,D
        OR      A
        JR      Z,GO_TXF4
        DEC     D
        CALL    POINTHL
        JR      Z,GO_TXF2
        EX      AF,AF'
        LD      A,B
        JR      GO_TXF3
GO_TXF2 EX      AF,AF'
        INC     A
        DEC     A
        JR      NZ,GO_TXF3
        LD      A,C
        PUSH    DE
GO_TXF3 EX      AF,AF'
        INC     D
GO_TXF4 LD      A,D
        CP      #BF
        JR      NC,LP_TXF3
        INC     D
        CALL    POINTHL
        JR      Z,GO_TXF5
        EX      AF,AF'
        AND     A
        JR      GO_TXF6
GO_TXF5 EX      AF,AF'
        JR      C,GO_TXF6
        SCF
        PUSH    DE
GO_TXF6 EX      AF,AF'
        DEC     D
        JR      LP_TXF3
GO_TXF7 POP     HL
GO_TXF8 LD      A,E
        SUB     (HL)
        INC     HL
        LD      (HL),D
        INC     HL
        LD      (HL),A
        INC     HL
        JR      LP_TXF1
;
LP_TXF4 ADD     HL,DE
        DEC     HL
        LD      A,(HL)
        DEC     HL
        LD      D,(HL)
        DEC     HL
        LD      E,(HL)
        PUSH    HL
        PUSH    AF
        CALL    POINT
        POP     AF
        LD      B,A
        LD      A,E
        RRA
        RRA
        RRA
        RRA
        LD      A,D
        RLA
        LD      DE,(TXRADR)
        XOR     E
        AND     #1F
        XOR     E
        LD      E,A
LP_TXF5 LD      A,(DE)
        AND     C
INV_TXF XOR     C
        XOR     (HL)
        LD      (HL),A
        RRC     C
        JR      NC,GO_TXF9
        INC     L
        LD      A,E
        XOR     #01
        LD      E,A
GO_TXF9 DJNZ    LP_TXF5
        POP     HL
GO_TXF0 LD      DE,BUFFER
        AND     A
        SBC     HL,DE
        JR      NZ,LP_TXF4
        RET
;----------------------------------------;
;выч. адреса и проверка состояния точки
POINT
        LD      B,#07
        LD      A,D
        RRA
        SCF
        RRA
        RRA
        AND     #5F
        LD      H,A
        XOR     E
        AND     B
        XOR     E
        RRCA
        RRCA
        RRCA
        LD      L,A
        LD      A,D
        XOR     H
        AND     B
        XOR     H
        LD      H,A
        LD      A,E
        AND     B
        LD      B,A
        LD      A,#80
        JR      Z,GO_PNT
LP_PNT  RRCA
        DJNZ    LP_PNT
GO_PNT  LD      C,A
        AND     (HL)
        RET
;
POINTHL
        PUSH    HL
        CALL    POINT
        POP     HL
        RET
;----------------------------------------;
;установка точки
PLOT
        CALL    POINT
        LD      A,(P_FLAG)
        PUSH    HL
        LD      HL,#A9A9 ;over 1, inv. 1
        BIT     0,A
        JR      NZ,IF_PLT1
        LD      L,#B1 ;[or c] - over 0
IF_PLT1 BIT     2,A
        JR      NZ,IF_PLT2
        LD      H,#00 ;[nop] - inverse 1
IF_PLT2 LD      (OVR_PLT),HL
        POP     HL
        LD      A,(HL)
OVR_PLT OR      C
INV_PLT XOR     C
;
TO_PLOT ;вход для пр-ры заливки и др.
        LD      (HL),A
        LD      A,(P_FLAG)
        BIT     4,A
        RET     NZ
        LD      A,H
        RRA
        RRA
        RRA
        AND     #03
        OR      #58
        LD      H,A
        LD      A,(ATTR_P)
        LD      (HL),A
        RET
;----------------------------------------;
;выравнивание на сегмент (граница 256)
        DS      $/256*256+256-$
;----------------------------------------;
;различные текстуры 2*2 знакоместа
TEXTURE
        DB      %11111111,%11110000
        DB      %11111111,%11111000
        DB      %11000000,%00110100
        DB      %11011111,%11111010
        DB      %11011111,%11110100
        DB      %11011010,%11111010
        DB      %11011101,%11110100
        DB      %11011010,%11111010
        DB      %11011111,%11110100
        DB      %11011111,%11111010
        DB      %11111111,%11110100
        DB      %11111111,%11111010
        DB      %01010101,%01010100
        DB      %00101010,%10101010
        DB      %00010101,%01010100
        DB      %00000000,%00000000
;
        DB      %11111111,%11110000
        DB      %11111111,%11111000
        DB      %11000000,%00110100
        DB      %11011111,%11111010
        DB      %11011111,%11110100
        DB      %11011000,%11111010
        DB      %11011010,%11110100
        DB      %11011000,%11111010
        DB      %11011111,%11110100
        DB      %11011111,%11111010
        DB      %11111111,%11110100
        DB      %11111111,%11111010
        DB      %01010101,%01010100
        DB      %00101010,%10101010
        DB      %00010101,%01010100
        DB      %00000000,%00000000
;
        DB      %11111111,%11110000
        DB      %11111111,%11111000
        DB      %11000000,%00110100
        DB      %11011111,%11111010
        DB      %11011111,%11110100
        DB      %11011111,%11111010
        DB      %11011111,%11110100
        DB      %11011111,%11111010
        DB      %11011111,%11110100
        DB      %11011111,%11111010
        DB      %11111111,%11110100
        DB      %11111111,%11111010
        DB      %01010101,%01010100
        DB      %00101010,%10101010
        DB      %00010101,%01010100
        DB      %00000000,%00000000
;----------------------------------------;
;буфер для запоминания координат линий
; при заливке (требует большого объема)
BUFFER  EQU     $

       EX      DE,HL         ; Например,
                               для основ-
                              ного знака X
        AND     A             ; дополни-
                               тельным бу-
                               дет I, а их
        SBC     HL,BC         ; разность
                               соответст-
                               венно:
        EX      DE,HL         ;10-1=9,т.е.
                               IX
        LD      C,A           ;код основ-
                               ного знака
        LD      A,(HL)        ;код допол-
                               нительного
                               знака
        EX      (SP),HL       ;HL=печатае-
                               мое число
        SBC     HL,DE         ;если оно <
                              дополнитель-
                              ного
        JR      C,GO_PRW3     ; значения,
                               то не печа-
                               таем
        RST     #10           ;печать до-
                               полнитель-
                               ного знака
        LD      A,C           ;основной
                               знак
        RST     #10           ;печать
        JR      GO_PRW4       ;результат -
                               двухбукв.
                               сочетание
GO_PRW3 ADD     HL,DE         ;восстанови-
                               ли (+) у
                               числа
GO_PRW4 EX      (SP),HL       ;число -> на
                               стек
HL_PRW  LD      HL,_NULL      ;адрес сле-
                               дующего
                               знака в
                               таблице
        DB      #DD           ;работаем с
                               половинкой
                               регистра IX
        DEC     L             ;DEC XL -
                               уменьшаем
                               счетчик
                               знаков
        JR      NZ,LP_PRW1    ;крутим цикл
                               пока есть
                               еще знаки
        POP     HL            ;сняли не-
                               нужный уже
                               ноль со
                               стека
        RET                   ;выход из
                               процедуры
;----------------------------------------;
RIM_TBL ;Таблица значимости букв в написа-
         нии римских чисел

        DW      1000
        DB      "M"     ;M=1000 ;CM=900
        DW      500
        DB      "D"     ;D=500  ;CD=400
        DW      100
        DB      "C"     ;C=100  ;XC=90
        DW      50
        DB      "L"     ;L=50   ;XL=40
        DW      10
        DB      "X"     ;X=10   ;IX=9
        DW      5
        DB      "V"     ;V=5    ;IV=4
        DW      1
        DB      "I"     ;I=1    ;-nop-
;----------------------------------------;
;          end of PDES LIB 2.0           ;              ;
;----------------------------------------;



Другие статьи номера:

Аперативчик - Об управлении в обoлочке DEJA VU и о содержании 4 номера журнала

Тема - Бессмертный SPECCY - "проект будущего Speccy".

Капля припоя - Эмулятор ZX-SPECTRUM v3.04 - Руководство пользователя.

Капля припоя - Эмулятор ZX-SPECTRUM v0.20b by LION.

Капля припоя - ZX-SPECTRUM NAVIGATOR v1.00beta.

SOFTWARE - Презентация игры "Властелин Ориона".

SOFTWARE - Трактат о великой пользительности некоторых авторский разработок.

SOFTWARE - Обзор новых игр: FISHER pre-reliz , EMPIRE demo , LITTLE GHOST demo, СТАЛКЕР, ELOPEMENT, WORDLIFE.

SOFTWARE - Обзор новинок демосцены: HALLUCINATIONS in OPERA, INFARCT, YER ACHE 2, AMIGA, RAY EURODEMO, ZEST.

CODING - Ремикс некоторых процедур 93 года: SCREEN APARAT, Теневой контур, LOOK BASIC PROGRAMM-2.

CODING - Печать чисел в разных системах счисления: печать десятичных и шестнадцатеричных, двоичных и римских чисел, печать чисел в системе счисления с основанием, установленным пользователем.

CODING - процедура "Плазменные шарики".

CODING - Плавное затухание музыки в любой момент времени.

CODING - THE оптимизация.

CODING - Вращение спрайтов.

ANOTHER WORLD - О компьютере Be Box.

ANOTHER WORLD - Аргументы и факты (AMIGA vs PC).

Доска почета - Официальная информация о фестивале FunTop-98.

Доска почета - Конкурс на самую лучшую минидемку (1024 байта).

Семь и 1/2 - Урок Ламера или сто и одна процедура очистки аккумулятора.

Семь и 1/2 - День дурака (приколы и юмор).

Проба пера - Последняя гастроль или VIRTUL-но AMIG-ный синдром.

Проба пера - Поэма о добре и зле.

Проба пера - Возвращение Клэр.

Проба пера - Стихи: Спящий студент, Басня о Матане, Медкомиссия.

Проба пера - Рассказ "Война продолжается" (продолжение, глава 6).

Реклама - Реклама и объявления ...


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Реклама - Реклама и объявления ...
Мозаика - О секретах в играх : Dizzy 3, Soviet Simpson Bart. Теневые части Ecstasy.
F-lame - Смокеры откопали топор войны: Always VS Body.

В этот день...   10 декабря