Term80 Disassembly
This is a very early work in progress. I hope to have some more time to work on this towards the end of December. I may wait to work on it until after I receive my Turbo Freezer though. I cannot run CP/M from an emulator, but currently the only ROM based monitor I have in the Atari requires a reset to activate it, and that wipes out the term program. I can at least get some text on the screen and do a mem dump.
Here is a memory map
- $1100-$2EFF ($1E00 bytes Screen RAM)
- $3610-$3708 ($F9 bytes DLIST)
- $6000-$6922 ($923 bytes code)
- Data / memory buffers
- $6174-$6233 ($C0 bytes)
- $6329-$6368 ($40 bytes)
- $66A8-$66D7 ($30 bytes)
- $6777-$67AA ($33 bytes)
- Data / memory buffers
Here is the table of jumps and the # of times each is called, sorted by Jump Address
Here is the Immediate VBI routine
; Disassembly courtesy of Atari800Win+ ; Comments & labels to follow 66D8 LDX $CD ; 3cyc ; A6 CD CODE RESUMES (IMMEDIATE VERTICAL BLANK ROUTINE) 66DA LDA #$00 ; 2cyc ; A9 00 66DC STA $3420,X ; 5cyc ; 9D 20 34 66DF STA $3421,X ; 5cyc ; 9D 21 34 66E2 STA $3422,X ; 5cyc ; 9D 22 34 66E5 STA $3423,X ; 5cyc ; 9D 23 34 66E8 STA $3424,X ; 5cyc ; 9D 24 34 66EB STA $3425,X ; 5cyc ; 9D 25 34 66EE STA $3426,X ; 5cyc ; 9D 26 34 66F1 STA $3427,X ; 5cyc ; 9D 27 34 66F4 LDA $CA ;LOADFLG ; 3cyc ; A5 CA 66F6 ASL ; 2cyc ; 0A 66F7 ASL ; 2cyc ; 0A 66F8 ASL ; 2cyc ; 0A 66F9 TAX ; 2cyc ; AA 66FA STX $CD ; 3cyc ; 86 CD 66FC LDA $CB ; 3cyc ; A5 CB 66FE AND #$03 ; 2cyc ; 29 03 6700 TAY ; 2cyc ; A8 6701 LDA $6777,Y ; 4cyc ; B9 77 67 6704 STA $3420,X ; 5cyc ; 9D 20 34 6707 STA $3421,X ; 5cyc ; 9D 21 34 670A STA $3422,X ; 5cyc ; 9D 22 34 670D STA $3423,X ; 5cyc ; 9D 23 34 6710 STA $3424,X ; 5cyc ; 9D 24 34 6713 STA $3425,X ; 5cyc ; 9D 25 34 6716 STA $3426,X ; 5cyc ; 9D 26 34 6719 STA $3427,X ; 5cyc ; 9D 27 34 671C LDA $CB ; 3cyc ; A5 CB Calculate cursor position 671E AND #$FC ; 2cyc ; 29 FC 6720 ASL ; 2cyc ; 0A 6721 CLC ; 2cyc ; 18 6722 ADC #$30 ; 2cyc ; 69 30 6724 STA $D000 ;HPOSP0 ; 4cyc ; 8D 00 D0 Move cursor 6727 LDY #$00 ; 2cyc ; A0 00 6729 LDA #$4F ; 2cyc ; A9 4F 672B STA ($C2),Y ;PROMPT ; 6cyc ; 91 C2 672D INY ; 2cyc ; C8 672E LDA $C4 ; 3cyc ; A5 C4 6730 STA ($C2),Y ;PROMPT ; 6cyc ; 91 C2 6732 INY ; 2cyc ; C8 6733 LDA $C5 ; 3cyc ; A5 C5 6735 STA ($C2),Y ;PROMPT ; 6cyc ; 91 C2 6737 LDA $CC ; 3cyc ; A5 CC 6739 ASL ; 2cyc ; 0A 673A TAX ; 2cyc ; AA 673B LDA $677B,X ; 4cyc ; BD 7B 67 673E STA $3614 ; 4cyc ; 8D 14 36 6741 LDA $677C,X ; 4cyc ; BD 7C 67 6744 STA $3615 ; 4cyc ; 8D 15 36 6747 CLC ; 2cyc ; 18 6748 LDA $3614 ; 4cyc ; AD 14 36 674B ADC #$F0 ; 2cyc ; 69 F0 674D STA $C2 ;PROMPT ; 3cyc ; 85 C2 674F LDA $3615 ; 4cyc ; AD 15 36 6752 ADC #$00 ; 2cyc ; 69 00 6754 STA $C3 ;ERRSAVE ; 3cyc ; 85 C3 6756 LDY #$00 ; 2cyc ; A0 00 6758 LDA #$41 ; 2cyc ; A9 41 675A STA ($C2),Y ;PROMPT ; 6cyc ; 91 C2 675C INY ; 2cyc ; C8 675D LDA ($C2),Y ;PROMPT ; 5cyc ; B1 C2 675F STA $C4 ; 3cyc ; 85 C4 6761 LDA #$10 ; 2cyc ; A9 10 6763 STA ($C2),Y ;PROMPT ; 6cyc ; 91 C2 6765 INY ; 2cyc ; C8 6766 LDA ($C2),Y ;PROMPT ; 5cyc ; B1 C2 6768 STA $C5 ; 3cyc ; 85 C5 676A LDA #$36 ; 2cyc ; A9 36 676C STA ($C2),Y ;PROMPT ; 6cyc ; 91 C2 676E LDX $D1 ; 3cyc ; A6 D1 6770 BEQ $6774 ; 2cyc ; F0 02 6772 DEC $D1 ; 5cyc ; C6 D1 6774 JMP $E45F ;SYSVBV ; 3cyc ; 4C 5F E4
Here is the Display List
3610: 8 BLANK 3611: 8 BLANK 3612: 7 BLANK 3613: JMP 3616 3616: LMS 1100 MODE F 1100-1127 3619: MODE F 1128-114F 361A: MODE F 1150-1177 361B: MODE F 1178-119F 361C: MODE F 11A0-11C7 361D: MODE F 11C8-11EF 361E: MODE F 11F0-1217 361F: MODE F 1218-123F 3620: LMS 1240 MODE F 1240-1267 3623: MODE F 1268-128F 3624: MODE F 1290-12B7 3625: MODE F 12B8-12DF 3626: MODE F 12E0-1307 3627: MODE F 1308-132F 3628: MODE F 1330-1357 3629: MODE F 1358-137F 362A: LMS 1380 MODE F 1380-13A7 362D: MODE F 13A8-13CF 362E: MODE F 13D0-13F7 362F: MODE F 13F8-141F 3630: MODE F 1420-1447 3631: MODE F 1448-146F 3632: MODE F 1470-1497 3633: MODE F 1498-14BF 3634: LMS 14c0 MODE F 14C0-14E7 3637: MODE F 14E8-150F 3638: MODE F 1510-1537 3639: MODE F 1538-155F 363A: MODE F 1560-1587 363B: MODE F 1588-15AF 363C: MODE F 15B0-15D7 363D: MODE F 15D8-15FF 363E: LMS 1600 MODE F 1600-1627 3641: MODE F 1628-164F 3642: MODE F 1650-1677 3643: MODE F 1678-169F 3644: MODE F 16A0-16C7 3645: MODE F 16C8-16EF 3646: MODE F 16F0-1717 3647: MODE F 1718-173F 3648: LMS 1740 MODE F 1740-1767 364B: MODE F 1768-178F 364C: MODE F 1790-17B7 364D: MODE F 17B8-17DF 364E: MODE F 17E0-1807 364F: MODE F 1808-182F 3650: MODE F 1830-1857 3651: MODE F 1858-187F 3652: LMS 1880 MODE F 1880-18A7 3655: MODE F 18A8-18CF 3656: MODE F 18D0-18F7 3657: MODE F 18F8-191F 3658: MODE F 1920-1947 3659: MODE F 1948-196F 365A: MODE F 1970-1997 365B: MODE F 1998-19BF 365C: LMS 19c0 MODE F 19C0-19E7 365F: MODE F 19E8-1A0F 3660: MODE F 1A10-1A37 3661: MODE F 1A38-1A5F 3662: MODE F 1A60-1A87 3663: MODE F 1A88-1AAF 3664: MODE F 1AB0-1AD7 3665: MODE F 1AD8-1AFF 3666: LMS 1b00 MODE F 1B00-1B27 3669: MODE F 1B28-1B4F 366A: MODE F 1B50-1B77 366B: MODE F 1B78-1B9F 366C: MODE F 1BA0-1BC7 366D: MODE F 1BC8-1BEF 366E: MODE F 1BF0-1C17 366F: MODE F 1C18-1C3F 3670: LMS 1c40 MODE F 1C40-1C67 3673: MODE F 1C68-1C8F 3674: MODE F 1C90-1CB7 3675: MODE F 1CB8-1CDF 3676: MODE F 1CE0-1D07 3677: MODE F 1D08-1D2F 3678: MODE F 1D30-1D57 3679: MODE F 1D58-1D7F 367A: LMS 1d80 MODE F 1D80-1DA7 367D: MODE F 1DA8-1DCF 367E: MODE F 1DD0-1DF7 367F: MODE F 1DF8-1E1F 3680: MODE F 1E20-1E47 3681: MODE F 1E48-1E6F 3682: MODE F 1E70-1E97 3683: MODE F 1E98-1EBF 3684: LMS 1ec0 MODE F 1EC0-1EE7 3687: MODE F 1EE8-1F0F 3688: MODE F 1F10-1F37 3689: MODE F 1F38-1F5F 368A: MODE F 1F60-1F87 368B: MODE F 1F88-1FAF 368C: MODE F 1FB0-1FD7 368D: MODE F 1FD8-1FFF 368E: LMS 2000 MODE F 2000-2027 3691: MODE F 2028-204F 3692: MODE F 2050-2077 3693: MODE F 2078-209F 3694: MODE F 20A0-20C7 3695: MODE F 20C8-20EF 3696: MODE F 20F0-2117 3697: MODE F 2118-213F 3698: LMS 2140 MODE F 2140-2167 369B: MODE F 2168-218F 369C: MODE F 2190-21B7 369D: MODE F 21B8-21DF 369E: MODE F 21E0-2207 369F: MODE F 2208-222F 36A0: MODE F 2230-2257 36A1: MODE F 2258-227F 36A2: LMS 2280 MODE F 2280-22A7 36A5: MODE F 22A8-22CF 36A6: MODE F 22D0-22F7 36A7: MODE F 22F8-231F 36A8: MODE F 2320-2347 36A9: MODE F 2348-236F 36AA: MODE F 2370-2397 36AB: MODE F 2398-23BF 36AC: LMS 23c0 MODE F 23C0-23E7 36AF: MODE F 23E8-240F 36B0: MODE F 2410-2437 36B1: MODE F 2438-245F 36B2: MODE F 2460-2487 36B3: MODE F 2488-24AF 36B4: MODE F 24B0-24D7 36B5: MODE F 24D8-24FF 36B6: LMS 2500 MODE F 2500-2527 36B9: MODE F 2528-254F 36BA: MODE F 2550-2577 36BB: MODE F 2578-259F 36BC: MODE F 25A0-25C7 36BD: MODE F 25C8-25EF 36BE: MODE F 25F0-2617 36BF: MODE F 2618-263F 36C0: LMS 2640 MODE F 2640-2667 36C3: MODE F 2668-268F 36C4: MODE F 2690-26B7 36C5: MODE F 26B8-26DF 36C6: MODE F 26E0-2707 36C7: MODE F 2708-272F 36C8: MODE F 2730-2757 36C9: MODE F 2758-277F 36CA: LMS 2780 MODE F 2780-27A7 36CD: MODE F 27A8-27CF 36CE: MODE F 27D0-27F7 36CF: MODE F 27F8-281F 36D0: MODE F 2820-2847 36D1: MODE F 2848-286F 36D2: MODE F 2870-2897 36D3: MODE F 2898-28BF 36D4: LMS 28c0 MODE F 28C0-28E7 36D7: MODE F 28E8-290F 36D8: MODE F 2910-2937 36D9: MODE F 2938-295F 36DA: MODE F 2960-2987 36DB: MODE F 2988-29AF 36DC: MODE F 29B0-29D7 36DD: MODE F 29D8-29FF 36DE: LMS 2a00 MODE F 2A00-2A27 36E1: MODE F 2A28-2A4F 36E2: MODE F 2A50-2A77 36E3: MODE F 2A78-2A9F 36E4: MODE F 2AA0-2AC7 36E5: MODE F 2AC8-2AEF 36E6: MODE F 2AF0-2B17 36E7: MODE F 2B18-2B3F 36E8: LMS 2b40 MODE F 2B40-2B67 36EB: MODE F 2B68-2B8F 36EC: MODE F 2B90-2BB7 36ED: MODE F 2BB8-2BDF 36EE: MODE F 2BE0-2C07 36EF: MODE F 2C08-2C2F 36F0: MODE F 2C30-2C57 36F1: MODE F 2C58-2C7F 36F2: LMS 2c80 MODE F 2C80-2CA7 36F5: MODE F 2CA8-2CCF 36F6: MODE F 2CD0-2CF7 36F7: MODE F 2CF8-2D1F 36F8: MODE F 2D20-2D47 36F9: MODE F 2D48-2D6F 36FA: MODE F 2D70-2D97 36FB: MODE F 2D98-2DBF 36FC: LMS 2dc0 MODE F 2DC0-2DE7 36FF: MODE F 2DE8-2E0F 3700: MODE F 2E10-2E37 3701: MODE F 2E38-2E5F 3702: MODE F 2E60-2E87 3703: MODE F 2E88-2EAF 3704: MODE F 2EB0-2ED7 3705: MODE F 2ED8-2EFF 3706: JVB 3610
0 Comments
Recommended Comments
There are no comments to display.