256 bajtów!


256 bajtów - to jeszcze nie koniec!

      Niemożliwe stało się możliwe! Nare¶cie spodobał się Wam jaki¶ cykl i oto niespodziewanie macie okazję zobaczyć kolejne Ľródłówki, których kod wynikowy NIE przekracza 256 bajtów. Tym razem swoimi "pomysłami" podzielił się Arasek z Aids! Mamy nadzieję że na tym się nie zakończy i następnym razem kto¶ inny pochwali się swoimi rozwi±zaniami!?

ERRATA: W poprzednim numerze zupełnie nie¶wiadomie przypisałem program BULKI Krógerowi. Jak się okazuje to nie on jest autoram! W tym miejscu chciałbym przeprosić obu panów za t± pomyłkę!!!

Jager/Dial

*---------------------*
|    245b. plazma     |
|    Ars/Aids '98     |
|     Serious #4      |
*---------------------*
|Run   - $b000        |
|Memhi - $9000        |
|                     |
|SHIFT+BREAK - wyj¶cie|
*---------------------*

     opt %10101

     org $b000

txl  equ $9000
tabl equ $9100
sin  equ $9200

mn   ldx #$1f
     ldy #0
sim  lda sina,y
     sta sin,y
     sta sin+$40,y
     sta sin+$80,y
     sta sin+$c0,y
     sta sin+$20,x
     sta sin+$60,x
     sta sin+$a0,x
     sta sin+$e0,x
     dex
     iny
     cpy #$20
     bne sim

     ldy #8
     lda #$ef
c1   sta txl,y
     sta txl+15,y
     sta txl+30,y
     sta txl+45,y
     sta txl+60,y
     sec
     sbc #$22
     dey
     bne c1
     lda #$fe
c2   sec
     sbc #$22
     sta txl+9,y
     sta txl+24,y
     sta txl+39,y
     sta txl+54,y
     sta txl+69,y
     iny
     cpy #7
     bne c2

     ldy #0
k2   ldx #2
km   lda wzr,x
     sta dl,y
     sta dl+252,y
     sta dl+252+252,y
     iny
     dex
     bpl km
     cpy #253
     bne k2
     dey
     dey
k3   inx
     iny
     lda nd,x
     sta dl+252+189-60,y
     cpx #2
     bne k3
     lda #$40
     sta $26f
     lda #$23
     sta $22f
     lda <dl_
     sta $230
     lda >dl_
     sta $231
ptl  ldy #0
sk1  lda sin
     clc
sk2  adc sin+10
     sta tabl,y
     inc sk1+1
     inc sk2+1
     iny
     bne sk1
     inc sk1+1
     inc sk1+1
     inc sk2+1
     ldx #0
sn1  lda tabl,x
     sta dl+1,y
     sta dl+196,y
     sta dl+196+195,y
     iny
     iny
     iny
     inx
     cpy #255
     bne sn1
cz   lda $d40b
     bne cz
     beq ptl

sina dta c'±±±ć榦ę꼼łłŃŃń'
     dta c'ńńóóó'

wzr  dta b($4f),b($90),b(0)
nd   dta b($41),a(dl)
dl_  dta c'pp'

dl   equ *

     org $2e0
     dta a(mn)

     End of file

  
*------------------------------------*
|             254b point             |
|            Ars/Aids '98            |
|             Serious #4             |
*------------------------------------*
|Run   - $b000                       |
|Memhi - $9000                       |
|                                    |
|SHIFT+BREAK - wyj¶cie               |
*------------------------------------*
|                                    |
|Od Jager'a:                         |
|                                    |
|Aby bez problemu  można było odpalić|
|program w QA troszeczkę go zmieniłem|
|pozostawiaj±c jednak  oryginaln± po-|
|stać programu. Tak więc nieco go wy-|
|dłużyłem                            |
|                                    |
|Jeżeli chcesz mieć oryginał to:     |
|                                    |
|1. Zmień adres fontów (etykieta FNT)|
|   na $4000                         |
|                                    |
|2. Usuń:                            |
|                                    |
|   Jsr Init (linia 47)              |
|   cał± prockę INIT                 |
|                                    |
|3. Usuń gwiazdkę w linii 54         |
*------------------------------------*

     opt %10101

     org $b000

iocb equ $340
scr  equ $9040
lo   equ $9500
hi   equ $9600
sin  equ $9700
fnt  equ $b800 |$4000

h0   equ $80
w    equ $82

     jsr Init  |

run  lda >scr
     sta $bc25
     lda >fnt
     sta $bc24
     sta 756
*    sta $26f  |

     ldy #$1f
     ldx #0
