TheAMCForum.com Homepage
Forum Home Forum Home > The Garage > AMC 6 Cylinder Engine Repair and Modifications
  New Posts New Posts RSS Feed - CeC technical information?
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

Click for TheAMCForum Rules / Click for PDF version of Forum Rules
Your donations help keep this valuable resource free and growing. Thank you.

CeC technical information?

 Post Reply Post Reply Page  <1 6789>
Author
Message
abzman View Drop Down
AMC Fan
AMC Fan


Joined: May/09/2020
Location: 48030
Status: Offline
Points: 2
Post Options Post Options   Thanks (0) Thanks(0)   Quote abzman Quote  Post ReplyReply Direct Link To This Post Posted: Jul/16/2020 at 8:44am
I want to believe that the chip with the socket on top is just a pinout adapter and contains no smarts because I've never seen anything like it and wouldn't know where to start in guessing what it is or figuring out how it's hooked up
Back to Top
FLynes View Drop Down
AMC Apprentice
AMC Apprentice
Avatar

Joined: May/25/2010
Location: Nampa, ID
Status: Offline
Points: 110
Post Options Post Options   Thanks (0) Thanks(0)   Quote FLynes Quote  Post ReplyReply Direct Link To This Post Posted: Jul/31/2020 at 1:19pm
I love reading threads like this, because electronics fascinates me. My father was an electronics engineer at Westinghouse from 1974-1990 and I remember him bringing home these massive HP computers with tiny screens, so he could repair them and run diagnostics. I remember playing Blackjack on one.

If you guys are at a standstill with this project, you might want to reach out to a guy on YouTube, who is an electronics guru, named Paul Carlson. His channel is "Mr. Carlson's Lab". He specializes in old tube electronics, but he also has a newer Pontiac Firebird and has done some modifications to its computer system.

Reading your journey into discovering what makes the CeC tick definitely makes me appreciate the Prestolite ignition system and Carter YF in my CJ-5, although I will admit that I've been very tempted to take my spare module apart to see the guts. I fully understand about talking to brick walls, because so many people, lead by a self-proclaimed ignition expert on the Jeep Forum, are convinced that the Prestolite ignition is crap but, in reality, much like your O2 sensors, it's a matter of Preventative Maintenance. BTW, my ignition and fuel system is still 100% original and I get between 21-23 MPG highway up here in Idaho, 17-19 MPG in the city.

Good luck with your endeavors.


Edited by FLynes - Jul/31/2020 at 1:23pm
Fred

1976 CJ-5
<font color=LIME GREEN>Lime Green[/COLOR]
258/T-150
3.54:1
Back to Top
MIPS View Drop Down
AMC Nut
AMC Nut
Avatar

Joined: Mar/11/2019
Location: Kamloops, BC
Status: Offline
Points: 346
Post Options Post Options   Thanks (0) Thanks(0)   Quote MIPS Quote  Post ReplyReply Direct Link To This Post Posted: Oct/28/2020 at 8:29pm
Funny enough, Mr. Carlson lives a few hours west of me down on the coast. I drive past his neck of the woods a few times a year. Legend has it AvE is even closer, but nobody knows for sure.
I'm not even sure how you would get in touch with Carlson. Ever since youtube abandoned private messaging years ago I've had no clue how to contact other users.
Back to Top
5704nMango View Drop Down
AMC Fan
AMC Fan
Avatar

Joined: Jan/11/2021
Location: Palos Heghts
Status: Offline
Points: 1
Post Options Post Options   Thanks (0) Thanks(0)   Quote 5704nMango Quote  Post ReplyReply Direct Link To This Post Posted: Jan/11/2021 at 5:47am
Thanks for all your information on the 196,you have given me the confidence to work on mine. I have a 1962 Rambler American that needs work, engine and body. I have a ton of questions I would like to ask you
Back to Top
ciostko View Drop Down
AMC Fan
AMC Fan


Joined: Feb/07/2021
Location: Poland
Status: Offline
Points: 2
Post Options Post Options   Thanks (0) Thanks(0)   Quote ciostko Quote  Post ReplyReply Direct Link To This Post Posted: Feb/07/2021 at 5:50pm
Hello, I'm in the process of writing my Master Thesis. I will be conducting tests on parts from the inline 6 cylinder 4.0L Jeep engine. I need to find out what materials each component is made of and whether they have any anti-wear coatings. Parts that interest me: - engine block (especially cylinders / sleeves) - crankshaft - pistons - piston pins - piston rings - main and crank bearings - camshaft - camshaft cams - inlet and outlet valves I don't need the percentages of the individual alloys. I just need general information about what is there. I look forward to hearing from you. Could you be that kind and help me? Or tell me where can I find those informations?
Best regards
Back to Top
MIPS View Drop Down
AMC Nut
AMC Nut
Avatar

Joined: Mar/11/2019
Location: Kamloops, BC
Status: Offline
Points: 346
Post Options Post Options   Thanks (0) Thanks(0)   Quote MIPS Quote  Post ReplyReply Direct Link To This Post Posted: Aug/17/2022 at 12:49am
I am still working away at this. It has slipped further down the list of things to do but in the last few months I was asked what could cause the stepper motor driver to blow up as it seems it has happened multiple times to multiple people

As I believe I mentioned a few pages back, the stepper motor on the feedback Carter 2bbd is a 2-phase center tapped device that connects directly to the computer. Inside it is driven by a 16-pin DIP made by National Semiconductor but Ford has put their own custom marking on the chip which you will not find in any parts catalog which makes it very hard to determine what the chip really is and made even harder by the possibility it has not been in production for decades. The best you can do is look at the circuit around the chip to see how the circuit is designed. I went back to my computers and came up with this:



