Sida 17 av 17

Re: jAsm

InläggPostat: 20 juli 2020, 18:18
av herdware
65CE02 varit en väldigt trevlig processor om den kommit 1978 istf 1988. :P

Re: jAsm

InläggPostat: 20 juli 2020, 20:46
av bjonte
herdware skrev:65CE02 varit en väldigt trevlig processor om den kommit 1978 istf 1988. :P


Ja verkligen. Supersmidigt att zero page ersatts med flyttbar bas så att det blir enklare att komma åt saker via två-byteinstruktioner än hur det gjordes på C128. Fint med ett register till. Väldigt trevligt med word-branch och branch-to-subroutine så att program är enklare att göra relokerbara. Den förenklade stackaccessen gör så att C-funktioner inte blir så himla långsamma att skicka argument till. En-cykel-nop var det också om jag minns rätt.

Det enda som är synd är att WAI inte följde med från 65C02-varianterna. Att reagera på ett interrupt inom en cykel är ju svårt att klå.

Re: jAsm

InläggPostat: 20 juli 2020, 21:05
av Redreamer
@bjonte
Jo så är det nog. Var visserligen inne på wiki och läste lite om ce varianten och där stod det 8/16bit så därför förväxlade jag den med 65816. Vet inte rikrigt varför det stod 8/16 på 65ce02 men den hade ju någon 16 bits utökning för branch instruktioner.

Re: jAsm

InläggPostat: 21 juli 2020, 06:41
av bjonte
Redreamer skrev:Vet inte rikrigt varför det stod 8/16 på 65ce02 men den hade ju någon 16 bits utökning för branch instruktioner.


Det går att lägga ett 16-bitsvärde på stacken i en instruktion också, så det kan kallas 16-bit förstås. Det är jag som har fel, 8/16 är väl rimligt att kalla den.

Re: jAsm

InläggPostat: 21 juli 2020, 21:55
av TBC
Den har också INW/DEW och ASW/ROW som ju är fina 16-bitars instruktioner.

Re: jAsm

InläggPostat: 31 juli 2020, 15:12
av bjonte
Jag upptäckte en muppig sak häromdagen. Jag hade lagt till en include i ett huvudprogram och då fick jag en namnkollision i en annan includefil som hade definierat samma symbol som i första inkluderingsfilen. Så:

main.jasm:
Kod: Markera allt
include "a.jasm"
include "b.jasm"


a.jasm:
Kod: Markera allt
const kollision = false


b.jasm:
Kod: Markera allt
namespace ns
{
    const kollision = 0
    lda #kollision // ambiguous symbol
}


Det är ju gjort såhär för att se till att det aldrig ska vara någon tvekan om vad som är valt, men nu vacklar jag lite. Jag vill ju inte att kod i en egen namnrymd ska behöva ange namnrymden bara för att det kan komma in kolliderande namn från annat håll, i helt andra namnrymder.

Re: jAsm

InläggPostat: 1 augusti 2020, 21:12
av bjonte
I morgon ska jag ge mig på att stödja Mega65-processorn. 45GS02 verkar den heta. Det ser inte ut att vara mycket jobb nu när jag redan har 65CE02 implementerad.

Re: jAsm

InläggPostat: 5 augusti 2020, 11:40
av bjonte
Jag har släppt en version nu som stödjer Mega65-instruktionerna, så långt de är definierade just nu i alla fall. Det lär väl finnas risk att saker tillkommer men jag tror att de tillagda instruktionerna och adresseringsmoderna kommer att vara kvar i alla fall.

Re: jAsm

InläggPostat: 8 augusti 2020, 12:13
av herdware
bjonte skrev:Jag har släppt en version nu som stödjer Mega65-instruktionerna, så långt de är definierade just nu i alla fall. Det lär väl finnas risk att saker tillkommer men jag tror att de tillagda instruktionerna och adresseringsmoderna kommer att vara kvar i alla fall.

Glöm nu inte att kontakta Mega65-folket och berätta om detta.

Re: jAsm

InläggPostat: 8 augusti 2020, 16:57
av bjonte
herdware skrev:Glöm nu inte att kontakta Mega65-folket och berätta om detta.

Mmm, det kanske jag råkar glömma ja. Jag är lite rädd för att få för mycket folk som jagar mig om att göra ändringar. Å andra sidan är det väl inte så troligt att folk byter assembler i en handvändning. :D

Re: jAsm

InläggPostat: 10 augusti 2020, 15:34
av TBC
Jo, jag har också medvetet inte sagt något om JAsm på forumet. Blir bara en massa tjafs, räcker väl att jag är jobbig och kräver saker :)

Re: jAsm

InläggPostat: 10 augusti 2020, 17:34
av bjonte
TBC skrev:Blir bara en massa tjafs, räcker väl att jag är jobbig och kräver saker :)


Hehe, den har ändå blivit mycket bättre på grund av krav från NollKollTroll och dig, TBC, så det är ju positivt. Jag hade aldrig lagt in stöd för Z80 annars. :)

Det är ju ingen hemlis direkt så det är inget som behöver smusslas med. Men de få som använder den nu får mycket personlig support. :D

Re: jAsm

InläggPostat: 4 juni 2021, 07:01
av bjonte
Nu fick jag en idé om hur det skulle vara möjligt att skriva autokonfigurerande moduler. Om det fanns ett sätt att resonera i metaspråket om programmets struktur, typ som att lista alla subrutiner och variabler till exempel så skulle det gå att leta upp alla setup-funktioner och göra en loop som anropar alla. Det går förstås redan att göra detta via någon sorts konvention där det finns en lista med setuprutiner som varje modul lägger till sina egna setupsubrutiner i, men det vore lite trevligt att kunna resonera om programmet i programmet. En enkel variant skulle kunna vara att man kan ange taggar vid export av en symbol och på ett annat ställe få ut en lista på alla symboler som matchar en tagg.

Kod: Markera allt
export["setup"] subroutine init
{
  ...
}

...

for(var .routine in tagged("setup"))
{
  jsr .routine
}