AtariST assembler

Diskussioner om Atari, Apple II, ZX Spectrum, Amstrad CPC, NES, SNES, Megadrive och mer...

Moderatorer: Fanta_gbg, e5frog, stonan, Zlasher

AtariST assembler

Inläggav Redreamer » 7 februari 2019, 10:09

Jag har pysslat lite med jackintosh. Jäkligt klurigt även om jag tycker att min c64 assemblerkunskap borde haft lite nytta. Idag sitter jag och klurar på varför jag inte får detta lilla egenskrivna "hello world" att fungera. Klurar nog ut det snart. Försökt med lite varianter, som att peka direkt på texten ist för att gå genom pekare, men då fick jag som bäst vart annat tecken om jag bytte till "move.w (a1)+,-(a7)"

Kod: Markera allt
         
   move.w   #10,d1      ;loop
   lea   text,a1                     
loop      
   move.b   (a1)+,-(a7)   ;move char to stack
   move.w   #2,-(a7)   ;call send character to prompt
   trap   #1
   addq.l   #4,a7

   dbf    d1,loop

   move.w   #1,-(a7)   ;wait for input
   trap   #1
   addq.l   #2,a7
   
   clr.l   -(a7)      ;exit
   trap   #1

text   dc.b   "Hello world"
text_pointer   dc.l   text


Svaret var...
Kod: Markera allt
   lea   text,a1                     
loop   
   move.b   (a1)+,d2      
   move.w   d2,-(a7)   ;move char to stack
   move.w   #2,-(a7)   ;call send character to prompt
   trap   #1
   addq.l   #4,a7
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1241
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Re: AtariST assembler

Inläggav bjonte » 8 februari 2019, 22:29

Det var en överraskning att du har börjat knåpa på Atari!
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1655
Blev medlem: 17 april 2006, 23:12

Re: AtariST assembler

Inläggav Redreamer » 9 februari 2019, 15:16

Jo, visst är det! Eller egentligen inte. Hade tanken med att köra lite c programmering på atarin och göra någon "port" på mitt c64'a spel. Men på något sätt så kändes assembler närmare. Har plöjt igenom ett par böcker i lite så där halvdetalj för att få ett hum om och hur man ska hantera Atarin. En sak som var väldig skillnad mot hur jag tänker när jag kör på c64an är hur man använder stacken som en buffer för att passa parametrar mellan funktioner. Framför allt nör man kör en "Trap" op code och kallar på romfunktionerna. Jag har ju aldrig använt rom på 64'an mer eller mindre under assemblerandet. Vet inte varför det skiljer sig egentligen, men jag skulle gissa på att man har så "mycket" ram på en Atari ST och så lite på en c64 så att man mappar ram ist för kernel?! ... Tänkte ett varv till just nu och kom på att jag nog nästan tänkte rätt, Atarin har ju såklart ett större adressområde och har inte upplägget med ram bakom rom, men nu killgissar jag bara :P

Får se hur länge jag står ut, Tycker 64'a assembler är mycket mer läsbar, men det är ju inte så konstigt. Men det är nyttigt att få en annan vinkel tycker jag, inte minst för hur det är upplagt med videominnet och avsaknad av riktiga sprites.
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1241
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Re: AtariST assembler

Inläggav mib5150 » 16 februari 2019, 13:30

Oy! 68K Assembler på Atari har jag försökt ge mig på flera gånger... ibland har jag dessutom gjort framsteg.

sak.nu kan verka helt död, men släng gärna upp en tråd där. Exv PeP eller någon annan assemblerkunnig kanske svarar.

(Idag har vi dessutom börjat diskutera hack... dock har min retrodatortarm dessvärre legat i träda på sistone... får se om den här tråden väcker den till liv igen?!)
Användarvisningsbild
mib5150
Erfaren gesäll
Erfaren gesäll
 
Inlägg: 244
Blev medlem: 24 augusti 2006, 15:54

Re: AtariST assembler

Inläggav bjonte » 16 februari 2019, 13:46

mib5150 skrev:(Idag har vi dessutom börjat diskutera hack... dock har min retrodatortarm dessvärre legat i träda på sistone... får se om den här tråden väcker den till liv igen?!)


Skärpning! Jag får inte mycket gjort här så se till att anordna ett hack för hånken så jag blir klar med något någon gång.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1655
Blev medlem: 17 april 2006, 23:12

Re: AtariST assembler

Inläggav Redreamer » 20 februari 2019, 19:35

Ja, ett hack hade allt varit på sin plats! Jag kommer nog dessvärre inte kunna deltaga mer än möjligtvis över en dag eller så. jag å sambon ska fullständigt slå ihop påsarna i maj så det är en hel del planering och arbete inför det. Men en dag borde nog gå att få loss =)

Angående atari assemblerandet så har det gått långsamt framåt. Jag har varit lite risig och varit hemma från jobbet men orkat med lite kodande. Idag fick jag till en text som skrivs ut över en bild. Texten består av bildelement skapade i "fudd-ed", ett atariprogram, hittar inget mordernare program för tillfället. I alla fall så är det en inmatad textsträng i assemblern som sedan bygger upp texten. Mitt nästa mål blir nog att få den att scrolla. Dont mind färgerna, de är gjorda för att matcha texten, inte bilden. sedan gjorde jag texten i all hast, orkade inte få dem snygga liksom.
Bilagor
atari1.jpeg
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1241
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Re: AtariST assembler

Inläggav bjonte » 21 februari 2019, 07:40