It isn't a dedicated stepper motor driver chip. (which is a little bit of a relief) Two identical chips are used to drive the stepper motor and the solenoids for the Air Management System, the vacuum control of the Sol-Vac and I think the Idle Speed Relay. They are likely high current drivers. Four data lines come directly from the microprocessor, power goes in, you have grounding and you have the signal outputs. In this case the outputs are not "pulled high" (that is the "off" state is equal to ground) but "pulled low" (the "on" state is equal to ground). The stepper motor and everything else when the computer is powered is also getting battery voltage full-time. It just needs the driver to complete the path to ground and the driver is there in the first place because microcontrollers on their own are pretty lousy at doing this and it typically protects the microcontroller in the event of a fault.
Why does this matter? The hint was a sticker inside the carrying case for my ET-501 tester warning that when testing vehicles equipped with secondary air, make sure the solenoids are not shorted BEFORE connecting the tool. If the solenoids are shorted (or more likely, the flywheel diode has failed in a dead short) when you apply power you force battery voltage with no current limiter into the tester and fry it. The same applies to the drivers in the computer. If the solenoids or stepper shorts directly between battery voltage and the signal pin there is probably no protection mechanism in the chip as the windings should of been doing this for you and it blows up as soon as it tries to pull the line to ground.
Back to Top
MIPS View Drop Down
AMC Nut
AMC Nut
Avatar

Joined: Mar/11/2019
Location: Kamloops, BC
Status: Offline
Points: 346
Post Options Post Options   Thanks (0) Thanks(0)   Quote MIPS Quote  Post ReplyReply Direct Link To This Post Posted: Aug/20/2023 at 3:36pm
I think I did it. The adapter came in and the ROM seemed to dump and verify back to the microcontroller with the same checksum.



I have NOT however verified if it was a *GOOD* dump. The only way to do that is write the binary back to another chip (like the Intel 8749 which is the same chip, but with a window so you can erase and reprogram the ROM using a UV lamp), plug that back into the CeC and run the MCU test on the ET-501 but right now my programmer has enough umpf to read but fails while trying to write.

So nobody break out the champagne just yet, if reverse engineering an 80's emission system is something to celebrate. In the meantime I quickly fed it through a code disassembler. The code below is from a 1982 model year Eagle with Canadian emissions. It is untested to confirm if it's actually valid.

;
;     Disassembled by:
;          DASMx object code disassembler
;          (c) Copyright 1996-2003   Conquest Consultants
;          Version 1.40 (Oct 18 2003)
;
;     File:          1982_CDN.BIN
;
;     Size:          2048 bytes
;     Checksum:     706E
;     CRC-32:          29F2FF0A
;
;     Date:          Sun Aug 20 13:08:45 2023
;
;     CPU:          Intel 8048 (MCS-48 family)
;
;
;
     org     00000H
;
     sel     mb0
     jmp     L0100
;
L0003:
     dis     i
     sel     mb0
     jmp     L045A
;
     sel     mb0
     sel     rb1
     mov     r2,a
     mov     a,#0F4H
     mov     t,a
     inc     r4
     mov     a,r4
     jnz     L0013
     mov     r4,#0FFH
L0013:
     mov     r0,#04BH
     mov     a,@r0
     jz     L001A
     dec     a
     mov     @r0,a
L001A:
     call     L07EE
     mov     r0,#054H
     mov     a,@r0
     jz     L0022
     inc     @r0
L0022:
     mov     r0,#02FH
     mov     a,@r0
     jz     L0028
     inc     @r0
L0028:
     jnz     L002C
     anl     p1,#0BFH
L002C:
     mov     r0,#030H
     mov     a,@r0
     jz     L0034
     inc     @r0
     jmp     L0040
;
L0034:
     mov     @r0,#0F6H
     call     L04EC
     mov     r0,#032H
     mov     a,@r0
     mov     r0,#02FH
     mov     @r0,a
     orl     p1,#040H
L0040:
     sel     rb0
     mov     a,r3
     add     a,#09BH
     jc     L0003
     sel     rb1
     clr     c
     jnt1     L004B
     cpl     c
L004B:
     mov     r1,#034H
     mov     a,@r1
     rlc     a
     mov     @r1,a
     mov     r0,#03BH
     jni     L0093
     mov     a,@r0
     jnz     L0095
     cpl     a
     mov     @r0,a
     mov     r0,#052H
     mov     @r0,#0C8H
     mov     r0,#054H
     mov     @r0,#0DAH
     mov     r0,#03DH
     mov     a,@r1
     anl     a,#00FH
     jz     L006D
     xrl     a,#00FH
     jnz     L0075
     cpl     a
L006D:
     mov     @r1,a
     xrl     a,@r0
     jz     L0075
     mov     a,@r1
     mov     @r0,a
     jmp     L0080
;
L0075:
     mov     r1,#038H
     mov     a,@r0
     mov     @r1,a
     mov     r1,#04CH
     xrl     a,@r1
     jz     L0080
     mov     a,@r0
     mov     @r1,a
L0080:
     mov     r0,#039H
     inc     @r0
     mov     a,@r0
     jnz     L008C
     mov     @r0,#0FCH
     mov     a,r4
     mov     r5,a
     mov     r4,#000H
L008C:
     sel     rb0
     mov     a,r5
     jz     L0095
     dec     r5
     jmp     L0095
;
L0093:
     mov     @r0,#000H
L0095:
     call     L0465
     djnz     r6,L00F8
     mov     r6,#005H
     mov     r0,#02BH
     mov     a,@r0
     jnz     L00A6
     mov     r1,#02EH
     inc     @r1
     mov     a,@r1
     jb0     L00D7
