This code appears in the following versions (click to see it in the source code):
Code variations between these versions are shown below.
Name: TT210 Type: Subroutine Category: Market Summary: Show a list of current cargo in our hold, optionally to sell
Show a list of current cargo in our hold, either with the ability to sell (the Sell Cargo screen) or without (the Inventory screen), depending on the current view.
Arguments: QQ11 The current view: * 4 = Sell Cargo * 8 = Inventory
Other entry points: NWDAVxx Used to rejoin this routine from the call to NWDAV4
.TT210 LDY #0 \ We're going to loop through all the available market \ items and check whether we have any in the hold (and, \ if we are in the Sell Cargo screen, whether we want \ to sell any items), so we set up a counter in Y to \ denote the current item and start it at 0 .TT211 STY QQ29 \ Store the current item number in QQ29
LDX QQ20,Y \ Fetch into X the amount of the current item that we BEQ TT212 \ have in our cargo hold, which is stored in QQ20+Y, \ and if there are no items of this type in the hold, \ jump down to TT212 to skip to the next item TYA \ Set Y = Y * 4, so this will act as an index into the ASL A \ market prices table at QQ23 for this item (as there ASL A \ are four bytes per item in the table) TAY LDA QQ23+1,Y \ Fetch byte #1 from the market prices table for the STA QQ19+1 \ current item and store it in QQ19+1, for use by the \ call to TT152 below TXA \ Store the amount of item in the hold (in X) on the PHA \ stack JSR TT69 \ Call TT69 to set Sentence Case and print a newline CLC \ Print recursive token 48 + QQ29, which will be in the LDA QQ29 \ range 48 ("FOOD") to 64 ("ALIEN ITEMS"), so this ADC #208 \ prints the current item's name JSR TT27
PLA \ Restore the amount of item in the hold into X TAX
In the enhanced versions, you can specify how much of each individual commodity you want to sell. In the cassette version, for each commodity you have to choose whether to sell all of your stock, or none.
See below for more variations related to this code.
This variation is blank in the Cassette, Disc (flight) and Electron versions.
STA QQ25 \ Store the amount of this item in the hold in QQ25
CLC \ Print the 8-bit number in X to 3 digits, without a JSR pr2 \ decimal point JSR TT152 \ Print the unit ("t", "kg" or "g") for the market item \ whose byte #1 from the market prices table is in \ QQ19+1 (which we set up above)
LDA QQ11 \ If the current view type in QQ11 is not 4 (Sell Cargo CMP #4 \ screen), jump to TT212 to skip the option to sell BNE TT212 \ items
This variation is blank in the Cassette, Disc (flight), Disc (docked) and Electron versions.
\JSR TT162 \ This instruction is commented out in the original \ source
Code variation 7 of 14
See variation 4 above for details.
This variation is blank in the Disc (flight) version.
Tap on a block to expand it, and tap it again to revert.
LDA QQ29 \ We are selling this item, so fetch the item number \ from QQ29 LDX #255 \ Set QQ17 = 255 to disable printing STX QQ17 JSR TT151 \ Call TT151 to set QQ24 to the item's price / 4 (the \ routine doesn't print the item details, as we just \ disabled printing)
Code variation 9 of 14
See variation 4 above for details.
This variation is blank in the Disc (flight) version.
Tap on a block to expand it, and tap it again to revert.
LDA QQ24 \ Set Q to the item's price / 4 STA Q JSR GCASH \ Call GCASH to calculate \ \ (Y X) = P * Q * 4 \ \ which will be the total price we make from this sale \ (as P contains the quantity we're selling and Q \ contains the item's price / 4) JSR MCASH \ Add (Y X) cash to the cash pot in CASH
Code variation 11 of 14
See variation 4 above for details.
This variation is blank in the Disc (flight) version.
Tap on a block to expand it, and tap it again to revert.
.TT212 LDY QQ29 \ Fetch the item number from QQ29 into Y, and increment INY \ Y to point to the next item
This variation is blank in the Disc (flight) version.
Tap on a block to expand it, and tap it again to revert.
The Master version contains a fair amount of Trumble-related code, though it doesn't have any effect as we never get to pick up any Trumbles (though if we did, they would take over our cargo bay and hoof up all the food and narcotics, just as in the Commodore 64 version, so their essence is still encoded in the Master version).
This variation is blank in the Disc (flight) version.
Tap on a block to expand it, and tap it again to revert.