 
 EDIT: Fixade en bugg, glömde uppdatera vilket EPROM som skulle läsas.
Kod: Markera allt
        NAM     PROM
*
*
* PROGRAMMET L[SER NED PROMBASERADE PROGRAM
* TILL RAM
*
* F\RUTS[TTER PROM P] KORT 836
* H[R ANV[NDS F\LJANDE:
* PROMKORT P] ADRESS $E0B0
* RAM P] ADRESS $E400-E4FF
*
* PROGRAMMET I PROM SKALL HA F\LJANDE UTFORMN.:
* BYTE 1 OCH 2 = SISTA PROMADRESS - T.EX. 02AE
* BYTE 3 OCH 4 = F\RSTA RAMADRESS - T.EX. C100
* BYTE 5 OCH 6 = TRANSFERADRESS   - T.EX. C100
*
* MODIFIERAT F\R MICKES PROMKORT 836
* AV MICKE 2024-04-30
* 
* PROGRAMMET SKRIVET AV GUNNAR EJEMOH
*
* KALLA UPP PROGRAMMET MED GET.PROM
*
*
EPROM   EQU     $E0B0
COMTAB  EQU     $E400
JMPTAB  EQU     $E500
LADDA   EQU     $E600
RAM     EQU     JMPTAB+$F0
WARMS   EQU     $CD03
PROMVAL EQU     2
*
        ORG     RAM
PRMSTA  RMB     2         1:A PROMADRESS
PRMSTO  RMB     2         SISTA PROMADRESS
RAMSTA  RMB     2         1:A RAMADRESS
TRNSFR  RMB     2         TRANSFERADRESS
ENDADR  RMB     2
*
* L[GG IN ADRESS TILL KOMMANDOTABELL I FLEX
*
        ORG     $CC12
        FCB     $E4       TABELL I RAM P] $E400
*
        ORG     COMTAB
* H[R SKRIVS ALLA KOMMANDON IN SOM LIGGER I PROM
* EFTER SISTA KOMMANDOT SKRIVS 0
*
        FCC     'ASN'
        FCB     0
        FDB     JMPTAB
        FCC     'COPY'
        FCB     0
        FDB     COPY
        FCC     'DATE'
        FCB     0
        FDB     DATE
        FCC     'CAT'
        FCB     0
        FDB     CAT
        FCC     'DELETE'
        FCB     0
        FDB     DELETE
        FCB     0
*
        ORG     JMPTAB
* H[R FINNS STARTADR. TILL ALLA PROGRAM I PROM
* X SKA INNEH]LLA STARTADRESSEN F\R PROGRAMMET
* B SKA INNEH]LLA 1, 2 ELLR 3 = VILKET EPROM
* LIGGER PROGRAMMET P]
*
        PSHS    X,Y,A,B   SPARA UNDAN REGISTER
        LDX     #$0000    F\RSTA PROMADRESSEN
        LDB     1         F\RSTA PROMET
STORE   STX     PRMSTA    L[GG I PRMSTA
        JMP     LADDA     HOPPA
*
COPY    PSHS    X,Y,A,B
        LDX     #$54E0
        LDB     2         ANDRA PROMET
        BRA     STORE
*
DATE    PSHS    X,Y,A,B
        LDX     #$62C0
        LDB     1
        BRA     STORE
*
CAT     PSHS    X,Y,A,B
        LDX     #$68CA
        LDB     1
        BRA     STORE
*
DELETE  PSHS    X,Y,A,B
        LDX     #$0000
        LDB     3         TREDJE PROMMET
        BRA     STORE
*
*
        ORG     LADDA
* H[R L[SER VI IN
* STOPPADRESS
* RAMADRESS
* TRANSFERADRESS
*
        LDY     #PRMSTO
        LDX     PRMSTA    STARTADRESSEN I EPROM
LADDA2  BSR     LESPRM    L[S FR]N EPROM BYTE 1
        BSR     LESPRM    L[S FR]N EPROM BYTE 2
        CMPY    #ENDADR   [R VI KLARA?
        BNE     LADDA2    NOPE, LOOPA
*
* H[R L[SES SJ[LVA PROGRAMMET IN
*
        LDX     PRMSTO    STOPPPADRESSEN
        INX               \KA X
        STX     ENDADR    LAGRA I ENDADR
        LDX     PRMSTA    L[GG PRMSTA I X
        LDY     RAMSTA    VART I MINNET SKA DET TILL
        LEAX    6,X       HOPPA FRAM 6 POS F\RBI STARTINFO
        STX     PRMSTA    L[GG I PRMSTA = SJ[LVA PROGGET
LADDA3  BSR     LESPRM    L[S IN EN BYTE
        CMPX    ENDADR    [R VI KLARA?
        BNE     LADDA3    NOPE, LOOPA IGEN
        PULS    X,Y,A,B   ]TERST[LL REGISTER
        JMP     [TRNSFR]  OCH HOPPA TILL STARTADRESSEN
*
* H[R L[SER VI IN DATA FR]N EPROM
*
LESPRM  CMPB    PROMVAL   VILKET EPROM SKA ANV[NDAS
        BMI     PROM1     MINDRE [N 2 = PROM #1
        BEQ     PROM2     LIKA MED 2 = PROM #2
        BGT     PROM3     ST\RRE [N 2 = PROM #3
*
PROM1   STX     EPROM     F\RSTA EPROMET
        LDA     EPROM     L[S DATA
        BRA     LAGRA     LAGRA I RAM
PROM2   STX     EPROM+$10 ANDRA EPROMET
        LDA     EPROM+$10 L[S DATA
        BRA     LAGRA     LAGRA I RAM
PROM3   STX     EPROM+$20 TREDJE EPROMET
        LDA     EPROM+$20 L[S DATA
        BRA     LAGRA     LAGRA I RAM
*
LAGRA   STA     ,Y+       SPARA TILL MINNET, ÖKA MED 1
        INX               N[STA POSITION
        RTS               ]TERG]
*
        END
 
				

 
 