L00A6:
     sel     rb0
     mov     a,r3
     sel     rb1
     cpl     a
     add     a,r3
     inc     a
     jz     L00D6
     jnc     L00B3
     dec     r3
     jmp     L00B4
;
L00B3:
     inc     r3
L00B4:
     mov     a,r3
     anl     a,#003H
     add     a,#0BAH
     jmpp     @a                              ;INFO: indirect jump
;
     mov     r6,#0C4H
     dec     r2
     xrl     a,@r0
     orl     p1,#009H
     anl     p1,#0F9H
     jmp     L00D7
;
     orl     p1,#00AH
     anl     p1,#0FAH
     jmp     L00D7
;
     orl     p1,#006H
     anl     p1,#0F6H
     jmp     L00D7
;
     orl     p1,#005H
     anl     p1,#0F5H
     jmp     L00D7
;
L00D6:
     clr     f1
L00D7:
     djnz     r7,L00F8
     mov     r7,#015H
     mov     r0,#050H
     mov     a,@r0
     jz     L00E1
     inc     @r0
L00E1:
     mov     r0,#051H
     mov     a,@r0
     jz     L00E7
     inc     @r0
L00E7:
     sel     rb0
     mov     a,r6
     jz     L00EC
     dec     r6
L00EC:
     sel     rb1
     mov     r0,#04EH
     mov     a,@r0
     jz     L00F6
     inc     a
     mov     @r0,a
     jmp     L00F8
;
L00F6:
     call     L0500
L00F8:
     jmp     L0442
;
L00FA:
     call     L0550
     ret
;
     mov     a,r7
     jmp     L045A
;
L0100:
     mov     r1,#064H
L0102:
     mov     r0,#082H
L0104:
     djnz     r0,L0104
     djnz     r1,L0102
L0108:
     mov     r0,#06FH
     clr     a
L010B:
     mov     @r0,a
     djnz     r0,L010B
     call     L078B
     mov     r0,#036H
     mov     @r0,#032H
     ins     a,bus
     jb4     L0119
     mov     @r0,#019H
L0119:
     mov     a,@r0
     mov     r0,#048H
     mov     @r0,a
     mov     r0,#049H
     mov     @r0,a
     mov     a,#0F4H
     mov     t,a
     en     tcnti
     strt     t
     mov     r3,#064H
     call     L0608
     mov     r3,#032H
     call     L0608
L012D:
     sel     rb1
     mov     a,r5
     sel     rb0
     add     a,#01BH
     jnc     L0136
     jmp     L012D
;
L0136:
     mov     r0,#031H
     mov     @r0,#0EAH
     jmp     L013C
;
L013C:
     sel     mb0
     en     tcnti
     call     L04A9
     call     L0712
     in     a,p2
     jb6     L0149
     mov     a,#089H
     jmp     L014B
;
L0149:
     mov     a,#091H
L014B:
     sel     rb1
     add     a,r5
     sel     rb0
     jnc     L0156
     mov     a,r4
     anl     a,#0FBH
     mov     r4,a
     jmp     L015A
;
L0156:
     mov     a,r4
     orl     a,#004H
     mov     r4,a
L015A:
     call     L02E3
     mov     r0,#036H
     mov     @r0,#032H
     ins     a,bus
     jb4     L0165
     mov     @r0,#019H
L0165:
     mov     r1,#03CH
     mov     r0,#02AH
     mov     a,@r0
     mov     r0,#05EH
     mov     @r0,a
     xrl     a,@r1
     mov     r0,#041H
     mov     @r0,#0FFH
     jnz     L0176
     mov     @r0,#000H
L0176:
     mov     r1,#05EH
     mov     a,@r1
     anl     a,#007H
     xrl     a,#005H
     jnz     L0186
     mov     r1,#043H
     mov     a,@r1
     jz     L0186
     mov     @r0,#0FFH
L0186:
     mov     r0,#05EH
     mov     a,@r0
     mov     r1,#03CH
     mov     @r1,a
     mov     r0,#037H
     mov     @r0,#000H
     sel     rb1
     mov     a,r5
     sel     rb0
     add     a,#0DAH
     jc     L0199
     mov     @r0,#0FFH
L0199:
     jmp     L060D
;
L019B:
     mov     @r1,#0FCH
     call     L0542
L019F:
     mov     r0,#036H
     mov     a,@r0
     jmp     L0405
;
L01A4:
     call     L03D8
L01A6:
     call     L0542
L01A8:
     mov     r0,#036H
     mov     a,@r0
     add     a,#021H
     jmp     L0405
;
L01AF:
     mov     a,@r0
     jz     L01B6
     call     L01F2
     jmp     L01A6
;
L01B6:
     mov     @r1,#0FEH
     jmp     L01A6
;
L01BA:
     mov     @r1,#0FFH
     jmp     L0300
;
L01BE:
     call     L03D8
     jmp     L01A6
;
L01C2:
     mov     @r1,#0FEH
     jmp     L0300
;
L01C6:
     mov     a,@r0
     jz     L01CD
     mov     @r1,#0FCH
     jmp     L05BB
;
L01CD:
     call     L03E8
     jmp     L05BB
;
L01D1:
     mov     a,@r0
     jz     L01D8
     mov     @r1,#0FCH
     jmp     L05C8
;
L01D8:
     call     L03E8
     jmp     L05C8
;
L01DC:
     mov     a,@r0
     jz     L01E3
     mov     @r1,#0FDH
     jmp     L01E5
;
L01E3:
     call     L0200
L01E5:
     jmp     L05BB
;
L01E7:
     mov     a,@r0
     jz     L01EE
     mov     @r1,#0FDH
     jmp     L01F0
