004
17.02.2017, 00:15 Uhr
PIC18F2550
|
Danke für den Tipp maleuma
Ich habe den Code etwas angepasst so ist dieser besser verständlich.
Da die bin Datei größer als 64k wird (1Mb) habe ich den AS etwas umgestrickt.
Quellcode: | if MOMPASS=1 message "*****************************************" message "** **" message "** **" message "** KC85 M042 **" message "** PIC18F2550 (c)2017 **" message "** **" message "*****************************************" endif
CPU Z80
; AS-Funktionen hi function x,(x>>8)&255 lo function x, x&255
CR EQU 0D0Ah
;----------------------------------------------------------------------------------------------- ; Kaltstart ; 8k ROM Segment 4000h-5FFFh ; 4k ROM Segment 6000h-6FFFh ; 4k RAM Segment 7000h-7FFFh ;----------------------------------------------------------------------------------------------- ;----------------------------------------------------------------------------------------------- ; Eigenes Betriebssystem Starten mit JUMP ; 8k ROM Segment E000h-FFFFh ; 4k ROM Segment D800h-DFFFh ; 4k RAM Segment D000h-D7FFh ;-----------------------------------------------------------------------------------------------
;----------------------------------------------------------------------------------------------- ; Initalisierung und treiber bereitstellung ; Speicherbereich 4000h- 4FFFh Codesegment (0000h-0FFF) ; Die Page 0 muss mit JUMP geteit werden da beide dieses Segment anspringen ;----------------------------------------------------------------------------------------------- ORG 00000h PHASE 04000h BOOT: LD A, 02h LD L, 08h ; Modulsteckplatz LD D, 01h ; Modulsteuerbyte CALL 0F003h ; PVI DEFB 26h ; MODU = Modulsteuerung
LD A, 02h LD L, 09h ; Modulsteckplatz LD D, 00h ; Modulsteuerbyte Segment 0 vom 8k EPROM Aktivieren CALL 0F003h ; PVI DEFB 26h ; MODU = Modulsteuerung
LD A, 02h LD L, 0Ah ; Modulsteckplatz LD D, 00h ; Modulsteuerbyte Segment 0 vom 4k EPROM Aktivieren CALL 0F003h ; PVI
DEFB 26h ; MODU = Modulsteuerung LD A, 02h LD L, 0Bh ; Modulsteckplatz LD D, 00h ; Modulsteuerbyte Segment 0 vom 4k SRAM Aktivieren & Blockfreigabe CALL 0F003h ; PVI DEFB 26h ; MODU = Modulsteuerung
CALL 0F003h ; PVI DEFB 23h ; OSTR = Print String DEFB "M042 FUER KC85/3" DEFW CR DEFB "PIC18F2550" DEFW CR DEFB DATE DEFB 00h ;----------------------------------------------------------------------------------------------- ; code ;----------------------------------------------------------------------------------------------- CALL 0F003h DEFB 12h ; Rücksprung zu CAOS ;----------------------------------------------------------------------------------------------- ; Menüerweiterungen ;----------------------------------------------------------------------------------------------- DEFW 7F7Fh DEFB "M042_PROGAMM_1" DEFB 01h LD D, 01h LD HL, 08000h CALL SEG8ROM RET ;----------------------------------------------------------------------------------------------- DEFW 7F7Fh DEFB "M042_PROGAMM_2" DEFB 01h LD D, 01h LD HL, 08100h CALL SEG8ROM RET ;----------------------------------------------------------------------------------------------- DEFW 7F7Fh DEFB "M042_PROGAMM_3" DEFB 01h LD D, 02h LD HL, 08000h CALL SEG8ROM RET ;----------------------------------------------------------------------------------------------- DEPHASE ;----------------------------------------------------------------------------------------------- ; Speicherbereich F000h- FFFFh Codesegment (1000h-1FFF) ; Die Page 0 muss mit Autostart geteit werden da beide dieses Segment anspringen ;----------------------------------------------------------------------------------------------- ORG 01012h PHASE 0F012h JUMP:
LOOP: JP LOOP DEPHASE ;-----------------------------------------------------------------------------------------------
;----------------------------------------------------------------------------------------------- ; Zweiter ROM 4K Die segmente enthalten Kleine Tools oder Treiber ;----------------------------------------------------------------------------------------------- ; Speicherbereich 6000h- 6FFFh Codesegment (0000h-0FFF) ;----------------------------------------------------------------------------------------------- ORG 40000h PHASE 06000h ;----------------------------------------------------------------------------------------------- ; Segmentumschaltung für und Programmansprung den 8k ROM ;----------------------------------------------------------------------------------------------- SEG8ROM:
LD A, 02h LD L, 09h ; Modulsteckplatz ; LD D, 00h ; Modulsteuerbyte Segment 0 vom 8k EPROM Aktivieren CALL 0F003h ; PVI DEFB 26h ; MODU = Modulsteuerung JP HL ;----------------------------------------------------------------------------------------------- END ;-----------------------------------------------------------------------------------------------
|
Ich würde die Menüerweiterungen gern mit kleinen Tools auffüllen. Was könnte da alles noch rein? Es stehen noch 63 Seiten mit je 8k zur Verfügung. -- 42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest" Aktuelle Projektdokumentationen Dieser Beitrag wurde am 17.02.2017 um 00:29 Uhr von PIC18F2550 editiert. |