jAsm

Diskussioner om programmering

Moderatorer: Fanta_gbg, e5frog, stonan, Zlasher, hollowman

Re: jAsm

Inläggav carlsson » 23 december 2015, 09:54

Coolt! Har du någon uppfattning hur många gånger du assemblerade om Bruce Lee 2 under utvecklingsperioden? Handlar det om 300, 500, 1000, 2000, 5000 gånger? Om man assemblerar om ett såpass stort program tusen gånger och i snitt sparar en tiondels sekund på att välja den snabbaste assemblatorn, har man ju totalt sparat in drygt 1,5 minuts dödtid framför datorn när väl projektet är klart! Har man dessutom en klenare PC kanske skillnaden är närmare 4-5 minuter på några månader, upp till ett halvårs utvecklingsarbete. :lol:

Fast du har ju andra, mer intressanta motiv att utveckla en egen assemblator än enbart för hastighetens skull.
Användarvisningsbild
carlsson
VIC-20 Guru
VIC-20 Guru
 
Inlägg: 2313
Blev medlem: 10 oktober 2007, 16:24
Ort: Västerås

Re: jAsm

Inläggav bjonte » 23 december 2015, 13:21

Jag har gjort ungefär 1000 ändringar och varje ändring har förmodligen minst 5 byggen. Så 5000 är kanske rimligt. Dessutom hade jag en långsammare dator då så det kanske tog 1 sekund för DAsm att bygga. Jag byggde tre spel med huvudprogram, intro och 9 streamade kodzoner. Det kanske i runda slängar blir som tre spel med tre huvudprogram. Det blir 9 sekunder. Om jag har gjort det 5000 ggr så har jag kanske väntat i 9*5000/2=22500 sekunder. Jag delar med två för spelet har ju inte alltid varit stort. Om jag hade använt jAsm borde jag ha tjänat 11250 sekunder. Tre timmars väntetid blir det.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1673
Blev medlem: 17 april 2006, 23:12

Re: jAsm

Inläggav carlsson » 27 december 2015, 19:43

Dåså, då finns det ju tid att vinna i framtiden! :)
Användarvisningsbild
carlsson
VIC-20 Guru
VIC-20 Guru
 
Inlägg: 2313
Blev medlem: 10 oktober 2007, 16:24
Ort: Västerås

Re: jAsm

Inläggav bjonte » 27 december 2015, 20:29

Precis. Nu gäller det att snabbt spara in ett halvår så att assemblern lönar sig.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1673
Blev medlem: 17 april 2006, 23:12

Re: jAsm

Inläggav bjonte » 1 januari 2016, 10:29

Jag implementerade automatiska loop- och continuelabels igår men jag våndas över namngivningen. Just nu ser det ut såhär:

Kod: Markera allt
section code, "main", $8000
{
  ldx #5
  {
    lda $9000,x
    beq .continue
    dex
    bpl .loop
  }
  rts
}


Vid vänster krullparentes skapas .loop och vid höger skapas .continue. Allt är bra förutom att jag själv använder "loop" väldigt ofta.

Argumentet för att ha nuvarande namn är att jag helt enkelt inte ska använda loop för de flesta går att ta bort med den här funktionaliteten, men det finns tillfällen då det inte går att använda dem och man måste vara mer explicit. Argumentet mot är att jag reserverar ett välanvänt namn och mer eller mindre tvingar användandet av detta. En medelväg skulle vara att hitta på andra namn som inte krockar men som fortfarande är logiska. Det är svårt. Back/forward, prev/next, up/down, loopback/continue... Inget känns lika klockrent.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1673
Blev medlem: 17 april 2006, 23:12

Re: jAsm

Inläggav bjonte » 1 januari 2016, 12:25

Det lutar åt att jag döper dem till autoloop och autoskip. Kom gärna med synpunkter och förslag.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1673
Blev medlem: 17 april 2006, 23:12

Re: jAsm

Inläggav carlsson » 1 januari 2016, 13:18

Om man skulle nästla loopar, blir det autoloop1, autoloop2 osv? Visserligen bygger väl namnrymden på att etiketterna bara är tillgängliga inom skopet, men ur läsbarhetssynpunkt kan det vålla huvudbry om man på två närliggande ställen har hopp till vad som vid första anblicken ser ut att vara samma, icke namngivna ställe men i verkligheten är två icke namngivna ställen.

