002
26.08.2006, 21:41 Uhr
Alfred
|
Hallo Rolf,
die Sourcen werden den meisten nicht viel bringen, da jeder Monitor eng an die zugehörige Hardware gebunden ist! Anbei aber trotzdem mal die Monitordefiniton:
13F>type mondef.mac
; ; CT180 Monitor - Definitionen ; Filename MONDEF.MAC ; ; 06.03.1987 ; 12.03.1989 ; 18.12.2005 ; 06.01.2006 IDEHD, Cassette ; 07.02.2006 Kosmetik ; 01.05.2006 DRAM Refresh ;
TRUE EQU 0FFFFH FALSE EQU NOT TRUE
flo1 equ true mhz18 equ true
; ; Definition der Systemadressen ;
IOBASE EQU 80h ; HD64180 interne I/O ; if flo1 ; FDC I/O Adresse FLO EQU 30h ; Flo1/FLOP2 else FLO EQU 0c0h ; Flo2 endif
MINSTP EQU 0 ; Mini Steprate (0=6ms) MAXSTP EQU 2 ; Maxi Steprate (0=3ms) ; EXIT EQU 0 ; Adresse IOBYTE EQU 3 ; Adresse INTADR EQU 38H ; Adresse RST7 EQU 38H ; Adresse BUFF EQU 80H ; Adresse BUFFER EQU 0FC00H ; Adresse RETRY EQU 10 ; Fehlerversuche ; BELL EQU 7 CLS EQU 1AH CR EQU 0DH LF EQU 0AH
; ; cmos ramfloppy ; ;ramflo equ 40h
; ; realtime clock ; rtc equ 50h
; ; 8255 PIO Druckerport auf ct180 ; lpio equ 60h pioinit equ 11h strobe equ 01111111b lobusy equ 00001000b
; ; 63B50 ACIA ; ACIA1B EQU 70H ACIA1S EQU ACIA1B ACIA1D EQU ACIA1S+1
; ; 8255 IDE Hostadapter ; pio_ide equ 040h ; PIO I/O Adresse ; pio_lsb equ 0 + pio_ide ; Port A pio_msb equ 1 + pio_ide ; Port B pio_ctl equ 2 + pio_ide ; Port C pio_cfg equ 3 + pio_ide ; I/O modus ; pio_rdw equ 10010010b ; Port A+B input, Port C output pio_wr equ 10000000b ; Port A+B+C output ; ide_a0 equ 00000001b ; A0 direct to IDE HDD ide_a1 equ 00000010b ; A1 dto. ide_a2 equ 00000100b ; A2 dto. ide_cs0 equ 00001000b ; CS0 to Inverter ide_cs1 equ 00010000b ; CS1 dto. ide_wr equ 00100000b ; WR dto. ide_rd equ 01000000b ; RD dto. ide_rst equ 10000000b ; RST dto. ; ide_data equ ide_cs0 ide_err equ ide_cs0 + ide_a0 ide_sec_cnt equ ide_cs0 + ide_a1 ide_sector equ ide_cs0 + ide_a1 + ide_a0 ide_cyl_lsb equ ide_cs0 + ide_a2 ide_cyl_msb equ ide_cs0 + ide_a2 + ide_a0 ide_head equ ide_cs0 + ide_a2 + ide_a1 ide_command equ ide_cs0 + ide_a2 + ide_a1 + ide_a0 ide_status equ ide_cs0 + ide_a2 + ide_a1 + ide_a0 ide_control equ ide_cs1 + ide_a2 + ide_a1 ide_astatus equ ide_cs1 + ide_a2 + ide_a1 + ide_a0 ; ide_cmd_recal equ 010h ide_cmd_read equ 020h ide_cmd_write equ 030h ide_cmd_init equ 091h ide_cmd_id equ 0ech ide_cmd_spindn equ 0e0h ide_cmd_spinup equ 0e1h
; ; hd64180 mode definitionen ; ; mmu
ca equ 11110000b ; f000-ffff - common 1 ba equ 00000000b ; 0000-0000 - common 0 cb equ 0 bb equ 0 ; 10,20,30h... ; = bank 1,2,3...
if mhz18 ; 18,432 mhz
clock equ 9 ; mhz iostop equ 0 memwait equ 01000000b ; 1 Wait(s) iowait equ 00100000b ; 3 Wait(s) refena equ 10000000b ; Enable = 80h refwait equ 0 ; kein wait ref40cy equ 00000011b ; 80 states = 10us
; sio
siocntl equ 60h ; rx + tx enable siomode equ 4 ; 8 daten, 1 stop sioint equ 0 ; keine interupts txready equ 2 rxready equ 80h txempty equ 2
ps equ 20h ; prescaler 0=/10, 20=/30 dr equ 0 ; divide ratio 0=/16, 8=/64
bd0300 equ 6 bd1200 equ 4 bd2400 equ 3 bd4800 equ 2 bd9600 equ 1 bd19200 equ 0
; dma
clrmod equ 0ah dmamod equ 2 dmacntl equ 0 ; keine waits takeof equ 40h
else ; 12,288 mhz
clock equ 6 ; mhz iostop equ 0 iowait equ 0 ; keine waits memwait equ 0 ; dto. refena equ 80h refwait equ 0 ref40cy equ 2
; sio
siocntl equ 60h ; rx + tx enable siomode equ 4 ; 8 daten, 1 stop sioint equ 0 ; keine interupts txready equ 2 rxready equ 80h txempty equ 2
ps equ 0 dr equ 8 ; 0 = /16, 8 = /64
bd0300 equ 5 bd0600 equ 4 bd1200 equ 3 bd2400 equ 2 bd4800 equ 1 bd9600 equ 0
; dma
clrmod equ 0ah dmamod equ 2 dmacntl equ 0 ; keine waits takeof equ 40h
endif
; ende mondef
Grüsse Alfred -- Das Leben ist verdammt kurz (meine Meinung)! |