256 Bajtów...


      Ostatnimi czasy pojawiło się na naszej scenie całe multum programików, o długości nie przekraczającej 256 bajtów. Są to właściwie tak jakby pojedyńcze efekty. Oczywiście każdy w miarę swoich umiejętności i swojej pomysłowości kombinuje co się da. Niewielu jest jednak ludzi, którzy decydują się na ujawnienie swoich tajemnic warsztatowych. Dla każdego kto próbował pisać jakieś programy sprawą oczywistą jest, że taka "tajemnica" to w zasadzie nic innego niż tekst źródłowy danego programu. Czasami sam tekst nie jest wystarczający do skompilowania z niego gotowego programu i tu dochodzimy do jeszcze większych tajemnic, czyli tak zwanych "bibliotek". Czasami jednak autorzy udostępniają swoje źródłówki szerszemu gronu ludzi i wtedy różnie może się zdarzyć. Może zdarzyć się tak jak w przypadku playera do modułów muzycznych z MPT autorstwa Jaskiera, że wszyscy grzecznie wypisują czyją procedurą się posłużyli, a może również zdarzyć się inaczej. Tutaj, przyznam się szczerze, że podziwiam Krógera za ujawnianie swoich źródłówek pomimo przykrych "przejść". A może to tylko stugębna plotka...

      Tymniemniej zafascynowany tymi krótkimi programikami Króger zdecydował się na umieszczenie w SERIOUS'ie takiego programiku, ale i jego tekstu źródłowego. Każdy z nas, nawet Ci mniej biegli w analizie kodu mogą sobie zobaczyć jaką metodą Króger osiągnął ten wspaniały efekt. Udało mi się umieścić tutaj także programik ze znacznie skromniejszym efektem, ale za to z tekstem źródłowym innego już jednak autora.

      Nie chcę tu ogłaszać żadnych konkursów, bo takie ogłaszanie z reguły nie daje pożądanych efektów i kończy się porażką. Jednak wszystkich chętnych do pokazania swoich 256-bajtowców i ich źródłówek serdecznie zapraszam na łamy naszego magazynu. A wszystkich czytelników zapraszam do pliku ze stuff'em i do obejrzenia sobie efektów zakodowanych w plikach TINY01.COM oraz BULKI.COM, a także przestudiowania ich źródłówek.

Zbycho Jabol/DIAL

Od Jager'a: Poniżej zamieszczam obie źródłówki, ale także znajdziecie je w pliku SSTUFF3.ARC. Niestety pierwsza z nich zatytułowana "BULKI" była niekompletna tz. brakowało biblioteki: EQU.ASM. Aby jednak każdy mógł uruchomić z poziomu QA ten pogram, uzupełniłem źródłówkę o brakujące etykiety. Aby nie niszczyć pierwotnego wyglądu niczego nie kasowałem, a jedynie "zaremowałem".

Na przyszłość proszę wszystkich o staranniejsze przeglądanie materiałów przysyłanych do redakcji, a już w szczególności źródłówek!

Króger! Tobie można wybaczyć...

*--------------------------*
|         "BULKI"          |
|          ,               |
| autor: Kroger/Quasimodos |
|                          |
|   SERIOUS MAGAZINE #3    |
|                          |
| uzupelnienie: Jager/Dial |
|                          |
| RUN  :$9000              |
| MEMHI: $9000             |
|                          |
| Dowolny klawisz-wyjscie  |
*--------------------------*

     opt %10101

*    icl 'D2:EQU.ASM'
*    opt list_err+code_dsk

poczatek Equ $9000
a        Equ $9400

Colpf2   Equ $02c6
Chbas    Equ $02f4
Kbcode   Equ $02fc
llosowa  Equ $d20a
ClrScr   Equ $f420

rtclock  Equ $14
SavMsc   Equ $58
x        Equ $80
y        Equ $81
z        Equ $82
p        Equ $83

     org poczatek

*-wyczysc ekran

jsr clrscr
lda #$0
sta colpf2

*-nowy font

st Equ *
lda >a
sta chbas

*-w ktorym wierszu?

* s1 Equ *
* lda llosowa
* ora %00001111
* sta litery

s11 Equ *
ldx llosowa
cpx #23
bcs s11

*-przelicz to na miejsce w pamieci ekranu.

lda savmsc
sta x
lda savmsc+1
sta y
clc
s2 Equ *
lda x
adc #39
sta x
lda y
adc #0
sta y
dex
bpl s2

*-ktora pozycja w wierszu?

s3 Equ *
lda llosowa
cmp #39
bcs s3
clc
adc x
sta x
bcc s4
inc y