;
L01EE:
     call     L0200
L01F0:
     jmp     L05C8
;
L01F2:
     in     a,p2
     jb0     L01F8
     mov     @r1,#0FEH
     ret
;
L01F8:
     mov     @r1,#0FDH
     ret
;
     mov     a,r7
     mov     a,r7
     mov     a,r7
     jmp     L045A
;
L0200:
     jt0     L0205
     mov     @r1,#0FDH
     ret
;
L0205:
     mov     @r1,#0FEH
     ret
;
L0208:
     mov     a,r4
     anl     a,#0FEH
     mov     r4,a
     mov     r0,#041H
     mov     a,@r0
     jnz     L021A
     jf1     L022F
     mov     r1,#038H
     mov     a,@r1
     jz     L0231
     jmp     L02A7
;
L021A:
     mov     a,r4
     orl     a,#02AH
     anl     a,#0BFH
     mov     r4,a
     mov     r0,#05EH
     mov     a,@r0
     jb2     L0229
     mov     r0,#048H
     jmp     L022B
;
L0229:
     mov     r0,#049H
L022B:
     mov     a,@r0
     mov     r3,a
     clr     f1
     cpl     f1
L022F:
     jmp     L013C
;
L0231:
     mov     a,r4
     orl     a,#008H
     mov     r4,a
     mov     a,r4
     anl     a,#002H
     jnz     L026A
     mov     a,r5
     jnz     L022F
     mov     r0,#04BH
     mov     a,@r0
     jnz     L022F
     mov     r0,#033H
     mov     a,@r0
     jz     L0249
     jmp     L0257
;
L0249:
     mov     r0,#05EH
     mov     a,@r0
     anl     a,#007H
     xrl     a,#005H
     jnz     L0260
     mov     a,r4
     anl     a,#004H
     jnz     L0260
L0257:
     mov     a,r3
     jz     L022F
     dec     a
     call     L0530
     mov     r3,a
     jmp     L0264
;
L0260:
     mov     a,r3
     jz     L022F
     dec     r3
L0264:
     clr     f1
     cpl     f1
     call     L0428
     jmp     L013C
;
L026A:
     mov     a,r4
     anl     a,#020H
     jnz     L02A1
     mov     a,r4
     anl     a,#040H
     jnz     L028C
     mov     r0,#02CH
     mov     a,r3
     mov     @r0,a
     mov     r0,#05EH
     mov     a,@r0
     anl     a,#007H
     xrl     a,#005H
     jz     L0283
     call     L04AA
L0283:
     mov     a,#007H
     mov     r6,a
     mov     a,r4
     orl     a,#040H
     mov     r4,a
     jmp     L013C
;
L028C:
     mov     a,r6
     jnz     L022F
     mov     a,r4
     anl     a,#0BDH
     mov     r4,a
L0293:
     mov     r0,#02CH
     mov     a,@r0
     mov     r0,#02DH
     add     a,@r0
     inc     a
     clr     c
     rrc     a
     mov     r3,a
     clr     f1
     cpl     f1
     jmp     L013C
;
L02A1:
     mov     a,r4
     anl     a,#0DDH
     mov     r4,a
     jmp     L013C
;
L02A7:
     mov     a,r4
     orl     a,#002H
     mov     r4,a
     mov     a,r4
     anl     a,#008H
     jnz     L02C0
     mov     a,r5
     jnz     L022F
     mov     r0,#04BH
     mov     a,@r0
     jnz     L022F
     mov     a,r3
     add     a,#09CH
     jc     L022F
     inc     r3
     jmp     L0264
;
L02C0:
     mov     a,r4
     anl     a,#020H
     jnz     L02DD
     mov     a,r4
     anl     a,#040H
     jnz     L02D4
     mov     r0,#02DH
     mov     a,r3
     mov     @r0,a
     mov     a,r4
     orl     a,#040H
     mov     r4,a
     jmp     L013C
;
L02D4:
     mov     a,r6
     jnz     L022F
     mov     a,r4
     anl     a,#0B7H
     mov     r4,a
     jmp     L0293
;
L02DD:
     mov     a,r4
     anl     a,#0D7H
     mov     r4,a
     jmp     L013C
;
L02E3:
     mov     r0,#042H
     mov     a,r4
     anl     a,#004H
     xrl     a,@r0
     mov     r1,#043H
     jz     L02F1
     mov     @r1,#0FFH
     jmp     L02F3
;
L02F1:
     mov     @r1,#000H
L02F3:
     mov     a,r4
     anl     a,#004H
     mov     @r0,a
     ret
;
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     jmp     L045A
;
L0300:
     call     L0542
     mov     r0,#036H
     mov     a,@r0
     add     a,#02AH
     jmp     L0405
;
L0309:
     call     L03D8
     jf0     L0314
L030D:
     call     L0550
L030F:
     mov     r0,#048H
     mov     a,@r0
     jmp     L0405
;
L0314:
     call     L0547
     jmp     L0400
;
L0318:
     mov     @r1,#0FEH
L031A:
     call     L0550
     jmp     L01A8
;
L031E:
     mov     a,@r0
     jz     L0325
     call     L01F2
     jmp     L0327
;
L0325:
     mov     @r1,#0FEH
L0327:
     jf0     L0314
     jmp     L030D
;
L032B:
     mov     @r1,#0FFH
     jmp     L031A
;
L032F:
     jf0     L034F
     mov     a,r4
     anl     a,#004H
     jnz     L0349
     mov     @r1,#0F9H
     call     L0550
L033A:
     mov     r0,#036H
     ins     a,bus
     jb6     L0344
     mov     a,#00FH
     add     a,@r0
     jmp     L0405