Kan man använda någon knepig syntax @{ och @} (alt. @<- och @->) eller skulle sådant bara göra det mer svårläst utan att bidra? Jag tänkte att om referenserna är något som inte godtas som handskrivna etiketter, behöver man inte fundera på om de automatgenererade krockar med sina egna.
Användarvisningsbild
carlsson
VIC-20 Guru
VIC-20 Guru
 
Inlägg: 2313
Blev medlem: 10 oktober 2007, 16:24
Ort: Västerås

Re: jAsm

Inläggav bjonte » 1 januari 2016, 15:38

Bra synpunkter!

carlsson skrev:Om man skulle nästla loopar, blir det autoloop1, autoloop2 osv?


Nej, det blir det inte. Alla heter samma sak så man kan bara hoppa inom den aktuella rymden. Det vore inte omöjligt att numrera men jag är rädd att man inte vet säkert vilken som är vilken.

Den här konstruktionen är rätt så farlig egentligen och bör bara användas på enkla små loopar, inte med en djup hierarki av rymder. Det är väldigt lätt att få oönskat beteende om man flyttar runt saker inne i en loop och helt plötsligt råkar hoppa till fel krullparentes utan något som helst felmeddelande.

carlsson skrev:Kan man använda någon knepig syntax @{ och @} (alt. @<- och @->) eller skulle sådant bara göra det mer svårläst utan att bidra? Jag tänkte att om referenserna är något som inte godtas som handskrivna etiketter, behöver man inte fundera på om de automatgenererade krockar med sina egna.


Det är ju inte så tokigt. Möjligen är det kryptiskt när man börjar använda det. Jag ska fundera på syntaxen.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1673
Blev medlem: 17 april 2006, 23:12

Re: jAsm

Inläggav bjonte » 1 januari 2016, 15:59

Om jag ger mig in i att lägga till ny syntax skulle jag lika gärna kunna använda @loop och @continue.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1673
Blev medlem: 17 april 2006, 23:12

Re: jAsm

Inläggav TBC » 1 januari 2016, 22:53

Varför inte bara ge ett felmeddelande om ett automat-genererat .loop krockar med en egen .loop?
Användarvisningsbild
TBC
Erfaren mästare
Erfaren mästare
 
Inlägg: 304
Blev medlem: 4 september 2008, 16:44

Re: jAsm

Inläggav bjonte » 1 januari 2016, 23:07

Ett felmeddelande blir det såklart. Det handlar mer om huruvida det är okej att reservera loop-ordet eller inte.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1673
Blev medlem: 17 april 2006, 23:12

Re: jAsm

Inläggav bjonte » 2 januari 2016, 18:30

Jag har nu implementerat detta som @loop och @continue. Det är en rätt så bra medelväg.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1673
Blev medlem: 17 april 2006, 23:12

Re: jAsm

Inläggav carlsson » 4 januari 2016, 11:06

Verkar vettigt!
Användarvisningsbild
carlsson
VIC-20 Guru
VIC-20 Guru
 
Inlägg: 2313
Blev medlem: 10 oktober 2007, 16:24
Ort: Västerås

Re: jAsm

Inläggav Redreamer » 21 januari 2016, 14:44

Hur går det för dig, har du fått igenom bruce2 snart? =)
It always return one day!
Användarvisningsbild
Redreamer
Stormästare
Stormästare
 
Inlägg: 1249
Blev medlem: 1 maj 2005, 10:07
Ort: Borås

Re: jAsm

Inläggav bjonte » 21 januari 2016, 16:00

Jepp. Bruce Lee II är nu assemblerat med jAsm och det är binärkompatibelt med versionen assemblerad med DAsm. Jag har skrivit dokumentationen och jag väntar på korrekturläsning innan det kan släppas.
Användarvisningsbild
bjonte
Stormästare
Stormästare
 
Inlägg: 1673
Blev medlem: 17 april 2006, 23:12

FöregåendeNästa

Återgå till Programmering/prog.-verktyg

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