Jump to content
  • entries
    24
  • comments
    22
  • views
    43,910

Term80 Disassembly


Stephen

1,407 views

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)

Here is the table of jumps and the # of times each is called, sorted by Jump Address

 

 

blogentry-650-0-37507400-1320814458.png

 

 

 

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.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...