;
L0344:
     mov     a,#019H
     add     a,@r0
     jmp     L0405
;
L0349:
     mov     @r1,#0FCH
     call     L0547
     jmp     L0208
;
L034F:
     mov     a,r4
     anl     a,#004H
     jnz     L035A
     mov     @r1,#0F9H
     call     L0550
     jmp     L033A
;
L035A:
     mov     @r1,#0FCH
     call     L0547
     jmp     L033A
;
L0360:
     mov     a,r4
     anl     a,#004H
     jnz     L0369
     mov     @r1,#0FAH
     jmp     L036B
;
L0369:
     mov     @r1,#0FCH
L036B:
     call     L0550
     jmp     L033A
;
L036F:
     call     L03D8
     call     L0542
     mov     r0,#048H
     mov     a,@r0
     add     a,#021H
     jmp     L0405
;
L037A:
     mov     a,@r0
     jz     L0381
     mov     @r1,#0FDH
     jmp     L05BB
;
L0381:
     call     L0200
     jmp     L05BB
;
L0385:
     mov     a,@r0
     jz     L038C
     mov     @r1,#0FDH
     jmp     L05C8
;
L038C:
     call     L0200
     jmp     L05C8
;
L0390:
     mov     a,@r0
     jz     L0397
     mov     @r1,#0FEH
     jmp     L0399
;
L0397:
     call     L05ED
L0399:
     call     L0550
     jmp     L019F
;
L039D:
     mov     a,@r0
     jz     L03A4
     mov     @r1,#0FEH
     jmp     L0300
;
L03A4:
     call     L05ED
     jmp     L0300
;
L03A8:
     mov     a,@r0
     jz     L03AF
     mov     @r1,#0FEH
     jmp     L0399
;
L03AF:
     call     L05ED
     jmp     L0399
;
L03B3:
     mov     a,@r0
     jz     L03BA
     mov     @r1,#0FFH
     jmp     L0300
;
L03BA:
     mov     @r1,#000H
     jmp     L0300
;
L03BE:
     mov     a,r4
     anl     a,#004H
     jnz     L03C7
     mov     @r1,#0F9H
     jmp     L0300
;
L03C7:
     mov     @r1,#0FCH
     jmp     L0300
;
L03CB:
     mov     a,r4
     anl     a,#004H
     jnz     L03D4
     mov     @r1,#0F9H
     jmp     L0300
;
L03D4:
     mov     @r1,#0FCH
     jmp     L0300
;
L03D8:
     sel     rb1
     mov     a,r5
     sel     rb0
     add     a,#0E9H
     jc     L03E5
     in     a,p2
     jb1     L03E5
     mov     @r1,#0FEH
     ret
;
L03E5:
     mov     @r1,#0FDH
     ret
;
L03E8:
     in     a,p2
     jb3     L03EE
     mov     @r1,#0FDH
     ret
;
L03EE:
     mov     @r1,#0FCH
     ret
;
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     jmp     L045A
;
L0400:
     mov     r0,#036H
     mov     a,@r0
     jmp     L0405
;
L0405:
     mov     r1,a
     mov     r0,#05EH
     mov     a,@r0
     anl     a,#007H
     xrl     a,#005H
     jnz     L0419
     mov     a,r4
     anl     a,#004H
     jnz     L0419
     mov     a,r1
     call     L0530
     jmp     L041A
;
L0419:
     mov     a,r1
L041A:
     add     a,#09CH
     jnc     L041F
     clr     a
L041F:
     add     a,#064H
     mov     r3,a
     mov     a,r4
     orl     a,#001H
     mov     r4,a
     jmp     L013C
;
L0428:
     sel     rb1
     mov     a,r5
     sel     rb0
     add     a,#0D6H
     jnc     L0439
     sel     rb1
     mov     a,r5
     sel     rb0
     add     a,#0C1H
     jnc     L043D
     mov     r5,#008H
     ret
;
L0439:
     mov     a,#00CH
     mov     r5,a
     ret
;
L043D:
     mov     r0,#04BH
     mov     @r0,#07DH
     ret
;
L0442:
     mov     a,psw
     dec     a
     anl     a,#007H
     add     a,#0FAH
     jc     L045A
     add     a,#006H
     rl     a
     add     a,#009H
     mov     r1,a
     mov     a,@r1
     anl     a,#00FH
     add     a,#0F8H
     jc     L045A
     mov     a,r2
     en     tcnti
     retr
;
L045A:
     dis     tcnti
     dis     i
     clr     a
     mov     psw,a
     sel     mb0
     call     L04A9
     sel     rb0
     movx     a,@r0
     jmp     L0108
;
L0465:
     sel     rb1
     mov     r0,#029H
     mov     r1,#028H
     ins     a,bus
     anl     a,#03FH
     xch     a,@r0
     xrl     a,@r0
     jz     L0475
     mov     @r1,#0FDH
     jmp     L04A0
;
L0475:
     inc     @r1
     mov     a,@r1
     jnz     L04A0
     mov     a,@r0
     mov     r0,#02AH
     mov     @r0,a
     anl     a,#01DH
     xrl     a,#011H
     jnz     L0487
     mov     r0,#03AH
     mov     @r0,#0CAH
L0487:
     sel     rb0
     mov     a,r4
     anl     a,#080H
     jnz     L04A0
     sel     rb1
     mov     r0,#02AH
     mov     a,@r0
     anl     a,#007H
     xrl     a,#004H
     jz     L04A2
     mov     a,@r0
     anl     a,#007H
     jz     L04A2
     mov     r0,#033H
     mov     @r0,#010H
L04A0:
     sel     rb1
     ret
