ORG &9000 ; 97 Zeilen NOLIST ; Programm 'LadeBild.MAX' ;In diesem Beispiel wird ein Bild von Laufwerk A geladen ;Das Inhaltsverzeichnis von LW A muss bereits eingelesen sein! ;Lade ein Beispiel-Bild --> Warte auf Tastendruck --> Zurueck zum OS! LADE_BILD LD HL,S80X25:CALL ROM_A ;Setze Bildschirm auf 80 Zeichen & 25 Zeilen LD A,(REG_PC+1) ;A = Quell-Medium von dem das Hauptprogramm gestartet wurde ld a,0 ;In diesem Beispiel wird das Medium = Laufwerk A gesetzt ######### ;Im fertigen Programm muss diese Zeile ^ entfernt werden ######### LD (MEDIUM),A ;Sichere Quell-Medium A..O (0-14) des zu ladenden Bildes LD DE,LBI ;Zeiger auf Namen des Bildes CALL LABI ;Bild laden LD HL,WATA ;Warte auf Tastendruck CALL ROM_C LD HL,S64X32 ;Setze Bildschirm auf 64 Zeichen und 32 Zeilen CALL ROM_A LD HL,TUR_E ;-> Ruecksprung zum OS JP ROM_D ;Name des zu ladenden Bildes ; LBI DB &00,"TEST-PICSCR" ;User-Nummer + Name + Extension ;Name des Quell-Mediums des Bildes ; MEDIUM DB &00 ;Bild nach &C000 laden! ; ;Einsprung ;--------- ; DE = Zeiger auf User + Name + Extent des Bildes ;(MEDIUM) = Quell-Medium des Bildes 0-14 (A-O) ; ;Aussprung ;--------- ;A = &FF --> Bild wurde korrekt geladen ;A <> &FF --> Beim Laden ist ein Fehler aufgetreten LABI LD A,&02:LD (REG08_4),A ;Laden in Hauptspeicher LD HL,&C000:LD (REG16_3),HL ;Ziel-Adresse &C000 = Video RAM LD A,(MEDIUM) ;Quell-Medium LD IX,LADE_N:CALL ROM_A2C ;Lade Bild INC A:JR NZ,LB_ERR ;A<>&FF --> Fehler beim Laden! LD BC,&FA7E:LD A,(MO_ST):OUT (C),A ;Laufwerks-Motoren ausschalten LD A,&FF:RET ;A = &FF --> Bild wurde erfolgreich geladen! ;Fehler beim Laden LB_ERR LD BC,&FA7E:LD A,(MO_ST):OUT (C),A:XOR A,A:RET ;EQUates REG_PC EQU &B8DA ;RAM REG08_4 EQU &B8E0 REG16_3 EQU &B8EA MO_ST EQU &B97F ROM_A EQU &FF00 ;ROMs A-M ROM_C EQU &FF0C ROM_D EQU &FF12 ROM_A2C EQU &FF2A S64X32 EQU &D5A8 ;ROM A S80X25 EQU &D60E WATA EQU &FD38 ;ROM C LADE_N EQU &FD5C TUR_E EQU &FE9D ;ROM D LIST DUMP