English Amiga Board


Go Back   English Amiga Board > Support > support.WinUAE

 
 
Thread Tools
Old 30 December 2023, 13:13   #1
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,515
MacroSystem DraCo emulation

Wanted to try something different: MacroSystem Draco (the original, not CasaBlanca).

EDIT: Required configuration

CPU must be 68060 with MMU emulation enabled. A3000 KS 3.1 40.68 ROM, Expansions -> MacroSystem -> DraCo, select Boot ROM v1.3 or v1.5, set RAM (128M is ok). Chipset extra = Draco. Altais RTG board. Set also NVRAM path if you want to keep RTC SRAM data between sessions. Set floppy drive 2 as PC BridgeBoard A: drive, this becomes DraCo drive. Connect HDF you want to boot to "Accelerator (DraCo)" HD controller

Other Amiga chipset specific settings don't matter. If you want to peek around in UAE debugger, type "mmu 1" first to use current MMU mapping in debugger.

04.01.2024 note: DraCo boot ROM -> Accelerator board ROM.

Step 1: NCR 77C32BLT (SVGA chip uses in DraCo and also in Retina Z3. Z2 has older variant) emulation is needed. No one has done it so I had to do it myself. Took few days (No, I won't do any 3D SVGA chips. Don't even attempt to ask). Retina Z2 and Z3 Picasso96 drivers work. (Thanks to IComp and Thomas Richter for help)

Step 2: Hook up parts that Draco Boot ROM needs. A3000 KS 3.1 ROM (must be exactly this, Boot ROM copies this to RAM and patches it, only this ROM works). DraCo boot ROM (don't ask me), v1.3 has been included with ROM scanner ages ago. SuperIO chip is not implemented at all (floppy, serial, parallel etc)

Boot screen appears. Unfortunately it has totally weird size (2790x250, partial screenshot attached). Because drawn image is correct, has matching size values and about middle of the wide image, it probably means size comes from somewhere and it is not SVGA emulation problem. This is early in boot, nothing much has been initialized yet, not even SCSI controller.

Where do the size come from? Some NVRAM? Some extra ROM?

Board have DS2401 serial number chip (probably does not matter that early in boot process?) and DS2404 RTC which does have 256 bytes of battery backed up SRAM. (according to NetBSD sources which seems to be the only place that has very useful low level details of DraCo)

Here is some (mostly useless) information about state of AmigaOS at this point:

Libraries:
401798b8 9 0 40.1 3 utility.library (utility 40.1 (10.2.93))
400a30a4 9 0 2.5 4 dracommu.library (dracommu 2.5 (10.1.96))
4017dbd4 9 0 40.24 1 graphics.library (graphics 40.24 (18.5.93))
40183058 9 0 40.1 1 layers.library (layers 40.1 (15.2.93))
40179d7c 9 -20 40.2 0 expansion.library (expansion 40.2 (9.3.93))
4017a8c0 9 -100 40.10 1 exec.library (exec 40.10 (15.7.93)

Resources:
40179a38 8 0 draco.resource
40179b08 8 0 dracobattclock.resource
40179b70 8 0 FileSystem.resource
40179c5c 8 0 ciaa.resource
40179c9c 8 0 ciab.resource
40179f70 8 0 battclock.resource
40179fb0 8 0 battmem.resource

Memory:
400a3000 10 10 draco memory
Attributes 0507 First 4018b548 Lower 400a3020 Upper 48000000 Free 132598456
4018b548: 4018b548-48000000,00000000,07e74ab8 (132598456)

Note: no chip RAM because no custom chips.

Devices:

Nothing but in some tests I saw timer.device and nothing else.

Resident modules:

4017A4C0 00FCA448: 02 552 09 +110 'expansion.library' ('expansion 40.2 (9.3.93)')
4017A4C4 00F800B6: 02 552 09 +105 'exec.library' ('exec 40.10 (15.7.93)')
4017A4C8 00FCA462: 01 296 00 +105 'diag init' ('diag init')
4017A4CC 00FC0008: 81 33064 09 +103 'utility.library' ('utility 40.1 (10.2.93)')
4017A4D0 4008431C: 01 257 00 +099 'dracospecial' ('dracospecial 1.10 (17.11.95)')
4017A4D4 40083B48: 01 257 08 +097 'draco.resource' ('draco 1.3 (22.12.95)')
4017A4D8 40098F14: 01 257 08 +095 'dracobattclock.resource' ('dracobattclock 1.0 (26.9.95)')
4017A4DC 400826DE: 01 258 09 +085 'dracommu.library' ('dracommu 2.5 (10.1.96)')
4017A4E0 00FC09C4: 01 296 08 +080 'FileSystem.resource' ('filesysres 40.1 (15.2.93)')
4017A4E4 4009D204: 01 295 08 +079 'cia.resource' ('cia 39.10 (12.1.96)')
4017A4E8 40098F2E: 01 296 08 +070 'battclock.resource' ('battclock 40.1 (22.6.95)')
4017A4EC 00F8C1A8: 01 295 08 +069 'battmem.resource' ('battmem 39.2 (6.3.92)')
4017A4F0 00FA3C28: 01 296 09 +065 'graphics.library' ('graphics 40.24 (18.5.93)')
4017A4F4 00F837D8: 81 33064 09 +064 'layers.library' ('layers 40.1 (15.2.93)')
4017A4F8 40085D70: 81 33037 09 +060 'retina.library' ('retina 13.24 (15.11.95)')
4017A4FC 400983B4: 01 257 08 +058 'dracobootpic.resource' ('dracobootpic 1.2 (12.10.95)')
4017A500 4009D374: 01 295 03 +049 'timer.device' ('timer 39.10 (12.1.96)')
4017A504 00F8C3B6: 81 33064 03 +045 'keyboard.device' ('keyboard 40.1 (8.3.93)')
4017A508 00F8698C: 81 33064 09 +040 'keymap.library' ('keymap 40.4 (12.3.93)')
4017A50C 00F8C3E0: 81 33064 03 +040 'input.device' ('input 40.1 (8.3.93)')
4017A510 400851C4: 01 257 08 +035 'dracomouse.resource' ('dracomouse 1.2 (13.12.95)')
4017A514 40099714: 01 257 08 +030 'dracokeyboard.resource' ('dracokeyboard 1.3 (20.12.95)')
4017A518 00FCCCF4: 81 33063 03 +025 'ramdrive.device' ('ramdrive 39.35 (21.5.92)')
4017A51C 4009A22C: 81 33025 08 +021 'dracofdc.resource' ('dracofdc 1.2 (12.1.96)')
4017A520 4009AE94: 01 257 03 +020 'dracodisk.device' ('dracodisk 1.3 (12.1.96)')
4017A524 00FCD30C: 81 33064 09 +010 'intuition.library' ('intuition 40.85 (5.5.93)')
4017A528 40094C6C: 01 257 03 +010 'dracoscsi.device' ('dracoscsi 1.1 (5.10.95)')
4017A52C 00F90248: 81 33064 03 +005 'console.device' ('console 40.2 (5.3.93)')
4017A530 00FC0B68: 01 296 09 +000 'mathieeesingbas.library' ('mathieeesingbas 40.4 (16.3.93)')
4017A534 40081A88: 00 1 00 +000 'dracobootrom' ('dracobootrom 1.3 (12.1.96)')
4017A538 40090094: 81 33025 09 -020 'dracographics.library' ('dracographics 1.2 (28.12.95)')
4017A53C 4009407C: 01 257 00 -030 'dracobootmenu' ('dracobootmenu 1.2 (15.11.95)')
4017A540 00FBF0E4: 01 296 00 -040 'romboot' ('romboot')
4017A544 00FC3B6C: 01 296 00 -050 'bootmenu' ('bootmenu 40.5 (17.3.93)')
4017A548 00F83726: 01 296 00 -055 'alert.hook' ('alert.hook')
4017A54C 40084E7C: 01 257 00 -058 'dracosyscheck' ('dracosyscheck 1.3 (18.12.95)')
4017A550 00FBF0FE: 01 296 00 -060 'strap' ('strap 40.1 (8.3.93)')
4017A554 00F9DCAE: 00 40 00 -081 'filesystem' ('fs 40.1 (15.2.93)')
4017A558 00FC3748: 04 1064 00 -100 'ramlib' ('ramlib 40.2 (5.3.93)')
4017A55C 4009CD88: 04 1025 00 -110 'dracofinal' ('dracofinal 1.0 (28.9.95)')
4017A560 00F8760C: 80 32808 09 -120 'mathffp.library' ('mathffp 40.1 (16.3.93)')
4017A564 00F8D9C2: 00 39 01 -120 'workbench.task' ('wbtag 39.1 (20.4.92)')
4017A568 00F94C08: 00 40 09 -120 'dos.library' ('dos 40.3 (1.4.93)')
4017A56C 00FBCCB4: 80 32808 09 -120 'icon.library' ('icon 40.1 (15.2.93)')
4017A570 00FE6C88: 80 32808 09 -120 'gadtools.library' ('gadtools 40.4 (24.5.93)')
4017A574 00FEC834: 80 32808 09 -120 'workbench.library' ('wb 40.5 (24.5.93)')
4017A578 00F8DA8A: 00 40 00 -121 'con-handler' ('con-handler 40.2 (12.5.93)')
4017A57C 00FC51D4: 00 40 00 -122 'shell' ('shell 40.2 (4.3.93)')
4017A580 00FC0FF4: 00 39 00 -123 'ram-handler' ('ram 39.4 (9.8.92)')

Running task is exec.library, nothing else yet.

System is stuck at STOP-instruction waiting for interrupts but DraCo interrupt controller has interrupts disabled. (ROM Enable()/Disable() are patched to modify DraCo controller instead of Paula INTENA). Interrupts are temporarily enabled but gets disabled before SVGA chip vblank gets enabled, which is routed to level 3 interrupt.

Because boot image is visible, it probably means "dracobootpic.resource" was executed but it got stuck somewhere. Maybe.

winuae.7z has support included. To configure: CPU must be 68060 with MMU emulation enabled. A3000 KS 3.1 40.68 ROM, DraCo Boot ROM v1.3 in Extended ROMs. Chipset extra = Draco. Altais RTG board. Some Processor slot memory. 128M works fine. Other Amiga chipset specific settings don't matter. If you want to peek around in UAE debugger, type "mmu 1" first to use current MMU mapping in debugger.

I'll probably try to emulate DS chips next, if it helps. Not sure if this is worth the trouble but at least this is weird enough thing. Maybe 1-wire code does not expect failure and does something unexpected.

At least new rare boot screen is emulated. Even if it is a wrong

EDIT1: It gets stuck in retina.library init. It never returns.
Attached Thumbnails
Click image for larger version

Name:	dracobootsnip.png
Views:	293
Size:	8.2 KB
ID:	81225  

Last edited by Toni Wilen; 04 January 2024 at 21:15. Reason: Updated config
Toni Wilen is online now  
Old 30 December 2023, 17:20   #2
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,515
Getting interrupts hooked up more correctly and now it goes slightly further, more uglier boot screen appears few seconds after the wide one but at least it has correct size.

Again, stuck at STOP instruction, master interrupt bit is now set but timer and vblank is not allowed. Probably still not correct.

System also has now more activity:

Devices:

4018b5c6 3 0 39.10 3 timer.device (timer 39.10 (12.1.96))
4018b6d4 3 0 40.1 1 keyboard.device (keyboard 40.1 (8.3.93))
4018b91c 3 0 40.1 3 input.device (input 40.1 (8.3.93))
4018ea78 3 0 39.35 1 ramdrive.device (ramdrive 39.35 (21.5.92)

Scsi still not initialized. And neither is dracofdc.resource which should come after ramdrive.device, which is initialized. Possible clue.

Tasks:

4018D5D4: TASK 'dracomouse.resource'
4018B972: TASK 'input.device'
4017D340: TASK 'exec.library'

New resources:

4018b150 8 0 dracobootpic.resource
4018b876 8 0 keymap.resource
4018cc18 8 0 dracomouse.resource
4018d740 8 0 dracokeyboard.resource

New libraries:

40183274 9 0 13.24 2 retina.library (retina 13.24 (15.11.95))
4018b850 9 0 40.4 1 keymap.library (keymap 40.4 (12.3.93))

Fake Altais autconfig device was also added (this is not autoconfig device)

80 30 20000000 01000000 4754 13 00000001 0000 (18260/19)
80.13.30.00.47.54.00.00.00.01.00.00.00.00.00.00

EDIT: It is dracodisk.device that gets stuck, it uses dracofdc.resource, probably waiting for disk drive to respond something.
Attached Thumbnails
Click image for larger version

Name:	dracoboot2.png
Views:	138
Size:	3.3 KB
ID:	81227  

Last edited by Toni Wilen; 31 December 2023 at 10:21.
Toni Wilen is online now  
Old 30 December 2023, 20:27   #3
Zarnal
Registered User
 
Join Date: Feb 2018
Location: France
Posts: 505
Tested with success.
Attached Thumbnails
Click image for larger version

Name:	0.jpg
Views:	128
Size:	52.0 KB
ID:	81228  
Zarnal is online now  
Old 31 December 2023, 13:32   #4
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,515
Hooked up Bridgeboard PC floppy controller and now it does execute some commands but when it executes seek command, it waits for signal from interrupt handler but it never enables DraCo floppy interrupt (which is clearly documented in NetBSD sources and interrupt handler does check that bit and if it is not set, it skips floppy and checks other superio chip interrupt sources like serial and parallel)

If I force the bit set when first seek command is done, it sends more commands and then finally scsi controller init starts.

I searched the rom code and there is two instructions that enable floppy interrupt bit but is never executed. Not sure what is going on. It does query some RTC NVRAM value and only if it returns expected value, it checks for second floppy drive (after first was already checked, this check does not need interrupts). Perhaps empty RTC makes it configured without floppy drives and later code assumes there is always at least one drive.

What is the exact SuperIO chip used? It seems to require PS/2-style floppy controller (at least some SuperIO chips can be configured between AT and PS/2)

EDIT: Bad quality images shows one SMC chip which most likely is the superio one. EDIT2: It is SMC FDC37C665GT

Last edited by Toni Wilen; 31 December 2023 at 13:43.
Toni Wilen is online now  
Old 31 December 2023, 14:05   #5
hooverphonique
ex. demoscener "Bigmama"
 
Join Date: Jun 2012
Location: Fyn / Denmark
Posts: 1,624
Maybe they used the RTC NVRAM to store system configuration data, e.g. if floppy drive(s) are present..
hooverphonique is offline  
Old 31 December 2023, 15:28   #6
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,515
Quote:
Originally Posted by hooverphonique View Post
Maybe they used the RTC NVRAM to store system configuration data, e.g. if floppy drive(s) are present..
Possibly (as I said above)

SCSI hooked up now. NCR710 SCRIPTS code executes correctly, detects no drives and continues.

Then comes more interesting part, it looks like draco boot rom includes MMU based custom chipset "emulator". It caches all custom chip accesses, checks type of register and emulates it. It looks like blitter is emulated this way.

Unfortunately $dff006 read seems to only return zeros (emulator runs, register does not match anything that needs special handling, remaps $dff000 region to on board RAM, executes the instruction in trace mode which now reads the $dff006 from ram (does not cause bus fault), trace handler remaps $dff000 as invalid again. Continue normally. But this is original unpatched KS ROM code that wants $dff006 to change. Infinite loop.

Possibly DraCo custom timer.device somehow should update $dff006 location in RAM.

Quite interesting.
Toni Wilen is online now  
Old 31 December 2023, 18:06   #7
aros-sg
Registered User
 
Join Date: Nov 2015
Location: Italy
Posts: 191
Quote:
Originally Posted by Toni Wilen View Post
But this is original unpatched KS ROM code that wants $dff006 to change.

What ROM code/module would have code like that? Maybe it's something which on real Draco never happens, like boot error indication (color flashes, guru, alert). Maybe because of failure elsewhere. Like floppy stuff. I would try to disable not really "needed" resident modules, like everything related to floppy. So they never get executed.
aros-sg is offline  
Old 31 December 2023, 19:48   #8
gulliver
BoingBagged
 
gulliver's Avatar
 
Join Date: Aug 2007
Location: The South of nowhere
Age: 46
Posts: 2,358
This is really great.

The real DraCo floppy rom code is somewhat broken. When a floppy format is selected it can only then be later changed by rebooting.

The DraCo has its own set of Gurus too. It displays a grey screen with a cyan rectangle which uses the same style of nerdy information layout as its Amiga counterpart. It usually displays software access to inexistent custom chipset (DraCo is Amiga compatible, but hardware-wise not an Amiga), issues with RTC, issues with keyboard, etc.

If it can help on something I have an original ISO image for the DraCo along with very few developer tools for it: Denf (Draco Enforcer) + MovieShop effects developer SDK.

I saw earlier mention of the serial number. It would be useful if it would be user configurable so that MovieShop 5.x software could eventually work (It checks the serial number against an individually provided key to verify its legitimacy). BTW, there is a utility that always shipped with DraCos called "DraCoSerNum" that displays this number.

Also worth mentioning is that some DraCos (a few, not all) provided a Watchdog signal to monitor a working system and auto reboot if it crashed. I always suspected this was implemented through the NCR SCSI chipset which appears to have some functionality of that sort.
gulliver is offline  
Old 31 December 2023, 21:27   #9
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,515
Lets ignore HD based software until it can boot..

I am starting to suspect existing boot rom may not be 100% correct. Weird resolution appears because ROM code generates HUNDREDs of different screen modes and most of them are pointless, only first dozen or so look sane and resolution selection simply chooses "best match". Confirmed dump would be needed, using hardware ROM reader.

There is big table in ROM that is used to generate screen modes and if it is not correct, all kinds of strange things can happen. I didn't find any checks which would limit max resolution in rom code.
EDIT: or maybe they are real modes but supposed to be horizontally scrolling modes.

Also first 32 bytes or so from addresses $20000000, $28000000 and $30000000 would be nice to have (Altais DracoBus "autoconfig" data which does not appear to be have exactly same format as normal Z3 autoconfig). Address depends apparently in which slot Altais is inserted. Reading from unused addresses might cause a crash.

Watchdog is in DraCo "chipset", also mentioned in NetBSD sources. Boot ROM code pokes the watchdog register every few moments.

Last edited by Toni Wilen; 31 December 2023 at 23:10.
Toni Wilen is online now  
Old 31 December 2023, 23:32   #10
ShK
Registered User
 
ShK's Avatar
 
Join Date: Mar 2013
Location: Lahti / Finland
Age: 52
Posts: 447
Seems to boot also with DraCo Boot ROM v1.5.
Attached Thumbnails
Click image for larger version

Name:	DraCo Boot ROM v1.5.png
Views:	79
Size:	17.7 KB
ID:	81235  
ShK is offline  
Old 01 January 2024, 01:24   #11
gulliver
BoingBagged
 
gulliver's Avatar
 
Join Date: Aug 2007
Location: The South of nowhere
Age: 46
Posts: 2,358
DraCo Boot ROM 1.5 (attached to this post)
-----------------------

DraCoBootRom 1.5 (28.2.97)

dracommu.library dracommu 2.5 (10.1.96) - Memory management unit handler. DraCos always require a MMU to function.
draco.resource draco 1.4 (2.9.96) - Adds DraCo memory to the system
dracospecial 2.4 (28.2.97) - System Alert/Guru handler (alert.hook counterpart)
dracosyscheck 1.3 (18.12.95) - Different hardware means different diagnostic checks
retina.library retina 13.24 (15.11.95) - provides the minimal graphic infrastructure to display graphics
dracobootmenu 1.2 (15.11.95) - Custom secondary boot menu to specifically tweak DraCo features.
dracoscsi.device dracoscsi 2.2 (16.1.97) - The scsi driver interface for the DraCo. Clearly related to the WarpEngine scsi one, and based on the same chip.
dracobootpic.resource dracobootpic 1.6 (10.12.96) - The DraCo boot picture logo
dracobattclock.resource battclock.resource dracobattclock 1.1 (4.9.96) + battclock 40.1 (4.9.96) - Again the the RTC is based on another chip.
dracokeyboard.resource dracokeyboard 1.4 (7.11.96) - Keyboard is a din AT PC style one.
dracomouse.resource dracomouse 1.3 (4.9.96) - It is a serial (RS-232) port 2 button mouse. Not Amiga related as there is no chip for that.
dracofdc.resource dracofdc 1.3 (28.2.97) - The floppy disk controller is certainly not Paula based, but only available thru the SMC Super Io chip.
dracodisk.device dracodisk 1.4 (28.2.97) - Trackdisk.device counterpart
dracofinal 1.4 (18.2.97) - Checks and performs the DraCo Rom softkick and sets CGX emulation mode variable ON or OFF, enables draser and drapar devices.
cia.resource cia 39.10 (28.2.97) - new cia.resource (DraCos do not require cia chips to work. They are optional)
timer.device timer 39.10 (28.2.97) - new timer.device (DraCos do not require cia chips to work. They are optional)
dracographics.library dracographics 1.3 (8.3.96) - A patch to graphics.library to use retina.library and to visually implement DraCo gurus (alerts).
Attached Files
File Type: zip DraCoBootRom 1.5 (28.2.zip (64.2 KB, 141 views)
gulliver is offline  
Old 01 January 2024, 01:37   #12
gulliver
BoingBagged
 
gulliver's Avatar
 
Join Date: Aug 2007
Location: The South of nowhere
Age: 46
Posts: 2,358
A thing worth mentioning is that the DraCo uses a v40.68 A3000 Kickstart ROM burned into a single chip. Real life DraCo generally came with a label which erroneously said they were v40.63 (and no, they are in fact v40.68 inside).

Perhaps this different label was to differentiate its single chip packaging from usual ROM sets. Who knows!
gulliver is offline  
Old 01 January 2024, 06:10   #13
ShK
Registered User
 
ShK's Avatar
 
Join Date: Mar 2013
Location: Lahti / Finland
Age: 52
Posts: 447
Have there been different models?





These mouse buttons didn't work for me:



Suggested volume/device names:



Draco Altais RTG board seems to have 4MB of VRAM:

ShK is offline  
Old 01 January 2024, 16:52   #14
hooverphonique
ex. demoscener "Bigmama"
 
Join Date: Jun 2012
Location: Fyn / Denmark
Posts: 1,624
@ShK Looks like C= kickstart ROM set on an adapter PCB, and a single socket on the main board if that's what you were referring to.
hooverphonique is offline  
Old 01 January 2024, 16:58   #15
ShK
Registered User
 
ShK's Avatar
 
Join Date: Mar 2013
Location: Lahti / Finland
Age: 52
Posts: 447
Ahh, gotcha!
ShK is offline  
Old 01 January 2024, 17:02   #16
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,515
Some updates.

First post configuration details updated. Must be read first!

v1.5 ROM added.

RTC SRAM and clock counter emulated. Unfortunately this didn't fix initial boot screen but interestingly, if SRAM is valid, it boots almost directly to second boot screen. NVRAM file includes serial number at the beginning (full 8 bytes), then unused 8 bytes, then RTC SRAM (512 bytes) + clock registers (32 bytes, real chip only has 29 clock registers). Clock (actually 5 byte counter that counts 256 times every second) is also counting, this allows DraCo to detect working RTC.

No serial number reads seen during boot time, all DS2404 accesses start with "SKIP ROM" command which bypasses reading of serial number.

Serial ports internally hooked up to PCem serial ports internally. Boot ROM detection code is now happy. Still no parellel.

Still no floppy interrupts enabled. Also keyboard interrupt is also not enabled which might be related because keyboard is partially emulated now, boot rom sends status command, then checks if keyboard buffer has data pending. Which can't happen because interrupt is disabled.. Keyboard is only internally emulated, it is not connected to host side yet.

Interrupt problem is the show stopper. I can bypass this but it will surely cause other random problems. It needs to be solved first. (Everything else interrupt related seems to work, timer and vblank)

Perhaps someone is bored enough to resource the boot rom. I'll soon push draco.cpp to winuae github that includes short description of registers and others (most from netbsd sources).

btw, which kind of mouse does Draco use? (PC serial mouse?)
Toni Wilen is online now  
Old 01 January 2024, 17:44   #17
gulliver
BoingBagged
 
gulliver's Avatar
 
Join Date: Aug 2007
Location: The South of nowhere
Age: 46
Posts: 2,358
Quote:
Originally Posted by Toni Wilen View Post
btw, which kind of mouse does Draco use? (PC serial mouse?)
It uses PC serial two button mouse.

"DraCoMouse" (Attached to this post)

This program can be used to set the type of the mouse and
the port to which is connected. Also, it can turn off the
mouse.

In a DraCo, different types of mice can be connected to the
serial port. Since not all of these types can be
automatically identified, the user needs to set with
DraCoMouse, the type of mouse is present. These are the
following mouse types which are supported:

1.Microsoft compatible (2-button mouse)
2.MicroSoft compatible / 3 button mouse
3.Mouse Systems Corp. compatible mouse
4.Mouse Systems Corp. compatible programmable mouse

The default setting for the DraCo is the MicroSoft
compatible 2 keys mouse, connected to serial port one.
Therefore, DraCoMouse only needs to be used when you
connect a different mouse, or plug it to the other serial
port.

Additionally, the keyboard can emulate a mouse:
By keeping pressed an Amiga/DraCo key and
simultaneously using cursor keys the mouse pointer can be
controlled.

If you also press the SHIFT key, you can alter the speed of
the cursor. The left and right ALT keys will also work as
their corresponding mouse button.
Attached Files
File Type: zip DraCoMouse.zip (4.4 KB, 66 views)
gulliver is offline  
Old 01 January 2024, 17:47   #18
gulliver
BoingBagged
 
gulliver's Avatar
 
Join Date: Aug 2007
Location: The South of nowhere
Age: 46
Posts: 2,358
"Normal" DraCo Alert numbers begin with hex 7f.
Dead-End Alerts start with hex FF. Below you will
find a selection of Alert numbers, and their meaning.

7f01000x MMU error
7f02000x Interrupt error
7f03000x Access to Custom chip registers
7f030001 Access to blitter
7f030002 Access to Amiga-Audio Hardware
7f05000x Error accessing the clock or the nonvolatile memory
7f050001 Battery-backed memory cannot be read (This message
may occur, for example, after the exchange of battery on the
CPU board or just simple battery depletion)
7f050002 Battery-backed memory can not be initialized
7f050003 Serial number cannot be read
7f050005 Clock is not running
7f07000x Various messages
7f070002 Bus timeout
7f070003 Watchdog timer
7f09000x Keyboard failure
7f090091 Wrong keyboard (not an MF-II keyboard)
7f090002 Faulty data from the keyboard
gulliver is offline  
Old 01 January 2024, 17:51   #19
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,515
Yeah, I have seen those Alert() calls here and there. They are quite helpful when debugging because you instantly know that that code path should not be taken

EDIT: All Alert() calls are gone now after RTC was implemented, didn't help.

Last edited by Toni Wilen; 01 January 2024 at 17:58.
Toni Wilen is online now  
Old 01 January 2024, 19:56   #20
Toni Wilen
WinUAE developer
 
Join Date: Aug 2001
Location: Hämeenlinna/Finland
Age: 49
Posts: 26,515
If I set both floppy and keyboard interrupt enable bits at reset, floppy detection does not hang anymore. It is quite weird that those bits are not set or cleared at init code.. (winuae.7z updated)

Before it goes to $dff006 infinite loop, there is $7f030001 Alert stored. So there is no blitter emulation after all. But why does it execute it? Seems to happen when console.device is getting initialized. (Why would it even do any blits, it isn't going to open any windows or whatever? Too early for boot menu)

4017A528 4008F828: 01 2 03 +010 'dracoscsi.device' ('dracoscsi 2.2 (16.1.97)')
4017A52C 00F90248: 81 40 03 +005 'console.device' ('console 40.2 (5.3.93)')
4017A530 00FC0B68: 01 40 09 +000 'mathieeesingbas.library' ('mathieeesingbas 40.4 (16.3.93)')
4017A534 40081A98: 00 1 00 +000 'dracobootrom' ('dracobootrom 1.5 (28.2.97)')


dracoscsi.device is initialized, console.device or mathieesingbas.library isn't = console.device init is the problem. Reason unknown.

(mouse still not emulated)

EDIT: It is intuition/DisplayAlert() that uses blitter. But why does it even get there? exec/Alert() is patched by DraCo ROM, it only collects the error for later use and then returns. Alert code is $7e000000.

EDIT2: DraCo boot ROM creates error string with exec/RawDoFmt() and then tries to call Intuition/DisplayAlert() which obviously can't work, at least not at least this early in boot process.

Code:
4008171C EE14 496C 6C65 6761 6C20 4D65 6D6F 7279  ..Illegal Memory
4008172C 2041 6363 6573 735C 7623 4C65 6674 2062   Access\v#Left b
4008173C 7574 746F 6E20 746F 2063 6F6E 7469 6E75  utton to continu
4008174C 6520 2D20 5269 6768 7420 6275 7474 6F6E  e - Right button
4008175C 2074 6F20 7374 6F70 2074 6173 6B5C 1232   to stop task\.2
4008176C 2573 2025 7320 2530 386C 785C 1241 2050  %s %s %08lx\.A P
4008177C 433A 2025 3038 6C78 2020 2054 6173 6B3A  C: %08lx   Task:
4008178C 2025 3038 6C78 2022 2531 2E33 3073 225C   %08lx "%1.30s"\
4008179C 1250 2044 6E3A 2025 3038 6C78 2025 3038  .P Dn: %08lx %08
400817AC 6C78 2025 3038 6C78 2025 3038 6C78 2025  lx %08lx %08lx %
400817BC 3038 6C78 2025 3038 6C78 2025 3038 6C78  08lx %08lx %08lx
400817CC 2025 3038 6C78 5C12 5A20 416E 3A20 2530   %08lx\.Z An: %0
400817DC 386C 7820 2530 386C 7820 2530 386C 7820  8lx %08lx %08lx
400817EC 2530 386C 7820 2530 386C 7820 2530 386C  %08lx %08lx %08l
400817FC 7820 2530 386C 785C 1269 256C 6353 503A  x %08lx\.i%lcSP:
4008180C 2025 3038 6C78 2025 3038 6C78 2025 3038   %08lx %08lx %08
4008181C 6C78 2025 3038 6C78 2025 3038 6C78 2025  lx %08lx %08lx %
4008182C 3038 6C78 2025 3038 6C78 2025 3038 6C78  08lx %08lx %08lx
So something is going wrong and this error (whatever it is), shouldn't happen. Maybe SCSI driver is the cause.

EDIT3: yes, it is dracoscsi.device reading from nonmapped address.

EDIT4: SCSI emulator fixed. Now it detects all SCSI units before exiting. Still hangs somewhere but no more blitter use. It boots to AmigaDOS if SCSI has bootable HDF! Cursor is corrupted and you can't do anything without mouse and keyboard but it seems most stuff are now working!

Last edited by Toni Wilen; 01 January 2024 at 20:37.
Toni Wilen is online now  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
DraCo Macrosystem hints and tips? Anybody here? lioneer support.Hardware 0 09 January 2022 18:37
DraCo Casablanca for 45e... Cobe MarketPlace 22 10 August 2014 08:52
DraCo graphics corruption gulliver support.Hardware 1 11 September 2012 15:28
My Boxed Draco Slayer Retrogaming General Discussion 47 13 October 2009 20:13
DraCo Software Kobold request.Apps 0 17 August 2006 16:44

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 18:31.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.09878 seconds with 14 queries