Comparison of ROM calls for ZX81 vs Lambda-v1 vs Lambda-v2

Software and Games for the Lambda 8300 / Power 3000 Computer
Post Reply
User avatar
mrtinb
Posts: 913
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Comparison of ROM calls for ZX81 vs Lambda-v1 vs Lambda-v2

Post by mrtinb » Mon Feb 25, 2019 7:19 am

Comparing the disassembled ROM for ZX81 and the disassembled ROM for Lambda 8300 they seemed quite different. Especially the RST calls in start of ROM was swapped around.

Then I went through an old Danish book, that has ML for both ZX81 and Lambda 8300: "Maskinkode med ZX81" (Machine code with ZX81). Here it seems that RST calls in ZX81 and Lambda 8300 are similar.

So I found that in some areas the ROM in ZX81 and Lambda ROM version 1 are quite similar. It seems major differences were made between Lambda ROM version 1 and 2. Seems like Lambda ROM version 2 was changed even more just for the purpose of not being sued for copying the ZX81 ROM.

So the RST call between ZX81 and Lambda ROM version 1 are quite similar.

This makes it irritatingly difficult to create one binary that works for both Lambda 8300 ROM versions.

Here are my discoveries so far:

Code: Select all

..............................................................
:   Function    :     ZX81     :  Lambda v1   :  Lambda v2   :
:...............:..............:..............:..............:
: Test break    :   3910 $0F46 :   4411 $113B :   7208 $1C28 :
: Keyboard scan :    699 $02BB :    829 $033D :   3444 $0D74 :
: Key codes     :    126 $007E :    123 $007B :    999 $03E7 :
: Key translate :   1981 $07BD :   2398 $095E :   6263 $1877 :
: Print string  :   2923 $0B6B :   3318 $0CF6 : ? 5443 $1543 :
: ?             :   2919 $0B67 :   3314 $0CF2 : ? 5443 $1543 :
: AT print pos  :   2293 $08F5 :   2708 $0A94 :   5304 $14B8 :
: RST $10 impl. :   2056 $0808 :   2473 $09A9 :   5220 $1464 :
: PLOT          :   2998 $0BB6 :   3389 $0D3D : ?            :
: SCROLL        :   3086 $0C0E :   2993 $0BB1 :   7262 $1C5E :

Code: Select all

: CLS           :   2602 $0A2A :   3024 $0BD0 :   7293 $1C7D :
: Print BC dec  :   2712 $0A98 :   3117 $0C2D : ?            :
: SLOW          :   3883 $0F2B :    641 $0281 : ?            :
: FAST          :   3875 $0F23 :    876 $036C : ?            :
: SAVE          :    763 $02FB :    904 $0388 :   3340 $0D0C :
: LOAD          :    839 $0347 :    783 $030F :   6639 $19EF :
: SAVE no pause :    787 $0313 :    928 $03A0 :   3364 $0D24 :
: Num to Calc   :   5408 $1520 :   5912 $1718 :   1918 $077E :
: Num from Calc :   3751 $0EA7 :   4232 $1088 :   5385 $1509 :
: 8-bit to Calc :   5405 $151D :   5909 $1715 :   1913 $0779 :
: Dec from Calc :   5112 $13F8 :   5613 $15ED : RST $20      :
: ............. : ............ : ............ : ............ :
: Prog File     :  16509 $407D :  17302 $4396 :  17302 $4396 :

Code: Select all

: Display File  : (16396)$400C :  16509 $407D :  16509 $407D :
: Print pos     : (16398)$400E : (16398)$400E : (16398)$400E :
: Vars          : (16400)$4010 : (16400)$4010 : (16400)$4010 :
: E Line        : (16404)$4014 : (16404)$4014 : (16404)$4014 :
: P-File end mk : N/A          :    255 $FF   :    255 $FF   :
: RST error     : RST $08      : RST $08      :   5194 $144A :
:               : Num/Letter   : 2 Letters    : 2 Letters    :
: RST printchar : RST $10      : RST $10      : RST $18      :
: RST getchar   : RST $18      : RST $18      : RST $10      :
: RST nextchar  : RST $20      : RST $20      : RST $08      :
: RST floatcalc : RST $28      : RST $28      : RST $30      :
: RST makespace : RST $30      : RST $30      :   3037 $0BDD :
: RST interrupt : RST $38      : RST $38      : RST $38      :

Code: Select all

: 1 REM content :  16514 $4082 :  17307 $439B :  17307 $439B :
: Charset       :   7680 $1E00 : N/A          : N/A          :
: Keyb. result  : (16421)$4025 : (16421)$4025 : (16421)$4025 :
:...............:..............:..............:..............:
Martin
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube

Post Reply