sim  lda sina,x
     clc
     adc #1
     sta sin,x
     sta sin+$40,x
     sta sin+$80,x
     sta sin+$c0,x
     sta sin+$20,y
     sta sin+$60,y
     sta sin+$a0,y
     sta sin+$e0,y
     dey
     inx
     cpx #$20
     bne sim

     ldx #5
     iny
     tya
de1  sta scr,y
     iny
     bne de1
     inc de1+2
     dex
     bne de1

fn2  ldx #7
fn1  sta fnt,y
     iny
     dex
     bpl fn1
     clc
     adc #$11
     bcc fn2

     ldx #0
k1   lda >scr
     sta hi,x
k2   lda <scr
     sta lo,x
     adc #40
     sta k2+1
     bcc *+5
     inc k1+1
     inx
     bne k1

p1   lda sin+10
     asl @
     tay
p3   lda sin+2
p4   adc sin+4
     tax
     lda lo,x
     sta h0
     lda hi,x
     sta h0+1
     lda #$f
     sta (h0),y
     iny
     sta (h0),y
     tya
     adc #39
     tay
     lda #$f
     sta (h0),y
     iny
     sta (h0),y
     inc p1+1
     inc p3+1
     inc p3+1

     ldx #4
     ldy #0
fr1  lda scr,y
fr2  adc scr+39,y
fr3  adc scr+40,y
fr4  adc scr+41,y
     lsr @
     lsr @
fr5  sta scr,y
     iny
     bne fr1
     inc fr1+2
     inc fr2+2
     inc fr3+2
     inc fr4+2
     inc fr5+2
     dex
     bne fr1

     lda >scr
     sta fr1+2
     sta fr2+2
     sta fr3+2
     sta fr4+2
     sta fr5+2
     bne p1

sina dta c'±±±ć榦ę꼼łłŃŃń'
     dta c'ńńóóó'

Init Equ *
     ldx #$10      |Graphics 0
     lda #3        |
     sta iocb+2,x  |Zobacz programowa-
     lda <e        |nie procesora 6502
     sta iocb+4,x  |czę¶ć 12 (w tym
     lda >e        |numerze Serious.
     sta iocb+5,x  |
     lda #12       |
     sta iocb+10,x |
     jsr $e456     |
     lda #12       |
     sta iocb+2,x  |
     jsr $e456     |

     lda #$40
     sta $26f
     rts

e    dta c'E:',b($9b)

*    org $2e0
*    dta a(run)

     End of file

  
*---------------------*
|   245b 3d vector    |
|    4 Serious #4     |
|   Ars/Ads 2.1.99    |
*---------------------*
|Run   - $b039        |
|Memhi - $b000        |
|                     |
|SHIFT+BREAK - wyj¶cie|
*---------------------*

     opt %10101

i    equ $340
_x   equ $b200
_y   equ $b300
x1   equ 91
y1   equ 90
x2   equ $55
y2   equ $54
col  equ $2fb
h3   equ $80
x    equ 80
y    equ 10

     org $b000

scr  dta c'S:',b($9b)
__x  dta c'T\dhptxtphd\'
     dta c'TLD<40,((,48'
     dta c'@HP'
__y  dta c'TTTPPLH@<<88'
     dta c'88888<@DLPPT'
     dta c'TTX'

* kopiowanie prekalkowanych
* współrzędnych.
run  ldy #26
r    lda __x,y
     sta _x,y
     sta _x+26,y
     lda __y,y
     sta _y,y
     sta _y+26,y
     dey
     bpl r

* inicjacja trybu graficznego
     ldx #16
     lda #0
     sta i+4,x
     lda >scr
     sta i+5,x
     lda #3
     sta i+2,x
     lda #6
     sta i+11+16
     jsr $e456
     dex
     stx col

* główna pętla
lup_ ldy #0
lup  sty h3
     jsr $f420
     ldy h3
     lda _x,y
     sta x1
     lda _y,y
     sta y1
     lda _x+9,y
     sta x2
     lda _y+9,y
     sta y2
     jsr drw
     lda _x+18,y
     sta x1
     lda _y+18,y
     sta y1
     jsr drw
     lda _x,y
     sta x2
     lda _y,y
     sta y2
     lda _x+18,y
     sta x1
     lda _y+18,y
     sta y1
     jsr drw
     lda _x,y
     sta x2
     lda _y,y
     jsr pwt
     lda _x+18,y
     sta x2
     lda _y+18,y
     jsr pwt
     lda _x+9,y
     sta x2
     lda _y+9,y
     jsr pwt
     iny
     cpy #25
     bne lup__
     beq lup_
lup__ jmp lup

* wyw. systemowej procy drawto
pwt  sta y2
     lda #x
     sta x1
     lda #y
     sta y1
drw  sty h3
     ldx #$10
     lda #17
     sta i+2+16
     jsr $e456
     ldy h3
     rts

     org $2e0
     dta a(run)

     end of file