;
L04A2:
     sel     rb0
     mov     a,r4
     orl     a,#080H
     mov     r4,a
     sel     rb1
     ret
L04A9:
     retr
;
L04AA:
     mov     r1,#05EH
     mov     a,@r1
     jb2     L04B3
     mov     r1,#048H
     jmp     L04B5
;
L04B3:
     mov     r1,#049H
L04B5:
     mov     r0,#02CH
     mov     a,@r0
     mov     r0,#02DH
     add     a,@r0
     clr     c
     rrc     a
     clr     c
     add     a,@r1
     add     a,@r1
     jc     L04C5
     add     a,@r1
     jmp     L04C8
;
L04C5:
     add     a,@r1
     clr     c
     cpl     c
L04C8:
     rrc     a
     clr     c
     rrc     a
     jnc     L04CE
     inc     a
L04CE:
     mov     @r1,a
L04CF:
     ret
;
L04D0:
     mov     @r1,#0FEH
     jmp     L0300
;
L04D4:
     mov     a,r4
     anl     a,#004H
     jnz     L04DD
     mov     @r1,#0FAH
     jmp     L0300
;
L04DD:
     mov     @r1,#0FCH
     jmp     L0300
;
L04E1:
     mov     a,@r0
     jz     L04E8
     mov     @r1,#0FFH
     jmp     L0399
;
L04E8:
     mov     @r1,#000H
     jmp     L0399
;
L04EC:
     mov     a,r5
     add     a,#0E3H
     jc     L04CF
     ins     a,bus
     jb0     L04FA
     mov     r0,#032H
     mov     a,@r0
     add     a,#0FFH
     mov     @r0,a
L04FA:
     ret
;
     mov     a,r7
     mov     a,r7
     mov     a,r7
     jmp     L045A
;
L0500:
     mov     @r0,#0F7H
     mov     r0,#031H
     mov     a,@r0
     jz     L0508
     inc     @r0
L0508:
     mov     r0,#03EH
     mov     a,@r0
     jz     L050E
     inc     @r0
L050E:
     mov     r0,#03FH
     mov     a,@r0
     jz     L0514
     inc     @r0
L0514:
     mov     r0,#057H
     mov     a,@r0
     jz     L051A
     inc     @r0
L051A:
     mov     r0,#033H
     mov     a,@r0
     jz     L0520
     inc     @r0
L0520:
     mov     r0,#04FH
     mov     a,@r0
     jnz     L052E
     mov     @r0,#0F6H
     mov     r0,#03AH
     mov     a,@r0
     jz     L052D
     inc     @r0
L052D:
     ret
;
L052E:
     inc     @r0
     ret
;
L0530:
     mov     r0,a
     mov     r1,#036H
     mov     a,@r1
     add     a,#0F6H
     cpl     a
     inc     a
     clr     c
     add     a,r0
     jc     L0540
     mov     a,@r1
     add     a,#0F6H
     ret
;
L0540:
     mov     a,r0
     ret
;
L0542:
     orl     p1,#010H
     anl     p1,#0DFH
     ret
;
L0547:
     call     L0559
     jz     L0542
     anl     p1,#0EFH
     anl     p1,#0DFH
     ret
;
L0550:
     call     L0559
     jz     L0542
     anl     p1,#0EFH
     orl     p1,#020H
     ret
;
L0559:
     mov     r0,#03FH
     mov     a,@r0
     jz     L056C
     mov     r0,#03EH
     mov     a,@r0
     jz     L056C
     sel     rb1
     mov     a,r5
     sel     rb0
     cpl     a
     jz     L056C
     mov     a,#0FFH
     ret
;
L056C:
     mov     a,#000H
     ret
;
L056F:
     mov     @r1,#0FEH
     call     L0542
     jmp     L01A8
;
L0575:
     mov     a,@r0
     jz     L057C
     call     L01F2
     jmp     L057E
;
L057C:
     mov     @r1,#0FEH
L057E:
     jf0     L0584
     call     L06F8
     jmp     L030F
;
L0584:
     call     L0700
     jmp     L0400
;
L0588:
     mov     @r1,#0FFH
     call     L06F8
     jmp     L01A8
;
L058E:
     mov     a,r4
     anl     a,#004H
     jnz     L059B
     mov     @r1,#0F9H
     jf0     L0597
L0597:
     call     L06F8
L0599:
     jmp     L033A
;
L059B:
     mov     @r1,#0FCH
     call     L0700
     jf0     L0599
     jmp     L0208
;
L05A3:
     mov     a,r4
     anl     a,#004H
L05A6:
     jnz     L05AC
     mov     @r1,#0FAH
     jmp     L05AE
;
L05AC:
     mov     @r1,#0FCH
L05AE:
     call     L06F8
     jmp     L033A
;
L05B2:
     mov     a,@r0
     jz     L05B9
     mov     @r1,#0FCH
     jmp     L05BB
;
L05B9:
     call     L03E8
L05BB:
     jf0     L05CE
     jmp     L070B
;
L05BF:
     mov     a,@r0
     jz     L05C6
     mov     @r1,#0FCH
     jmp     L05C8
;
L05C6:
     call     L03E8
L05C8:
     call     L0547
     jf0     L05D0
     jmp     L0208
L05CE:
     jmp     L0300
L05D0:
     jmp     L019F
;
L05D2:
     mov     r0,#031H
     mov     @r0,#000H
     mov     r0,#057H
     mov     @r0,#000H
     mov     r0,#050H
     mov     @r0,#000H
     mov     r0,#051H
     mov     @r0,#000H
     jmp     L019B
L05E4:
     jmp     L0600
;
L05E6:
     mov     a,@r0
     jz     L05E4
     mov     @r1,#0FEH
     jmp     L0300
