.org 0C000h
;
.db "MOPS"
;
ld a,030h ; U0,U1,U2,CART lapozás
out (002h),a ; memórialapozás beállítása
exx
ld hl,00048h ; HL' a 0. interfészkártya RAM területére mutat
ld de,00030h
in a,(05Ah) ; kártyaazonosító port beolvasása A reg.-be
ld b,h ; B'= csatlakozó sorszáma (0)
LC012: ld c,a
and 003h
cp 002h ; floppy csatoló keresése a kártyaazonosító bájtban
jr z,LC053 ; ugrás, ha megtalálta
ld a,c ; egyébként az azonosító bájt léptetése a következő kártyahelyre
rrca
rrca
inc b
add hl,de ; HL' a következő csatoló RAM területére mutat
inc h
dec h
jr z,LC012 ; ismétlés, amig nem haladta meg a 4. csatoló memóriacímét
LC022: exx
ld hl,0FFEAh ; HL= -22
add hl,de ; HL= 00322h (DE belépéskor a SYS ROM-ban egy "MOPS" szöveg utánra mutatott)
ld a,020h ; SYS,U1,U2,CART lapozás
out (002h),a ; memórialapozás beállítása
jp (hl) ; visszatérés a rendszer ROM-ba
;
LC02C: .db "VT-DOS "
.db "Copyright (1986) IS Systems Ltd"
LC053: ld a,b ; A reg.= floppy illesztőt tartalmazó csatlakozó sorszáma
rrca
rrca
out (003h),a ; a csatolónak megfelelő IOMEM kiválasztása
ld de,LC02C ; DE= a "VT-DOS " szövegre mutat
ld b,006h
LC05D: ld a,(de) ; szöveg ellenőrzése
cp (hl) ; HL= a diszk illesztő MOPS-os RAM területére mutat
jr nz,LC022 ; visszatérés a ROM-ba, ha nem egyezik (pl. a floppy rendszer nem inicializálódott, vagy nem VT-DOS-os)
inc hl ; összehasonlítandó szövegek mutatóinak növelése
inc de
djnz LC05D ; ismétlés 6 karakterre
ld a,(00B1Bh) ; A reg.= P3RAM változó
or a
jr nz,LC022 ; ugrás, ha hibás az U3-as RAM lap (vagy csak 32kB-os a gép)
ld a,038h ; U3,U1,U2,CART lapozás
out (002h),a ; memórialapozás beállítása
ld hl,LC08B ; HL= átmásolandó memóriaterület kezdete
ld de,PG0ADR(LC08B) ; DE= célcím az U3 RAM-ban a 0. lapon
ld bc,U3COPY_END - LC08B ; BC= másolandó hossz (majdnem a teljes 16kB-os ROM)
ldir ; memóriatartalom átmásolása
ld hl,LFF09 ; HL= megszakításkiszolgáló második lehetséges belépési pontjának címe
ld (PG0ADR(LFDFD +1)),hl ; cím beállítása az LFDFD címen lévő "JP xxxx" utasítás paraméterébe
call PG0ADR(LE644) ; adat betöltése a floppy RAM-ból A reg.-be, megszakítások tiltása
;
.dw 0DFF2h ; DOSCART változó címe
;
or a
jr z,LC022 ; visszatérés, ha DOSCART = 000h
jp PG0ADR(LC08B) ; ugrás a 0.lapon lévő U3 RAM-ba (megegyezik a ROM következő tartalmával)