*-wypisz literke

s4 Equ *
ldx z
lda t1,x
sta (x),y
dex
stx z
bpl s5
lda #5
sta z
bne st
s5 equ *
lda rtclock
adc #5
s6 Equ *
cmp rtclock
bne s6
ldx kbcode
inx
beq s4
dex
stx kbcode
lda #$e0
sta chbas
lda #$94
sta colpf2
jmp ($a)

t1 dta b(0),b(4),b(3),b(2),b(1),b(0)

org a

dta b(%00000000)
dta b(%00000000)
dta b(%00000000)
dta b(%00000000)
dta b(%00000000)
dta b(%00000000)
dta b(%00000000)
dta b(%00000000)

dta b(%00000000)
dta b(%00000000)
dta b(%00000000)
dta b(%00011000)
dta b(%00011000)
dta b(%00000000)
dta b(%00000000)
dta b(%00000000)

dta b(%00000000)
dta b(%00000000)
dta b(%00011000)
dta b(%00100100)
dta b(%00100100)
dta b(%00011000)
dta b(%00000000)
dta b(%00000000)

dta b(%00000000)
dta b(%00010100)
dta b(%00000010)
dta b(%01000000)
dta b(%00000010)
dta b(%01000000)
dta b(%00010100)
dta b(%00000000)

dta b(%00100100)
dta b(%00000000)
dta b(%10000001)
dta b(%00000000)
dta b(%00000000)
dta b(%10000001)
dta b(%00000000)
dta b(%00100100)

End of file

      Poniżej znajduje się kolejny program także autorstwa Króger'a. Tym razem źródłówka jest w oryginalnej postaci (prawie - tz. zrobione były tylko zabiegi kosmetyczne).

*--------------------------*
|        "TINY 01"         |
|        250 bytes         |
|          ,               |
| autor: Kroger/Quasimodos |
|          VII-VIII 1998   |
|                          |
| RUN  : 9309              |
| MEMHI: 9000              |
|                          |
| This source is freeware! |
|                          |
|   SERIOUS MAGAZINE #3    |
|                          |
| Powrot do QA-SHIFT+BREAK |
*--------------------------*

     opt %10101

plot equ $80
ma   equ $82
mk   equ $83
y    equ $84
ek   equ $85

rand equ $d20a

ekr  equ $a000
tab1 equ $9800
tab2 equ $9900
tab3 equ $9a00
tab4 equ $9b00
tab5 equ $9c00
bit  equ $9d00
bajt equ $9e00

     org $9309

ldy #127
lda #15
l0 equ *
sta dl2-1,y
dey
bne l0
sty 710
sty ek
sty $230
lda >dl1
sta $231
lda #65
sta dl2+127
lda #33
sta 559

l1 lda #$80
l2 sta bit,y
iny
beq k00
lsr @
bcc l2
bcs l1

k00 equ *
tya
k0 ldx #8
k1 sta bajt,y
pha
iny
beq jj0
dex
bne k1
adc #1
bne k0

jj0 equ *
pla
lsr @
adc #2
sta tab5,y
iny
bne jj0

l3 equ *
lda rand
and #$7f
sta tab1,y
lda #63
sta tab2,y
jsr bll
dey
lda rand
and #$3f
sta tab2,y
lda #127
sta tab1,y
jsr bll
dey
bne l3

h0 equ *
lda #0
sta plot
ldx h1+1
lda tab3,x
sta ma
adc tab5,x
sta tab3,x

lda tab2,x
jsr mnoz
sta y
lda tab1,x
jsr mnoz

h1 bit tab4
bmi h3
eor #$80
tax
bvs h4
bne hi0

h3 equ *
eor #%1111111
tax
bvs h4
hi0 equ *
lda y
adc #64
bne h5
h4 equ *
lda #64
sbc y
h5 equ *
lsr @
ror plot
lsr @
ror plot
lsr @
ror plot
adc >ekr
sta plot+1
ldy bajt,x
lda (plot),y
ora bit,x
sta (plot),y
inc h1+1
bne h0
lda >ekr-$100
sta ek+1
ldx #$10
lda #0
h6 sta (ek),y
dey
bne h6
inc ek+1
dex
bpl h6
jmp h0

bll equ *
lda rand
sta tab3,y
lda rand
and #$c0
sta tab4,y
rts

mnoz equ *
sta mk
ldy #8
mn0 lsr mk
bcc mn1
adc ma
mn1 ror @
dey
bne mn0
rts

dl1 dta b(79),a(ekr)
dl2 equ *

End of file