Author Topic: Making sense of 1M+ lines of pascal procedure names  (Read 929 times)

0 Members and 1 Guest are viewing this topic.

Offline dexters_labTopic starter

  • Supporter
  • ****
  • Posts: 1890
  • Country: gb
Making sense of 1M+ lines of pascal procedure names
« on: July 25, 2018, 10:16:42 am »
In my somewhat obsessive quest to discover the inner workings of my quantel paintbox i have discovered an internal diagnostic feature which allows me to dump out an entire list of the details of all the Pascal procedure names for the entire paintbox software. Which greatly helps with making sense of the 68000 disassembly in IDA Pro. The same diagnostic feature also allows me to disassemble it as well so the two things combined could produce a fully disassembled list of all the internal procedure calls. I would expect this feature was used by the quantel engineers to help debug their software.

The output i have is all plain text and details one word of data per line with it's memory location, the original pascal procedure name and a line reference like the code section shown below.

So far, my text file is 47Mb and has more than 1M lines in it detailing 1000s of procedures and i am estimating i am only about 1/2 way through... i would like to turn it into something more usable as having this big flat text file is not much use at all. Being able to use it with IDA Pro would be especially useful for obvious reasons.

anyone have any bright ideas on how to do something with it?



first column is memory location, then the two bytes of data at that location, then the name of the procedure & line number of the original pascal source code. I am pretty sure the (+-1) lines at the beginning are showing the local data for that procedure so the code starts at $465202 in this example.

