YaK:: vtio bug (NitrOS9 EOU beta 5) leax <CoGrf,pcr | [Changes] [Calendar] [Search] [Index] [PhotoTags] |
In the /sourcecode/asm/nitros9/scf/ directory of 68SDC.VHD there is a module vtio_beta5
The file vtio.listing has checksum 32DC40 but when I compile it with "lwasm" I get a checksum of 4BE2D6
When I boot the EOU beta 5 distribution (with my gomar emulator), it uses a vtio module with the checksum 32DC40.
I did some hacking to compare the modules, and the difference is in this line
leax <CoGrf,pcr point to CoGrf name
In vtio.listing that is assembled as
0921 308CDC
but in my assembly it comes out as
0921 308CE3
Doing the bits, mine is right, and the vtio.listing is wrong.
Why? Well before I could assemble it with lwasm, I had to fix an error that "CoGrf" was redefined. So in my version, I had renamed the label "CoGrfName".
I assume the old Microware assembler is using the original definition rather than the local definition.
And I think the hack comment indicates this bug was causing problems.
01557 0900 35E2 puls pc,u,y,a restore regs & return 01558 01559 0902 436F5769 CoWin fcs /CoWin/ 01560 0907 436F4772 CoGrf fcs /CoGrf/ ++ 01561 *CC3GfxInt fcs /CC3GfxInt/ ++ 01562 01563 * 01564 * Try CoWin 01565 * 01566 090C 3460 FindWind pshs u,y preserve regs 01567 090E 4F clra set window type 01568 090F A7C81D sta <V.WinType,u 01569 0912 308CED leax <CoWin,pcr point to CoWin name 01570 0915 8680 lda #$80 get driver type code 01571 0917 8D13 bsr L08D4 try and link it 01572 01573 *++ 01574 0919 240D bcc ok 01575 01576 * Bug fix by Boisy on 08/22/2007 - The three lines below were inserted to check to see 01577 * the nature of the error that occurred fromfailing to link to CoWin/CoGrf. Since CoWin/CoGr 01578 * also load GrfDrv, an error other than E$MNF might arise. We expect an E$MNF if CoGrf is in 01579 * place instead of CoWin, but any other error just gets blown away without the three lines be 01580 * Now, if any error other than E$MNF is returned from trying to link to CoWin, we don't bothe Microware OS-9 Assembler RS Version 01.00.00 04/28/2020 12:54:05 Page 027 VTIO - Video Terminal I/O Driver for CoCo 3 01581 * to link to CoGrf... we just return the error as is. 01582 091B C1DD cmpb #E$MNF compare the error to what we expect 01583 091D 1A01 orcc #Carry set the carry again (cmpb above clears it) 01584 091F 2607 bne ok if the error in B is not E$MNF, just leave this routine 01585 01586 0921 308CDC leax <CoGrf,pcr point to CoGrf name 01587 0924 8680 lda #$80 01588 0926 8D04 bsr L08D4 01589 *++ 01590 |
0900 35E2 01557 puls pc,u,y,a restore regs & return 01558 0902 436F5769EE 01559 CoWin fcs /CoWin/ 0907 436F4772E6 01560 CoGrfName fcs /CoGrf/ ++ 01561 *CC3GfxInt fcs /CC3GfxInt/ ++ 01562 01563 * 01564 * Try CoWin 01565 * 090C 3460 01566 FindWind pshs u,y preserve regs 090E 4F 01567 clra set window type 090F A7C81D 01568 sta <V.WinType,u 0912 308CED 01569 leax <CoWin,pcr point to CoWin name 0915 8680 01570 lda #$80 get driver type code 0917 8D13 01571 bsr L08D4 try and link it 01572 01573 *++ 0919 240D 01574 bcc ok 01575 01576 * Bug fix by Boisy on 08/22/2007 - The three lines below were inserted to check to see 01577 * the nature of the error that occurred fromfailing to link to CoWin/CoGrf. Since CoWin/CoGrf 01578 * also load GrfDrv, an error other than E$MNF might arise. We expect an E$MNF if CoGrf is in 01579 * place instead of CoWin, but any other error just gets blown away without the three lines below. 01580 * Now, if any error other than E$MNF is returned from trying to link to CoWin, we don't bother trying 01581 * to link to CoGrf... we just return the error as is. 091B C1DD 01582 cmpb #E$MNF compare the error to what we expect 091D 1A01 01583 orcc #Carry set the carry again (cmpb above clears it) 091F 2607 01584 bne ok if the error in B is not E$MNF, just leave this routine 01585 0921 308CE3 01586 leax <CoGrfName,pcr point to CoGrf name 0924 8680 01587 lda #$80 0926 8D04 01588 bsr L08D4 01589 *++ 01590 |
(last modified 2020-09-14) [Login] |