;
L05ED:
     in     a,p2
     jb2     L05F3
     mov     @r1,#0FFH
     ret
;
L05F3:
     mov     @r1,#0FEH
     ret
;
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     mov     a,r7
     jmp     L045A
;
L0600:
     call     L05ED
     jmp     L0300
;
     mov     @r1,#0FEH
     jmp     L0300
;
L0608:
     clr     f1
     cpl     f1
L060A:
     jf1     L060A
     ret
;
L060D:
     clr     f0
     mov     r0,#031H
     mov     a,@r0
     jz     L0614
     cpl     f0
L0614:
     mov     r0,#05EH
     mov     a,@r0
     anl     a,#03DH
     xrl     a,#039H
     jz     L0621
     mov     r1,#03EH
     mov     @r1,#0E2H
L0621:
     mov     a,@r0
     anl     a,#025H
     xrl     a,#025H
     jz     L062C
     mov     r1,#03FH
     mov     @r1,#0C4H
L062C:
     mov     r1,#032H
     mov     r0,#05EH
     mov     a,@r0
     mov     r0,#037H
     add     a,#036H
     jmpp     @a                              ;INFO: indirect jump
;
     jf1     L0678
     addc     a,r2
     addc     a,r4
     addc     a,r6
     movx     a,@r0
;
     db     082H
;
     jmp     L0486
;
     orl     bus,#08AH
     orld     p4,a
     orld     p6,a
     movx     @r0,a
     jb4     L0694
     jnz     L0698
     anl     p2,#09CH
     anld     p6,a
     mov     @r0,a
;
     db     0A2H
;
     jmp     L05A6
;
     mov     r0,a
     mov     r2,a
     mov     r4,a
     mov     r6,a
     mov     @r0,#0B2H
     call     L05B6
     mov     r0,#0BAH
     mov     r4,#0BEH
;
     db     0C0H, 0C2H
;
     jmp     L06C6
;
     dec     r0
     dec     r2
     dec     r4
     dec     r6
     xrl     a,@r0
     jb6     L06D4
;
     db     0D6H
;
     xrl     a,r0
     xrl     a,r2
     xrl     a,r4
     xrl     a,r6
;
     db     0E0H, 0E2H
;
     jmp     L07E6
;
     djnz     r0,L06EA
     djnz     r4,L06EE
     mov     a,@r0
     jb7     L06F4
     jmp     L05D2
L0678:
     jmp     L01A4
     jmp     L019B
     jmp     L04D0
     jmp     L019B
     jmp     L019B
     jmp     L019B
     jmp     L019B
     jmp     L05B2
     jmp     L01AF
     jmp     L05E6
     jmp     L01BA
     jmp     L01DC
     jmp     L03BE
     jmp     L07D8
L0694:
     jmp     L04D4
     jmp     L019B
L0698:
     jmp     L01BE
     jmp     L019B
     jmp     L01C2
     jmp     L019B
     jmp     L019B
     jmp     L019B
     jmp     L019B
     jmp     L01C6
     jmp     L07CD
     jmp     L039D
     jmp     L01BA
     jmp     L037A
     jmp     L03CB
     jmp     L03B3
     jmp     L04D4
     jmp     L019B
     jmp     L0309
     jmp     L019B
     jmp     L0318
     jmp     L019B
     jmp     L019B
     jmp     L019B
     jmp     L019B
L06C6:
     jmp     L05BF
     jmp     L031E
     jmp     L0390
     jmp     L032B
     jmp     L01E7
     jmp     L032F
     jmp     L04E1
L06D4:
     jmp     L0360
     jmp     L019B
     jmp     L036F
     jmp     L019B
     jmp     L056F
     jmp     L019B
     jmp     L019B
     jmp     L019B
     jmp     L019B
     jmp     L01D1
     jmp     L0575
L06EA:
     jmp     L03A8
     jmp     L0588
L06EE:
     jmp     L0385
     jmp     L058E
     jmp     L07E3
L06F4:
     jmp     L05A3
L06F6:
     jmp     L00FA
;
L06F8:
     mov     r0,#03AH
     mov     a,@r0
     jz     L06F6
     call     L0542
     ret
;
L0700:
     mov     r0,#03AH
     mov     a,@r0
     jz     L0708
     call     L0542
     ret
;
L0708:
     call     L0547
     ret
;
L070B:
     call     L0542
     mov     r0,#036H
     mov     a,@r0
     jmp     L0405
;
L0712:
     mov     r0,#050H
     mov     a,@r0
     jnz     L071E
     mov     r0,#056H
     mov     a,@r0
     jnz     L071E
     anl     p2,#0EFH
L071E:
     mov     r0,#051H
     mov     a,@r0
     jnz     L0725
     anl     p2,#0DFH
L0725:
     mov     r0,#057H
     mov     a,@r0
     jz     L072F
     mov     r0,#051H
     mov     @r0,#0F6H
     ret
;
L072F:
     ins     a,bus
     jb5     L0738
     orl     p2,#010H
     mov     r0,#050H
     mov     @r0,#0F6H
L0738:
     mov     r0,#052H
     mov     a,@r0
     jnz     L074D
     orl     p2,#010H
     orl     p2,#020H
     mov     r0,#050H
     mov     @r0,#0FCH
     mov     r0,#051H
     mov     @r0,#0E7H
     mov     r0,#055H
     mov     @r0,#0FFH
L074D:
     mov     r0,#055H
     mov     a,@r0
     jz     L0764
     mov     r1,#05EH
     mov     a,@r1
     jb0     L0760
     mov     r1,#051H
     mov     a,@r1
     jnz     L0764
     mov     @r0,#000H
     jmp     L0764
