English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Asm / Hardware

 
 
Thread Tools
Old 04 April 2017, 15:24   #1
RomanWorkshop
Registered User

RomanWorkshop's Avatar
 
Join Date: Dec 2016
Location: Poland
Posts: 12
BasicDiag - bootblock diagnostic program

Hello, I want to present my bootblock diagnostic program that is checking basic hardware parts of every Amiga, equipped with floppy drive. It is recognising CPU 680x0 model (in case of 68060 also it's version: "68060" - full, "XX060" - EC/LC and revision "(rev X)"), FPU model (68881/68882/IN040/IN060), graphics chipset (OCS/ECS/AGA) and it's standard (PAL/NTSC), Kickstart version from 1.2 (33.166) to 3.1 (40.72). Older Kickstarts (0.7 beta, 1.0, 1.1) will be recognised as "Kickstart 1.x (xx.x)" and newer (43+) as "Kickstart 3.x (ver.rev)". Kickstart 3.5 (40.71) will be detected as "Kickstart 3.1 (40.71)". Also amount of available free CHIP and FAST memory (in "kB") is displaying.

All code is written in assembler (I'm using my own detection routines) and current size of diagnostic bootblock is 988 bytes.

You can download source code (with Polish comments) and ADF image here: http://romanworkshop.blutu.pl/asm68/bdiag.7z

Last edited by RomanWorkshop; 20 November 2018 at 20:04.
RomanWorkshop is offline  
Old 04 April 2017, 22:00   #2
emufan
Registered User
 
Join Date: Feb 2012
Location: #DrainTheSwamp
Posts: 4,546
just tested a bit and found an issue with A1000 OCS kickstart 1.0.
see image attached.
other quickstart (winuae) configs give good rsults

#1) oh, kicks 1.2+ only?
Attached Thumbnails
Click image for larger version

Name:	a1000.png
Views:	159
Size:	2.9 KB
ID:	52696  
emufan is offline  
Old 04 April 2017, 22:41   #3
RomanWorkshop
Registered User

RomanWorkshop's Avatar
 
Join Date: Dec 2016
Location: Poland
Posts: 12
Thats why it is Kickstart 1.2+ program Reason of this is simple: older Kickstarts (0.7b, 1.0 and 1.1) have $FFFF (65535) values at address $F8000C (version) and $F8000E (revision).
RomanWorkshop is offline  
Old 04 April 2017, 22:54   #4
emufan
Registered User
 
Join Date: Feb 2012
Location: #DrainTheSwamp
Posts: 4,546
ok, ic, something learned
emufan is offline  
Old 05 April 2017, 06:15   #5
a/b
Registered User

 
Join Date: Jun 2016
Location: europe
Posts: 77
Works fine on A4000/040 KS39.
BTW, you can save 10 (or 8, if you have to preserve d2) bytes in the $f8000c/$f8000e code by using subs instead of cmps:
moveq #33,d1
sub.w d1,d2
...
subq.w #34-33,d2
...
subq.w #36-34,d2
...
subq.w #37-36,d2
...
subq.w #39-37,d2
...
a/b is offline  
Old 05 April 2017, 20:26   #6
RomanWorkshop
Registered User

RomanWorkshop's Avatar
 
Join Date: Dec 2016
Location: Poland
Posts: 12
Maybe I will show each detection routine separately (Polish comments):

ChkCPU, Chk060, ChkFPU, ChkGFX, ChkKS.
RomanWorkshop is offline  
Old 11 April 2017, 16:59   #7
RomanWorkshop
Registered User

RomanWorkshop's Avatar
 
Join Date: Dec 2016
Location: Poland
Posts: 12
I was improved Kickstart version check routine. Now versions older than 1.2 are recognized as "Kickstart 1.x (xx.x)". Kickstart 3.5 (40.71) will be recognized as "Kickstart 3.1 (40.71)". Kickstarts newer than 3.1 (40.72) will be recognized as "Kickstart 3.x".
RomanWorkshop is offline  
Old 14 April 2017, 21:43   #8
RomanWorkshop
Registered User

RomanWorkshop's Avatar
 
Join Date: Dec 2016
Location: Poland
Posts: 12
Program now should run on every Amiga with floppy drive. Complete source code (with Polish comments) and ADF image can be downloaded from here: BasicDiag (Polish website: link).
RomanWorkshop is offline  
Old 17 April 2017, 09:55   #9
RomanWorkshop
Registered User

RomanWorkshop's Avatar
 
Join Date: Dec 2016
Location: Poland
Posts: 12
I addeded displaying amount of available free CHIP and FAST memory (in "kB"). Size of program is now 928 bytes.
Attached Thumbnails
Click image for larger version

Name:	bdiag.png
Views:	77
Size:	1.7 KB
ID:	52817  
RomanWorkshop is offline  
Old 17 April 2017, 12:15   #10
alpine9000
Registered User

 
Join Date: Mar 2016
Location: Australia
Posts: 622
Quote:
Originally Posted by RomanWorkshop View Post
I addeded displaying amount of available free CHIP and FAST memory (in "kB"). Size of program is now 928 bytes.
Nice!

May I ask how you detect the ram?
alpine9000 is offline  
Old 17 April 2017, 13:40   #11
RomanWorkshop
Registered User

RomanWorkshop's Avatar
 
Join Date: Dec 2016
Location: Poland
Posts: 12
I'm using "AvailMem" function from Exec, which returning number of free bytes of selected memory type. Next I'm dividing this value by 1024 and I get memory size in "kB".
RomanWorkshop is offline  
Old 20 November 2018, 20:02   #12
RomanWorkshop
Registered User

RomanWorkshop's Avatar
 
Join Date: Dec 2016
Location: Poland
Posts: 12
In new version of BasicDiag 1.05 (988 bytes), I added detection of pressing mouse buttons. When you press left mouse button (LMB), Amiga continues booting from floppy (startup CLI is showing up). When you press right mouse button (RMB), Amiga is reseting.
Attached Thumbnails
Click image for larger version

Name:	bdiag.png
Views:	31
Size:	1.8 KB
ID:	60891  
RomanWorkshop is offline  
 


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

Similar Threads
Thread Thread Starter Forum Replies Last Post
Emplant Diagnostic Irl support.Hardware 14 27 June 2018 10:06
Diagnostic ROMS Chucky support.Hardware 8 21 August 2016 12:55
Diagnostic software TheDarkCoder support.Hardware 2 24 September 2014 15:32
Diagnostic application whitebird support.Apps 0 04 September 2014 15:56
The Diagnostic 2.0 (Logica) rom pucci support.WinUAE 1 07 September 2011 09:43

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 07:36.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2018, vBulletin Solutions Inc.
Page generated in 0.08787 seconds with 13 queries