Har Atarin något finscrollregister som du kan leka med för att göra scrollande enkelt?
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1655
Blev medlem: 17 april 2006, 23:12

Re: AtariST assembler

Inläggav Redreamer » 21 februari 2019, 09:40

Nej. Inga finscrollregister. Det finns visst stöd för 16x16 bitars sprite, men det är i mjukvara. Så man kan lika gärna skriva funktionen för dem själv. Eller ja, det exemplet jag kikade på gjorde så. Annars vet jag inte, man vorde nog använda de inbyggda rom funktionerna i så stor utsträckning som möjligt.

Angående scrollandet så blir det en hederlig rol shiftning. Lite extra puligt med bit-planen. Men jag börjar lära mig att hantera dem.
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1241
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Re: AtariST assembler

Inläggav Redreamer » 28 februari 2019, 22:44

Det scrollar ju lite nu. Men inte riktigt som jag vill. Kan av någon anledning inte scrolla en hel rad. Jag har ställt en fråga på AtariAge forumet, får se om de kan hjälpa mig. https://drive.google.com/open?id=1C1tCY_SOiULPNKy5RBeK5ZB0-eGo6HiJ

mib5150, jag ska fundera på att lägga upp på sak sen, men just nu kör jag på atariage.
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1241
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Re: AtariST assembler

Inläggav bjonte » 1 mars 2019, 10:28

Kan du posta en kodsnutt, om den inte är för lång, så kanske det går att hjälpa till.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1655
Blev medlem: 17 april 2006, 23:12

Re: AtariST assembler

Inläggav bjonte » 1 mars 2019, 10:28

Jag kan ju inget om Atari men jag har i alla fall programmerat 68000.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1655
Blev medlem: 17 april 2006, 23:12

Re: AtariST assembler

Inläggav Redreamer » 1 mars 2019, 12:44

Jag försöker flytta det 4 bitplanen pixel för pixel åt vänster. Men får något konstigt fel när jag kör alla 20 word som bygget ETT bitplan i för en linje. Något blir ju ur synk. Ska försöka få igång debuggern som av någon anledning inte längre vill köra min kod...
För den nyfikne då, så ser min kod ut såhär, har fått tips på optimering på Atari forumet. Men just nu vill jag mest veta varför min metod inte fungerar just nu.

Kod: Markera allt
scroll
    move.w    #2,-(a7)    ;get screen address 
    trap    #14                 ;0  1  2  3,  4   5  6  7, ... ,  16   17   18   19
                            ;0  2  4  6,  8  10 12 14, ... ,  32   34   36   38
    addq.l    #2,a7;            ;0  8 16  24,32  40 48 56, ... , 128  136  144    152
    move.l    d0,scrolladr
    add.l    #152,scrolladr   ;add to get to last word, first bit plane

    move.l    #256,d7
scroll_loop
    move.l    scrolladr,a6

    move.w    #37,-(a7)    ;wait for vbl   
    trap    #14
    addq.l    #2,a7

    move.l  #15,d4     ;set rows to shift
bploop_resd5
        move.l  #3,d5  ;set bitplanes to shift
bploop_resd6
        move.l  #18,d6 ;set words width for each row (one bit plane at the time)
        asl.w    (a6)
        addq    #8,a6
bploop
        roxl.w     (a6)       
        subq.l    #8,a6
        dbf     d6,bploop

        add.l   #152,a6    ;jump to start. (at the end)
    addq.l    #2,a6         ;inc to next bitplane
        dbf     d5,bploop_resd6   
        add.l   #152,a6
        dbf     d4,bploop_resd5

    dbf    d7,scroll_loop
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1241
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Re: AtariST assembler

Inläggav bjonte » 1 mars 2019, 17:29

Det verkar inte riktigt gå ihop. Se till att en pixelrad roteras rätt först och utöka till flera sedan. roxl roterar ett word så du borde går två byte i taget och rotera 20 ggr för att göra hela raden. Det borde väl bli något sådant:

Kod: Markera allt
  move.l #19,d6
loop:
  roxl.w (a6)
  subq.l #2,a6
  dbf d6,loop
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1655
Blev medlem: 17 april 2006, 23:12

Re: AtariST assembler

Inläggav bjonte » 1 mars 2019, 17:39

Om du nyttjar att det går att automatisk ändra adressen allteftersom du stegar igenom minnet så kan du sätta a6 till efter radens slut och använda -(a6) för att minska a6 med 2 och rolla innehållet efteråt.

Kod: Markera allt
  equ screen_width = 320
  equ bytes_per_row = screen_width / 8
  equ words_per_row = bytes_per_row / 2

  ; a6 är skärmadressen
  moveq #words_per_row-1,d6
  addq #bytes_per_row,a6
loop:
    roxl.w -(a6)
  dbf d6,loop
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1655
Blev medlem: 17 april 2006, 23:12

Re: AtariST assembler

Inläggav bjonte » 1 mars 2019, 17:52

Eftersom du är tillbaks till början av raden så behöver du flytta dig till nästa bitplan innan nästa loop. Där vet jag inte hur det funkar, om de ligger flätade efter varandra för varje rad eller på något annat sätt.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1655
Blev medlem: 17 april 2006, 23:12

Nästa

Återgå till Andra 8-bitars & 16-bitars TV-spel/datorer

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 1 gäst

Banners

BOA Japon Mediapalatset Nostalgibutiken
Quartex Retro Overlays Retroplay Spel och sånt
Super Motaro Söders Serie & Skivhandel vintagegames.se RG 2016
cron