;
L0760:
     mov     r0,#051H
     mov     @r0,#0E7H
L0764:
     mov     r0,#05EH
     mov     a,@r0
     anl     a,#005H
     xrl     a,#005H
     jnz     L0777
     mov     r0,#054H
     mov     a,@r0
     jnz     L078A
     mov     r0,#053H
     mov     @r0,#0FFH
     ret
;
L0777:
     mov     r0,#053H
     mov     a,@r0
     jz     L078A
     mov     @r0,#000H
     orl     p2,#010H
     orl     p2,#020H
     mov     r0,#051H
     mov     @r0,#0E7H
     mov     r0,#056H
     mov     @r0,#098H
L078A:
     ret
;
L078B:
     mov     a,#0F9H
     outl     p1,a
     orl     p2,#0FFH
     orl     p1,#020H
     anl     p1,#0EFH
     sel     rb1
     mov     r5,#0FFH
     mov     r7,#015H
     mov     r6,#005H
     sel     rb0
     mov     r0,#051H
     mov     @r0,#0CEH
     mov     r0,#050H
     mov     @r0,#06AH
     mov     r0,#057H
     mov     @r0,#0C4H
     mov     r0,#052H
     mov     @r0,#0C8H
     mov     r0,#054H
     mov     @r0,#0DAH
     mov     r0,#02CH
     mov     @r0,#032H
     inc     r0
     mov     @r0,#032H
     mov     r0,#03EH
     mov     @r0,#0E2H
     mov     r0,#03FH
     mov     @r0,#0C4H
     mov     r0,#039H
     mov     @r0,#0FCH
     mov     r4,#00BH
     ins     a,bus
     jb1     L07CC
     mov     a,r4
     orl     a,#080H
     mov     r4,a
L07CC:
     ret
;
L07CD:
     mov     a,@r0
     jz     L07D4
     call     L01F2
     jmp     L01A6
;
L07D4:
     mov     @r1,#0FEH
     jmp     L01A6
;
L07D8:
     mov     a,@r0
     jz     L07DF
     mov     @r1,#0FFH
     jmp     L0300
;
L07DF:
     mov     @r1,#000H
     jmp     L0300
;
L07E3:
     mov     a,@r0
     jz     L07EA
L07E6:
     mov     @r1,#0FFH
     jmp     L0399
;
L07EA:
     mov     @r1,#000H
     jmp     L0399
;
L07EE:
     mov     r0,#052H
     mov     a,@r0
     jz     L07F4
     inc     @r0
L07F4:
     mov     r0,#056H
     mov     a,@r0
     jz     L07FA
     inc     @r0
L07FA:
     ret
;
     mov     a,r7
     mov     a,r7
     mov     a,r7
     jmp     L045A
Back to Top
6PakBee View Drop Down
Supporter of TheAMCForum
Supporter of TheAMCForum
Avatar
Charter Member

Joined: Jul/01/2007
Location: North Dakota
Status: Offline
Points: 5454
Post Options Post Options   Thanks (0) Thanks(0)   Quote 6PakBee Quote  Post ReplyReply Direct Link To This Post Posted: Aug/20/2023 at 8:26pm
I am no computer guru, far from it.  But that code dump looks like assembly language.  Move, jump, clear, decrement......  Am I close?
Roger Gazur
1969 'B' Scheme SC/Rambler
1970 RWB 4-spd Machine
1970 Sonic Silver auto AMX

All project cars.

Forum Cockroach
Back to Top
MIPS View Drop Down
AMC Nut
AMC Nut
Avatar

Joined: Mar/11/2019
Location: Kamloops, BC
Status: Offline
Points: 346
Post Options Post Options   Thanks (0) Thanks(0)   Quote MIPS Quote  Post ReplyReply Direct Link To This Post Posted: Aug/20/2023 at 10:48pm
You are correct.
Because at that time in history, space was a major limiting factor in computers, the CEC was programmed entirely in assembly. The ROM, or "firmware" as we call it now takes up an entire 2 kilobytes of space. Prior to being written to the ROM the assembly code is compiled to collapse it down further, remove any code commenting that isn't needed in the final product and brings all the components created in the development environment together into one object. Once it's compiled you cannot get any fancy formatting or code comments back, so a utility like DASMx can de-compile the ROM back to how it was (probably) written but we cannot see anything the programmer might of wanted to point out, like state branches, mode switches or how/when it responds to malfunctions. It's up to someone far more educated in assembly (in this case for the MCS-48) to look at the code and see what it's doing.

Between the family reference manual and the programmers reference Intel alone has some 600 pages of documentation. I will admit this is over my head as I am more a hardware person.

Edited by MIPS - Aug/20/2023 at 10:56pm
Back to Top
farna View Drop Down
Supporter of TheAMCForum
Supporter of TheAMCForum
Avatar
Moderator Lost Dealership Project

Joined: Jul/08/2007
Location: South Carolina
Status: Offline
Points: 19612
Post Options Post Options   Thanks (0) Thanks(0)   Quote farna Quote  Post ReplyReply Direct Link To This Post Posted: Aug/21/2023 at 9:59am
I don't know how much assembly experience Tom Jennings has, but hopefully he will see this and make some comments... even if it's "over my head too"...
Frank Swygert
Back to Top
 Post Reply Post Reply Page  <1 6789>
  Share Topic   

Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 12.03
Copyright ©2001-2019 Web Wiz Ltd.

This page was generated in 0.172 seconds.
All content of this site Copyright © 2018 TheAMCForum unless otherwise noted, all rights reserved.
PROBLEMS LOGGING IN or REGISTERING:
If you have problems logging in or registering, then please contact a Moderator or