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