Code: [Select]
  $4651DE $FEA8  S8_SECURITY.encode_pwds 155 (+-1)
  $4651E0 $BFD5  S8_SECURITY.encode_pwds 155 (+-1)
  $4651E2 $6206  S8_SECURITY.encode_pwds 155 (+-1)
  $4651E4 $44FC  S8_SECURITY.encode_pwds 155 (+-1)
  $4651E6    $2  S8_SECURITY.encode_pwds 155 (+-1)
  $4651E8 $4E76  S8_SECURITY.encode_pwds 155 (+-1)
  $4651EA $DEFC  S8_SECURITY.encode_pwds 155 (+-1)
  $4651EC   $4E  S8_SECURITY.encode_pwds 155 (+-1)
  $4651EE $48E7  S8_SECURITY.encode_pwds 155 (+-1)
  $4651F0 $FFF8  S8_SECURITY.encode_pwds 155 (+-1)
  $4651F2 $47EE  S8_SECURITY.encode_pwds 155 (+-1)
  $4651F4 $FEF6  S8_SECURITY.encode_pwds 155 (+-1)
  $4651F6 $49EE  S8_SECURITY.encode_pwds 155 (+-1)
  $4651F8    $8  S8_SECURITY.encode_pwds 155 (+-1)
  $4651FA $2A3C  S8_SECURITY.encode_pwds 155 (+-1)
  $4651FC    $0  S8_SECURITY.encode_pwds 155 (+-1)
  $4651FE   $FF  S8_SECURITY.encode_pwds 155 (+-1)
  $465200 $2054  S8_SECURITY.encode_pwds 155 (+-1)
  $465202 $4A10  S8_SECURITY.encode_pwds 156 (+0)
  $465204 $6608  S8_SECURITY.encode_pwds 156 (+0)
  $465206 $16BA  S8_SECURITY.encode_pwds 156 (+0)
  $465208 $F2D4  S8_SECURITY.encode_pwds 156 (+0)
  $46520A $6000  S8_SECURITY.encode_pwds 156 (+0)
  $46520C  $112  S8_SECURITY.encode_pwds 156 (+0)
  $46520E $1028  S8_SECURITY.encode_pwds 156 (+0)
  $465210    $1  S8_SECURITY.encode_pwds 159 (+3)
  $465212  $C00  S8_SECURITY.encode_pwds 159 (+3)
  $465214   $7F  S8_SECURITY.encode_pwds 159 (+3)
  $465216 $6310  S8_SECURITY.encode_pwds 159 (+3)
  $465218 $224B  S8_SECURITY.encode_pwds 159 (+3)
  $46521A $2448  S8_SECURITY.encode_pwds 159 (+3)
  $46521C $3005  S8_SECURITY.encode_pwds 159 (+3)
  $46521E $12DA  S8_SECURITY.encode_pwds 159 (+3)
  $465220 $51C8  S8_SECURITY.encode_pwds 159 (+3)
  $465222 $FFFC  S8_SECURITY.encode_pwds 159 (+3)
  $465224 $6000  S8_SECURITY.encode_pwds 159 (+3)
  $465226   $F8  S8_SECURITY.encode_pwds 159 (+3)
  $465228 $2254  S8_SECURITY.encode_pwds 159 (+3)
  $46522A $1010  S8_SECURITY.encode_pwds 159 (+3)
  $46522C $C085  S8_SECURITY.encode_pwds 161 (+5)
  $46522E $81FC  S8_SECURITY.encode_pwds 161 (+5)
  $465230    $3  S8_SECURITY.encode_pwds 161 (+5)
  $465232 $5340  S8_SECURITY.encode_pwds 161 (+5)
  $465234 $48C0  S8_SECURITY.encode_pwds 161 (+5)
  $465236 $2F00  S8_SECURITY.encode_pwds 161 (+5)
  $465238 $7C00  S8_SECURITY.encode_pwds 161 (+5)
  $46523A $BC97  S8_SECURITY.encode_pwds 161 (+5)
  $46523C $6E00  S8_SECURITY.encode_pwds 161 (+5)
  $46523E   $D0  S8_SECURITY.encode_pwds 161 (+5)
  $465240 $7803  S8_SECURITY.encode_pwds 161 (+5)
  $465242 $2606  S8_SECURITY.encode_pwds 163 (+7)
  $465244 $4EB9  S8_SECURITY.encode_pwds 163 (+7)
  $465246   $40  S8_SECURITY.encode_pwds 163 (+7)
  $465248 $6A74  S8_SECURITY.encode_pwds 163 (+7)
  $46524A $2004  S8_SECURITY.encode_pwds 163 (+7)
  $46524C $5280  S8_SECURITY.encode_pwds 163 (+7)
  $46524E $B085  S8_SECURITY.encode_pwds 163 (+7)
  $465250 $6302  S8_SECURITY.encode_pwds 163 (+7)
  $465252 $4E4F  S8_SECURITY.encode_pwds 163 (+7)
  $465254 $1231  S8_SECURITY.encode_pwds 163 (+7)
  $465256  $800  S8_SECURITY.encode_pwds 163 (+7)
  $465258 $C285  S8_SECURITY.encode_pwds 163 (+7)
  $46525A  $441  S8_SECURITY.encode_pwds 163 (+7)
  $46525C   $31  S8_SECURITY.encode_pwds 163 (+7)
  $46525E $43BC  S8_SECURITY.encode_pwds 163 (+7)
  $465260   $29  S8_SECURITY.encode_pwds 163 (+7)
  $465262 $E341  S8_SECURITY.encode_pwds 163 (+7)
  $465264 $45FA  S8_SECURITY.encode_pwds 163 (+7)
  $465266 $F19C  S8_SECURITY.encode_pwds 163 (+7)
  $465268 $3032  S8_SECURITY.encode_pwds 163 (+7)
  $46526A $1000  S8_SECURITY.encode_pwds 163 (+7)
  $46526C $48C0  S8_SECURITY.encode_pwds 163 (+7)
  $46526E $E180  S8_SECURITY.encode_pwds 163 (+7)
  $465270 $E580  S8_SECURITY.encode_pwds 163 (+7)
  $465272  $680  S8_SECURITY.encode_pwds 163 (+7)
  $465274    $0  S8_SECURITY.encode_pwds 163 (+7)
  $465276 $8000  S8_SECURITY.encode_pwds 163 (+7)
  $465278 $2204  S8_SECURITY.encode_pwds 163 (+7)
  $46527A $5481  S8_SECURITY.encode_pwds 163 (+7)
  $46527C $B285  S8_SECURITY.encode_pwds 163 (+7)
  $46527E $6302  S8_SECURITY.encode_pwds 163 (+7)
  $465280 $4E4F  S8_SECURITY.encode_pwds 163 (+7)
  $465282 $4282  S8_SECURITY.encode_pwds 163 (+7)
  $465284 $1431  S8_SECURITY.encode_pwds 163 (+7)
  $465286 $1800  S8_SECURITY.encode_pwds 163 (+7)
  $465288  $442  S8_SECURITY.encode_pwds 163 (+7)
  $46528A   $31  S8_SECURITY.encode_pwds 163 (+7)
  $46528C $45BC  S8_SECURITY.encode_pwds 163 (+7)
  $46528E   $29  S8_SECURITY.encode_pwds 163 (+7)
  $465290 $E342  S8_SECURITY.encode_pwds 163 (+7)
  $465292 $45FA  S8_SECURITY.encode_pwds 163 (+7)
  $465294 $F16E  S8_SECURITY.encode_pwds 163 (+7)
  $465296 $3232  S8_SECURITY.encode_pwds 163 (+7)
  $465298 $2000  S8_SECURITY.encode_pwds 163 (+7)
  $46529A $48C1  S8_SECURITY.encode_pwds 163 (+7)
  $46529C $EB81  S8_SECURITY.encode_pwds 163 (+7)
  $46529E $D280  S8_SECURITY.encode_pwds 163 (+7)
  $4652A0 $5684  S8_SECURITY.encode_pwds 163 (+7)
  $4652A2 $B885  S8_SECURITY.encode_pwds 163 (+7)
  $4652A4 $6302  S8_SECURITY.encode_pwds 163 (+7)
  $4652A6 $4E4F  S8_SECURITY.encode_pwds 163 (+7)
  $4652A8 $4280  S8_SECURITY.encode_pwds 163 (+7)
  $4652AA $1031  S8_SECURITY.encode_pwds 163 (+7)
  $4652AC $4800  S8_SECURITY.encode_pwds 163 (+7)
  $4652AE  $440  S8_SECURITY.encode_pwds 163 (+7)
  $4652B0   $31  S8_SECURITY.encode_pwds 163 (+7)
  $4652B2 $41BC  S8_SECURITY.encode_pwds 163 (+7)
  $4652B4   $29  S8_SECURITY.encode_pwds 163 (+7)
  $4652B6 $E340  S8_SECURITY.encode_pwds 163 (+7)
  $4652B8 $45FA  S8_SECURITY.encode_pwds 163 (+7)
  $4652BA $F148  S8_SECURITY.encode_pwds 163 (+7)
  $4652BC $3432  S8_SECURITY.encode_pwds 163 (+7)
  $4652BE    $0  S8_SECURITY.encode_pwds 163 (+7)
  $4652C0 $48C2  S8_SECURITY.encode_pwds 163 (+7)
  $4652C2 $D481  S8_SECURITY.encode_pwds 163 (+7)
  $4652C4  $C82  S8_SECURITY.encode_pwds 163 (+7)
  $4652C6    $0  S8_SECURITY.encode_pwds 163 (+7)
  $4652C8 $FFFF  S8_SECURITY.encode_pwds 163 (+7)
  $4652CA $6302  S8_SECURITY.encode_pwds 163 (+7)
  $4652CC $4E4F  S8_SECURITY.encode_pwds 163 (+7)
  $4652CE $3E02  S8_SECURITY.encode_pwds 163 (+7)
  $4652D0 $7802  S8_SECURITY.encode_pwds 163 (+7)
  $4652D2 $2606  S8_SECURITY.encode_pwds 164 (+8)
  $4652D4 $4EB9  S8_SECURITY.encode_pwds 164 (+8)
  $4652D6   $40  S8_SECURITY.encode_pwds 164 (+8)
  $4652D8 $6A74  S8_SECURITY.encode_pwds 164 (+8)
  $4652DA $2004  S8_SECURITY.encode_pwds 164 (+8)
  $4652DC $5280  S8_SECURITY.encode_pwds 164 (+8)
  $4652DE $B085  S8_SECURITY.encode_pwds 164 (+8)
  $4652E0 $6302  S8_SECURITY.encode_pwds 164 (+8)
  $4652E2 $4E4F  S8_SECURITY.encode_pwds 164 (+8)
  $4652E4 $244B  S8_SECURITY.encode_pwds 164 (+8)
  $4652E6  $287  S8_SECURITY.encode_pwds 164 (+8)
  $4652E8    $0  S8_SECURITY.encode_pwds 164 (+8)
  $4652EA $FFFF  S8_SECURITY.encode_pwds 164 (+8)
  $4652EC $2207  S8_SECURITY.encode_pwds 164 (+8)
  $4652EE $E081  S8_SECURITY.encode_pwds 164 (+8)
  $4652F0 $1581  S8_SECURITY.encode_pwds 164 (+8)
  $4652F2  $800  S8_SECURITY.encode_pwds 164 (+8)
  $4652F4 $5484  S8_SECURITY.encode_pwds 164 (+8)
  $4652F6 $B885  S8_SECURITY.encode_pwds 166 (+10)
  $4652F8 $6302  S8_SECURITY.encode_pwds 166 (+10)
  $4652FA $4E4F  S8_SECURITY.encode_pwds 166 (+10)
  $4652FC $244B  S8_SECURITY.encode_pwds 166 (+10)
  $4652FE $2007  S8_SECURITY.encode_pwds 166 (+10)
  $465300 $C085  S8_SECURITY.encode_pwds 166 (+10)
  $465302 $4185  S8_SECURITY.encode_pwds 166 (+10)
  $465304 $1580  S8_SECURITY.encode_pwds 166 (+10)
  $465306 $4800  S8_SECURITY.encode_pwds 166 (+10)
  $465308 $5286  S8_SECURITY.encode_pwds 166 (+10)
  $46530A $6800  S8_SECURITY.encode_pwds 166 (+10)
  $46530C $FF2E  S8_SECURITY.encode_pwds 166 (+10)
  $46530E $584F  S8_SECURITY.encode_pwds 166 (+10)
  $465310 $2254  S8_SECURITY.encode_pwds 166 (+10)
  $465312 $4280  S8_SECURITY.encode_pwds 181 (+25)
  $465314 $1011  S8_SECURITY.encode_pwds 181 (+25)
  $465316 $81FC  S8_SECURITY.encode_pwds 181 (+25)
  $465318    $3  S8_SECURITY.encode_pwds 181 (+25)
  $46531A $E340  S8_SECURITY.encode_pwds 181 (+25)
  $46531C $1680  S8_SECURITY.encode_pwds 181 (+25)
  $46531E $41EE  S8_SECURITY.encode_pwds 181 (+25)
  $465320    $C  S8_SECURITY.encode_pwds 182 (+26)
  $465322 $224B  S8_SECURITY.encode_pwds 182 (+26)
  $465324 $703F  S8_SECURITY.encode_pwds 182 (+26)
  $465326 $20D9  S8_SECURITY.encode_pwds 182 (+26)
  $465328 $51C8  S8_SECURITY.encode_pwds 182 (+26)
  $46532A $FFFC  S8_SECURITY.encode_pwds 182 (+26)
  $46532C $4CDF  S8_SECURITY.encode_pwds 182 (+26)
  $46532E $1FFF  S8_SECURITY.encode_pwds 182 (+26)
  $465330 $4E5E  S8_SECURITY.encode_pwds 182 (+26)
  $465332 $4E75  S8_SECURITY.encode_pwds 182 (+26)

Offline amyk

  • Super Contributor
  • ***
  • Posts: 8408
Re: Making sense of 1M+ lines of pascal procedure names
« Reply #1 on: July 25, 2018, 11:39:46 am »
My first thought is to import it into a database so you can query it... the line number +/- part is just the offset from the start of the procedure.

There are far less than 1M procedures; with the above a simple "select count(distinct proc_name)" would tell you how many.
 
The following users thanked this post: dexters_lab


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf