Autor Wątek: sjasmplus  (Przeczytany 24583 razy)

azesmbog

  • *
  • Wiadomości: 38
  • Miejsce pobytu:
    proszę uzupełnić/please update
sjasmplus
« dnia: 2011.11.18, 15:20:06 »
Istnieje coś takiego? Ruskie pewnie zrobili.

SjASMPlus Z80
+ Crimson Editor + Spectaculator
device zxspectrum128
;------------------------------------------------------------------------------
org #8000
start:
;ld hl,0
loop push hl
ld de,#4000
ld bc,6144
ldir
pop hl
inc l
jr loop


savesna "test.sna" ,start
emptytrd "test.trd"
savetrd "test.trd", "test.C", start, $-start
« Ostatnia zmiana: 2011.11.20, 07:45:42 wysłana przez azesmbog »

Pyza^Illusion

  • *****
  • Wiadomości: 586
  • Miejsce pobytu:
    Lubań, dolnośląskie
Odp: sjasmplus
« Odpowiedź #1 dnia: 2011.11.18, 19:34:21 »
Wszystko fajnie, ale nie robi .TAP'a. Też uważam, że SjASMPlus to świetny kompiler!
ZX Spectrum+ (128kB by STAVI), FDD3000, TI-OF-TTL/ZXVGS, Masterface2b, MacFace II, DivIDE plus, Just Speccy 128...

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: sjasmplus
« Odpowiedź #2 dnia: 2011.11.18, 21:51:09 »
Potwierdzam że jest świetny :)

Mi brakuje w nim jednej rzeczy -  nazwijmy to makro ze zmienną.

Chodzi mi żeby zamiast np pisać

LD A,1
LD A,2
LD A,3
LD A,4

móc napisać coś w stylu

REPT 4 (N=1 TO 4)
LD A,N
ENDR

Inne kompilatory jak Pasmo robią coś takiego, ale ja chcę być wierny Sjasm ;)




Tygrys

  • Administrator
  • *****
  • Wiadomości: 4538
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: sjasmplus
« Odpowiedź #3 dnia: 2011.11.18, 22:20:21 »
Probowalem uzywac sjasmplus, nawet w malym stopniu wsparlem jego rozwoj, niemniej ostatecznie uzywam pasma. ma wszystko co trzeba, robi tapy i to mi wystarczy :-)

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: sjasmplus
« Odpowiedź #4 dnia: 2011.11.19, 10:16:00 »
Azemsbog,

Razreshi shto ya budu pisat po polski. Uvidel shto ty v sostoyanii sdelat perevod :)


DUP albo REPT pozwala kilka razy powtórzyć dany blok instrukcji w niezmienionej postaci

Ja chciałbym, tak jak w przykładzie używać zmiennych w instrukcjach typu LD A,N, ADD A,N, LD HL,NN, OR N, CP N itp. Przykład który podałem jest bardzo prosty i nie ma praktycznego zastosowania, ponadto można go zastąpić jedną instrukcją.

No więc dobrze, niech będzie przykład z życia - szybkie kopiowanie ekranu przez stos bez pętli. Mogłem gdzieś się pomylić bo piszę na szybko z głowy, ale chodzi o ideę.

LD SP,Buffer
POP BC
POP DE
POP HL
EXX
POP BC
POP DE
POP HL
POP AF
LD SP,Screen+14
EXX
PUSH BC
PUSH DE
PUSH HL
EXX
PUSH BC
PUSH DE
PUSH HL
PUSH AF

LD SP,Buffer+14
...
LD SP,Screen+28
...


LD SP,Buffer+28
...
LD SP,Screen+42
...

itd

Czegoś takiego nie da się chyba napisać w bloku DUP albo REPT w Sjasm.

Tygrys

  • Administrator
  • *****
  • Wiadomości: 4538
  • Miejsce pobytu:
    Warszawa
  • mistrz ceremonii
Odp: sjasmplus
« Odpowiedź #5 dnia: 2011.11.19, 17:49:48 »
azesmbog: polish or english, please.

Duddie

  • ****
  • Wiadomości: 402
  • Miejsce pobytu:
    Warszawa
Odp: sjasmplus
« Odpowiedź #6 dnia: 2011.11.19, 19:28:07 »
Tygrys, nie wykluczaj kolegi... Możemy się czegoś ciekawego dowiedzieć. W razie czego mogę tłumaczyć.
ZX Spectrum 48K, ZX Spectrum+, ZX Spectrum 128K, ZX Spectrum +2/+3, Timex 2048, Unipolbrit 2086, FDD3000, Timex Terminal 3000, PlusD, Multiface 128, Multiface +3, divIDE Plus, IF1+microdrive

RafalM

  • *****
  • Wiadomości: 1133
  • Miejsce pobytu:
    Sulejówek
Odp: sjasmplus
« Odpowiedź #7 dnia: 2011.11.19, 22:22:20 »
Ludzie, przecież chyba jesteśmy z pokolenia, które rosyjski miało 4 lata w podstawówce i 4 w szkole średniej. Co wy robiliście przez te 8 lat?  ;)