Skip to navigation

Elite on the BBC Micro

Elite I parasite source [Elite-A]

ELITE I FILE
CODE_I% = P% LOAD_I% = LOAD% + P% - CODE%
Name: encyclopedia [Show more] Type: Subroutine Category: Encyclopedia Summary: Show the Encyclopedia screen Deep dive: The Encyclopedia Galactica
Context: See this subroutine on its own page References: This subroutine is called as follows: * TT25 calls encyclopedia
.encyclopedia LDX #0 \ Call menu with X = 0 to show menu 0, the main menu for JSR menu \ the Encyclopedia Galactica, and return the choice in A CMP #1 \ If A <> 1, skip the following instruction to check the BNE n_shipsag \ other options JMP ships_ag \ Option 1 was chosen, so jump to ships_ag with A = 1 to \ show the Ships A-G menu .n_shipsag CMP #2 \ If A <> 2, skip the following instruction to check the BNE n_shipskw \ other options JMP ships_kw \ Option 2 was chosen, so jump to ships_kw with A = 2 to \ show the Ships K-W menu .n_shipskw CMP #3 \ If A <> 3, skip the following instruction to check the BNE n_equipdat \ other options JMP equip_data \ Option 3 was chosen, so jump to equip_data to show the \ Equipment menu .n_equipdat CMP #4 \ If A <> 4, skip the following instruction to check the BNE n_controls \ other options JMP controls \ Option 4 was chosen, so jump to controls to show the \ Controls menu .n_controls CMP #5 \ If A <> 5, skip the following instruction BNE P%+5 JMP trading \ Option 5 was chosen, so jump to trading to pause and \ show the main menu (there is no option 5 in the main \ menu, so this code is never reached and is presumably \ a remnant of a fifth menu about trading that was \ removed) JMP dn2 \ Jump to dn2 to make a short, high beep and delay for 1 \ second, returning from the subroutine using a tail \ call
Name: ships_ag [Show more] Type: Subroutine Category: Encyclopedia Summary: Show the Ships A-G or Ships K-W menu and display the chosen ship card Deep dive: The Encyclopedia Galactica
Context: See this subroutine on its own page References: This subroutine is called as follows: * encyclopedia calls ships_ag * encyclopedia calls entry point ships_kw

Agruments: A The menu to show: * 1 = Show the Ships A-G menu * 2 = Show the Ships K-W menu C flag Set if this is the second menu (Ships K-W) Other entry points: ships_kw Does exactly the same as a call to ships_kw
.ships_ag .ships_kw PHA \ Store the menu number on the stack TAX \ Call menu with X = A to show the correct menu, so A JSR menu \ is now set to the type of ship card we need to show, \ depending on which ships menu we just displayed: \ \ * 1 for Adder to 14 for Ghavial \ * 1 for Iguana to 14 for Worm SBC #0 \ Decrement A so it is now in the range 0 to 13 (as menu \ clears the C flag when the number entered is within \ range), so we now have: \ \ * 0 for Adder to 13 for Ghavial \ * 0 for Iguana to 13 for Worm PLP \ Pull the menu number from the stack into the processor \ flags, which will set the C flag to bit 0 of the value \ on the stack (so if we called the routine with A = 1, \ the C flag will be set, and if we called it with A = 2 \ it will be clear) BCS ship_over \ If the C flag is set, then we called the routine with \ A = 1, so jump to ship_over as the choice number is \ already correct (i.e. 0 for Adder to 13 for Ghavial) ADC menu_entry+1 \ We just showed the the second menu, so the choice \ number is currently: \ \ * 0 for Iguana to 13 for Worm \ \ which is not right - we want the range to follow on \ from the end of the first menu. To fix this, we need \ to add the number of entries in the first menu to A \ to get the correct choice number. The menu_entry table \ contains the menu sizes, and menu_entry+1 contains the \ size of menu 1 (the Ships A-G menu), so this adds the \ number of entries in the first menu to give the \ correct choice range, as follows: \ \ * 14 for Iguana to 27 for Worm .ship_over STA TYPE \ A contains the ship that we just chose from the Ships \ menu, so store it in TYPE, so TYPE is now: \ \ * 0 for Adder to 27 for Worm CLC \ Store type + 7 on the stack, to give the token number ADC #7 \ of the title to show for the relevant ship card, from PHA \ Adder (token 7) to Worm (token 34) LDA #32 \ Clear the top part of the screen, draw a white border, JSR TT66 \ and set the current view type in QQ11 to 32 JSR MT1 \ Switch to ALL CAPS when printing extended tokens LDX TYPE \ Set X to the number of this ship type within the LDA ship_posn,X \ ship_list table, so we can pass it to the install_ship TAX \ routine LDY #0 \ Install this ship into blueprint position 0 so we can JSR install_ship \ show it on the ship card LDX TYPE \ Set A to the cards's title x-coordinate (fetched from LDA ship_centre,X \ the ship_centre table) STA XC \ Move the text cursor to the correct column for the \ title PLA \ Pull the token number for the title from the stack JSR write_msg3 \ (type + 7) and print it JSR NLIN4 \ Draw a horizontal line at pixel row 19 to box in the \ title JSR ZINF \ Call ZINF to reset the INWK ship workspace, so we can \ spawn a rotating ship to display in the centre of the \ ship card LDA #&60 \ Set byte #14 (nosev_z_hi) to 1 (&60), so the ship will STA INWK+14 \ be pointing away from us LDA #176 \ Set z_hi = 176 (very far away) STA INWK+7 LDX #127 \ Set roll counter = 127, so don't dampen the roll STX INWK+29 STX INWK+30 \ Set pitch counter = 127, so don't dampen the pitch INX \ Set X = 128 STA QQ17 \ Set QQ17 = %10110000, which has bit 7 set, to \ switch standard tokens to Sentence Case LDA TYPE \ Call write_card to display the ship card for the ship JSR write_card \ type in TYPE LDA #0 \ Add a new ship of type 0 to the local bubble (or, in JSR NWSHP \ this case, the encyclopedia ship card), which will \ spawn the correct shop for this ship card, as we \ installed the correct blueprint into position 0 with \ the call to install_ship above JSR l_release \ Call l_release so if a key is currently being pressed, \ we wait until it is released before continuing .l_395a LDX TYPE \ Set A to the closest distance that we want to show the LDA ship_dist,X \ ship (fetched from the ship_dist table) CMP INWK+7 \ If z_hi (the ship's distance) is equal to A, skip the BEQ P%+4 \ following decrement, as the ship is already close \ enough DEC INWK+7 \ Decrement the ship's distance, to bring the ship \ a bit closer to us JSR MVEIT \ Move the ship in space according to the orientation \ vectors and the new value in z_hi LDA #128 \ Set z_lo = 128, so the closest the ship gets to us is STA INWK+6 \ z_hi * 256 + 128 (where z_hi is the value in the \ ship_dist table) ASL A \ Set A = 0 STA INWK \ Set x_lo = 0, so the ship remains in the screen centre STA INWK+3 \ Set y_lo = 0, so the ship remains in the screen centre JSR LL9 \ Call LL9 to display the ship DEC MCNT \ Decrement the main loop counter JSR check_keys \ Call check_keys to wait until a key is pressed, \ quitting the game if the game if COPY (pause) and \ ESCAPE are pressed CPX #0 \ If check_keys returns with X = 0, then we paused the BEQ l_395a \ game with COPY and then unpaused it with DELETE, in \ which case loop back to l_395a to keep rotating the \ ship JMP BAY \ Otherwise a key was pressed, so jump to BAY to go to \ the docking bay (i.e. show the Encyclopedia screen)
Name: controls [Show more] Type: Subroutine Category: Encyclopedia Summary: Show the Controls menu and display the chosen page Deep dive: The Encyclopedia Galactica
Context: See this subroutine on its own page References: This subroutine is called as follows: * encyclopedia calls controls
.controls LDX #3 \ Call menu with X = 3 to show menu 3, the Controls JSR menu \ menu, and return the choice in A, so A is now: \ \ * 1 = Flight \ * 2 = Combat \ * 3 = Navigation \ * 4 = Trading ADC #86 \ Store the choice + 86 on the stack, to give the token PHA \ number of the body to show for the relevant choice, \ from flight controls (token 87) to trading controls \ (token 90) ADC #4 \ Store the choice + 90 on the stack, to give the token PHA \ number of the title to show for the relevant choice, \ from flight controls (token 91) to trading controls \ (token 94) LDA #32 \ Clear the top part of the screen, draw a white border, JSR TT66 \ and set the current view type in QQ11 to 32 JSR MT1 \ Switch to ALL CAPS when printing extended tokens LDA #11 \ Move the text cursor to column 11 STA XC PLA \ Pull the token number for the title from the stack JSR write_msg3 \ (choice + 90) and print it JSR NLIN4 \ Draw a horizontal line at pixel row 19 to box in the \ title JSR MT2 \ Switch to Sentence Case when printing extended tokens INC YC \ Move the text cursor down one line PLA \ Pull the token number for the body from the stack JSR write_msg3 \ (choice + 86) and print it JMP l_restart \ Jump to l_restart to wait until a key is pressed and \ show the Encyclopedia screen
Name: equip_data [Show more] Type: Subroutine Category: Encyclopedia Summary: Show the Equipment menu and display the chosen page
Context: See this subroutine on its own page References: This subroutine is called as follows: * encyclopedia calls equip_data
.equip_data LDX #4 \ Call menu with X = 4 to show menu 4, the Equipment JSR menu \ menu, and return the choice in A, so A is now: \ \ * 1 = Missiles \ * 2 = I.F.F. system \ * 3 = E.C.M. system \ * 4 = Pulse lasers \ * 5 = Beam lasers \ * 6 = Fuel scoops \ * 7 = Escape pod \ * 8 = Hyperspace unit \ * 9 = Energy unit \ * 10 = Docking computers \ * 11 = Galactic hyperdrive \ * 12 = Military lasers \ * 13 = Mining lasers ADC #107 \ Store the choice + 107 on the stack, to give the token PHA \ number of the body to show for the relevant choice, \ from missiles (token 108) to mining lasers (token 120) SBC #12 \ Store the choice + 94 on the stack, to give the token PHA \ number of the title to show for the relevant choice, \ from missiles (token 95) to mining lasers (token 107) LDA #32 \ Clear the top part of the screen, draw a white border, JSR TT66 \ and set the current view type in QQ11 to 32 JSR MT1 \ Switch to ALL CAPS when printing extended tokens LDA #11 \ Move the text cursor to column 11 STA XC PLA \ Pull the token number for the title from the stack JSR write_msg3 \ (choice + 95) and print it JSR NLIN4 \ Draw a horizontal line at pixel row 19 to box in the \ title JSR MT2 \ Switch to Sentence Case when printing extended tokens \ (though this gets overridden by the following \ instruction, so this has no effect) JSR MT13 \ Switch to lower case when printing extended tokens, so \ the text is shown in justified paragraphs of lower \ case text INC YC \ Move the text cursor down two lines INC YC LDA #1 \ Move the text cursor to column 1 STA XC PLA \ Pull the token number for the body from the stack JSR write_msg3 \ (choice + 107) and print it JMP l_restart \ Jump to l_restart to wait until a key is pressed and \ show the Encyclopedia screen
Name: trading [Show more] Type: Subroutine Category: Encyclopedia Summary: Wait until a key is pressed and show the Encyclopedia screen
Context: See this subroutine on its own page References: This subroutine is called as follows: * encyclopedia calls trading * controls calls entry point l_restart * equip_data calls entry point l_restart

Other entry points: l_restart Does exactly the same as a call to trading
.trading .l_restart JSR check_keys \ Call check_keys to wait until a key is pressed, \ quitting the game if the game if COPY (pause) and \ ESCAPE are pressed TXA \ Copy the number of the key pressed into A BEQ l_restart \ If check_keys returned with X = 0, then we paused the \ game with COPY and then unpaused it with DELETE, in \ which case loop back to l_restart to keep checking for \ key presses JMP BAY \ Jump to BAY to go to the docking bay (i.e. show the \ Encyclopedia screen)
Name: check_keys [Show more] Type: Subroutine Category: Keyboard Summary: Wait until a key is pressed, quitting the game if the game is paused and ESCAPE is pressed
Context: See this subroutine on its own page References: This subroutine is called as follows: * ships_ag calls check_keys * trading calls check_keys * ships_ag calls entry point l_release

Returns: X The key that was pressed, or 0 if we paused the game (COPY) and unpaused it again (DELETE) Other entry points: l_release If a key is currently being pressed, wait until it is released
.check_keys JSR WSCAN \ Call WSCAN to wait for the vertical sync JSR RDKEY \ Scan the keyboard for a key press and return the \ internal key number in X (or 0 for no key press) CPX #&69 \ If COPY is not being pressed, jump to not_freeze to BNE not_freeze \ return the key pressed in X .freeze_loop JSR WSCAN \ Call WSCAN to wait for the vertical sync JSR RDKEY \ Scan the keyboard for a key press and return the \ internal key number in X (or 0 for no key press) CPX #&70 \ If ESCAPE is not being pressed, jump to dont_quit to BNE dont_quit \ skip the next JMP DEATH2 \ ESCAPE is being pressed, so jump to DEATH2 to wnd the \ game .dont_quit \CPX #&37 \ These instructions are commented out in the original \BNE dont_dump \ source \JSR printer \.dont_dump CPX #&59 \ If DELETE is not being pressed, we are still paused, BNE freeze_loop \ so loop back up to keep listening for configuration \ keys, otherwise fall through into the rest of the \ key detection code, which waits for the key to be \ released before unpausing the game .l_release JSR RDKEY \ Scan the keyboard for a key press and return the \ internal key number in X (or 0 for no key press) BNE l_release \ If a key is being pressed, loop back to l_release \ until it is released LDX #0 \ Set X = 0 to indicate no key is being pressed .not_freeze RTS \ Return from the subroutine
Name: write_card [Show more] Type: Subroutine Category: Encyclopedia Summary: Display a ship card in the encyclopedia Deep dive: The Encyclopedia Galactica
Context: See this subroutine on its own page References: This subroutine is called as follows: * ships_ag calls write_card

Arguments: A The number of the ship whose card we want to display, in the range 0 to 27 (see card_addr for a list of ship numbers)
.write_card ASL A \ Set Y = A * 2, so we can use it as an index into the TAY \ card_addr table (which has two bytes per entry) LDA card_addr,Y \ Set V(1 0) to the Y-th entry from card_addr, so it STA V \ points to the data for the ship card that we want to LDA card_addr+1,Y \ show STA V+1 .card_repeat \ We now loop around card_repeat, with each iteration \ printing a different section of the ship card. We \ update V(1 0) so it always points to the data to print \ in the ship card, and we look up the corresponding \ section of the card_pattern table to see how to lay \ out the card (card_pattern contains text coordinates \ and label data that describe the layout of the ship \ cards) JSR MT1 \ Switch to ALL CAPS when printing extended tokens LDY #0 \ Fetch the byte at V(1 0) into X, which will either be LDA (V),Y \ the number of a card section (e.g. 1 for inservice TAX \ date, 2 for combat factor and so on), or a 0 if we \ have reached the end of the card data BEQ quit_card \ If the byte we just fetched is a zero, jump to \ quit_card to return from the subroutine, as we have \ reached the end of the card data BNE card_check \ Otherwise we have found a valid card section, so jump \ to card_check to start looking for the corresponding \ layout pattern in card_pattern (the BNE is effectively \ a JMP as we just passed through a BEQ) .card_find \ If we get here than we want to increment Y until it \ points to the start of the next pattern that comes \ after our current position of card_pattern + Y INY \ Increment Y by 3 to step to the next line of data (as INY \ the card_pattern table is made up of lines of 3 bytes INY \ each) LDA card_pattern-1,Y \ Fetch the last byte of the previous 3-byte line BNE card_find \ If it is non-zero then we are still in the same \ pattern as in the previous iteration, so loop back to \ move onto the next line of 3 bytes \ Otherwise we have moved onto the next pattern, so now \ we check whether we have reached the pattern we seek .card_check \ When we first jump here from above, we want to search \ through the card_pattern table for the pattern that \ corresponds to card section X, where X starts at 1. We \ also jump here with Y set to 0 \ \ We find what we are looking for by stepping through \ each pattern, decreasing X as we go past each pattern, \ and increasing Y so that Y points to the start of the \ next pattern to check (as an offset from card_pattern) \ \ So as we iterate round the loop, at any one point, we \ want to skip over X - 1 more patterns, starting from \ the pattern at card_pattern + Y DEX \ Decrement the section number in X BNE card_find \ If X hasn't reached 0, then we haven't stepped through \ the right number of patterns yet, so jump to card_find \ to increment Y so that it points to the start of the \ next pattern in card_pattern .card_found \ When we get here, we have stepped through the correct \ number of patterns for the card section we want to \ print, and Y will point to the pattern within the \ card_pattern table that corresponds to the section we \ want to print, so we now fetch the pattern from \ card_pattern and print the data in that pattern \ \ The pattern for each section is made up of multiple \ lines of 3 bytes each, with each line consisting of: \ \ * Text column \ * Text row \ * What to print (i.e. a label or ship data) LDA card_pattern,Y \ The first byte of each 3-byte line in the pattern is STA XC \ the x-coordinate where we should print the text, so \ move the text cursor to the correct column LDA card_pattern+1,Y \ The second byte of each 3-byte line in the pattern STA YC \ is the y-coordinate where we should print the text, so \ move the text cursor to the correct row LDA card_pattern+2,Y \ The third byte of each 3-byte line in the pattern is \ either a text token to print for the label (if it's \ non-zero) or it denotes that we should print the \ relevant ship data (if it's zero), so fetch the value \ into A BEQ card_details \ If A = 0 then we should print the relevant ship data, \ so jump to card_details to do just that JSR write_msg3 \ Otherwise this is a label, so print the text token in \ A, which prints the label in the right place INY \ We now need to fetch the next line of the pattern, so INY \ we increment Y by 3 to step to the next 3-byte line of INY \ pattern data BNE card_found \ Loop back to card_found to move onto the next line in \ the pattern (the BNE is effectively a JMP as Y is \ never zero) .card_details \ If we get here, then we have printed all the labels in \ the pattern, and it's time to print the ship data, \ which is at V(1 0) (the first time we get here, V(1 0) \ points to the start of the ship data, and as we loop \ through each bit of data, we update V(1 0) so that it \ always points to the next bit of data to print) JSR MT2 \ Switch to Sentence Case when printing extended tokens LDY #0 \ We now loop through each character or token in the \ ship data, which is stored as a recursive token, so \ set a counter in Y for each character or token in the \ ship data (we start this at 0 and increment it \ straight away, as the first byte in the ship data at \ V(1 0) is the section number, rather than the data \ itself .card_loop INY \ Increment the character counter to point to the next \ character or token in the ship data LDA (V),Y \ Set A to the next character or token to print BEQ card_end \ If A = 0 then we have reached the end of this bit of \ ship data, so jump to card_end to move onto the next \ one BMI card_msg \ If A > 127 then this is a recursive token, so jump to \ card_msg to print it CMP #32 \ If A < 32 then this is a jump token, so jump to BCC card_macro \ card_macro to print it JSR DTS \ Otherwise this is a character rather than a token, so \ call DTS to print it in the correct case JMP card_loop \ Jump back to card_loop to print the next token in the \ the ship data .card_macro JSR DT3 \ Call DT3 to print the jump token given in A JMP card_loop \ Jump back to card_loop to print the next token in the \ the ship data .card_msg CMP #215 \ If A >= 215, then this is a two-letter token, so jump BCS card_pairs \ to card_pairs to print it AND #%01111111 \ This is a recursive token and A is in the range 128 to \ 214, so clear bit 7 to reduce it to the range 0 to 86, \ which corresponds to tokens in the msg_3 table (as we \ set bit 7 when inserting msg_3 tokens into the ship \ data with the CTOK macro) JSR write_msg3 \ Print the extended token in A JMP card_loop \ Jump back to card_loop to print the next token in the \ the ship data .card_pairs JSR msg_pairs \ Print the extended two-letter token in A JMP card_loop \ Jump back to card_loop to print the next token in the \ the ship data .card_end \ We have now printed this bit of ship data and the last \ character we printed was at V(1 0) + Y, so we now \ update V(1 0) so that it points to the first byte of \ the next bit of ship data, by doing this: \ \ V(1 0) = V(1 0) + Y + 1 TYA \ First we add the low bytes, setting the C flag to add SEC \ an extra 1 ADC V STA V BCC card_repeat \ If the above addition didn't overflow, we are done, so \ loop back to card_repeat to move onto the next bit of \ ship data INC V+1 \ The addition overflowed, so increment the high byte, \ as V(1 0) just passed a page boundary BCS card_repeat \ Loop back to card_repeat to move onto the next bit of \ ship data (this BCS is effectively a JMP as we passed \ through the BCC above) .quit_card RTS \ Return from the subroutine
Name: ship_posn [Show more] Type: Variable Category: Encyclopedia Summary: Table containing the number of this ship in the ship_list table Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * ships_ag calls ship_posn
.ship_posn EQUB 20 \ Adder EQUB 13 \ Anaconda EQUB 23 \ Asp Mk II EQUB 12 \ Boa EQUB 33 \ Bushmaster EQUB 37 \ Chameleon EQUB 22 \ Cobra Mk I EQUB 10 \ Cobra Mk III EQUB 1 \ Coriolis station EQUB 0 \ Dodo station EQUB 2 \ Escape Pod EQUB 24 \ Fer-de-Lance EQUB 21 \ Gecko EQUB 32 \ Ghavial EQUB 35 \ Iguana EQUB 19 \ Krait EQUB 18 \ Mamba EQUB 30 \ Monitor EQUB 25 \ Moray EQUB 31 \ Ophidian EQUB 11 \ Python EQUB 8 \ Shuttle EQUB 17 \ Sidewinder EQUB 26 \ Thargoid EQUB 27 \ Thargon EQUB 9 \ Transporter EQUB 16 \ Viper EQUB 14 \ Worm
Name: ship_dist [Show more] Type: Variable Category: Encyclopedia Summary: Table containing the closest distance to show the ship for each ship card Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * ships_ag calls ship_dist
.ship_dist EQUB 1 \ Adder EQUB 2 \ Anaconda EQUB 1 \ Asp Mk II EQUB 2 \ Boa EQUB 1 \ Bushmaster EQUB 1 \ Chameleon EQUB 1 \ Cobra Mk I EQUB 2 \ Cobra Mk III EQUB 4 \ Coriolis station EQUB 4 \ Dodo station EQUB 1 \ Escape Pod EQUB 1 \ Fer-de-Lance EQUB 1 \ Gecko EQUB 2 \ Ghavial EQUB 1 \ Iguana EQUB 2 \ Krait EQUB 1 \ Mamba EQUB 2 \ Monitor EQUB 1 \ Moray EQUB 1 \ Ophidian EQUB 2 \ Python EQUB 1 \ Shuttle EQUB 1 \ Sidewinder EQUB 3 \ Thargoid EQUB 1 \ Thargon EQUB 1 \ Transporter EQUB 1 \ Viper EQUB 1 \ Worm
Name: menu [Show more] Type: Subroutine Category: Encyclopedia Summary: Display a menu and ask for a choice Deep dive: The Encyclopedia Galactica
Context: See this subroutine on its own page References: This subroutine is called as follows: * controls calls menu * encyclopedia calls menu * equip_data calls menu * ships_ag calls menu

Arguments: X The number of the menu to display (0 to 4) Returns: A The number entered R Also contains the number entered C flag Set if the number is too large, clear otherwise
.menu LDA menu_entry,X \ Store the menu's size (i.e. the number of entries) in STA QQ25 \ QQ25 LDA menu_offset,X \ Store the token number of the menu's first item in STA QQ29 \ QQ29 LDA menu_query,X \ Store the menu's query token number on the stack, PHA \ which contains the query prompt we show at the bottom \ of the menu LDA menu_title,X \ Store the menu's title token number on the stack PHA LDA menu_titlex,X \ Store the menu's title x-coordinate on the stack PHA LDA #32 \ Clear the top part of the screen, draw a white border, JSR TT66 \ and set the current view type in QQ11 to 32 JSR MT1 \ Switch to ALL CAPS when printing extended tokens PLA \ Retrieve the menu's title x-coordinate from the stack STA XC \ and move the text cursor to it PLA \ Retrieve the menu's title token number from the stack JSR write_msg3 \ and print it (the menu tokens are in the msg_3 table) JSR NLIN4 \ Draw a horizontal line at pixel row 19 to box in the \ title INC YC \ Move the text cursor down a line LDX #0 \ We are now going to work our way through the items in \ the menu, printing as we go, so set a counter in X to \ hold the number of the current item (starting from 0) .menu_loop STX XX13 \ Store the current menu item number in XX13 JSR TT67 \ Print a newline LDX XX13 \ Print the current item number + 1 to 3 digits, left- INX \ padding with spaces, and with no decimal point, so the CLC \ items are numbered from 1 JSR pr2 JSR TT162 \ Print a space JSR MT2 \ Switch to Sentence Case when printing extended tokens LDA #%10000000 \ Set bit 7 of QQ17 to switch standard tokens to STA QQ17 \ Sentence Case CLC \ Set A = XX13 + QQ29 LDA XX13 \ ADC QQ29 \ This will contain the token number for the first entry \ in this menu, as QQ29 contains the number of the first \ token in this menu, and XX13 contains the number of \ this entry within the menu JSR write_msg3 \ Print the extended token for this menu item (the menu \ tokens are in the msg_3 table) LDX XX13 \ Fetch the menu item number from XX13 INX \ Increment the menu item number to point to the next \ item CPX QQ25 \ Loop back to menu_loop until we have shown all QQ25 BCC menu_loop \ menu items JSR CLYNS \ Clear the bottom three text rows of the upper screen, \ and move the text cursor to column 1 on row 21, i.e. \ the start of the top row of the three bottom rows PLA \ Retrieve the menu's query token number from the stack JSR write_msg3 \ and print it LDA #'?' \ Print a question mark JSR DASC JSR gnum \ Call gnum to get a number from the keyboard, which \ will be the menu item number of the menu item we want \ to show, returning the number entered in A and R, and \ setting the C flag if the number is bigger than the \ highest menu item number in QQ25 BEQ menu_start \ If no number was entered, jump to menu_start to show \ the cargo bay BCS menu_start \ If the number entered was too big, jump to menu_start \ show the cargo bay RTS \ Return from the subroutine .menu_start JMP BAY \ Jump to BAY to go to the docking bay (i.e. show the \ Encyclopedia screen)
Name: menu_title [Show more] Type: Variable Category: Encyclopedia Summary: Table containing text token numbers for each menu's title Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * menu calls menu_title

Text tokens for the menu system can be found in the msg_3 table. The menus are as follows: 0 = Encyclopedia Galactica 1 = Ships A-G 2 = Ships I-W 3 = Controls 4 = Equipment
.menu_title EQUB 1 \ Menu 0: Title is text token 1: \ \ "ENCYCLOPEDIA GALACTICA" EQUB 2 \ Menu 1: Title is text token 2: \ \ "SHIPS {all caps}A-G{sentence case}" EQUB 3 \ Menu 2: Title is text token 3: \ \ "SHIPS {all caps}I-W{sentence case}" EQUB 5 \ Menu 3: Title is text token 5: \ \ "CONTROLS" EQUB 4 \ Menu 4: Title is text token 4: \ \ "EQUIPMENT"
Name: menu_titlex [Show more] Type: Variable Category: Encyclopedia Summary: Table containing column positions for each menu's title Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * menu calls menu_titlex

Text tokens for the menu system can be found in the msg_3 table. The menus are as follows: 0 = Encyclopedia Galactica 1 = Ships A-G 2 = Ships I-W 3 = Controls 4 = Equipment
.menu_titlex EQUB 5 \ Menu 0: Show menu title at column 5 EQUB 12 \ Menu 1: Show menu title at column 12 EQUB 12 \ Menu 2: Show menu title at column 12 EQUB 12 \ Menu 3: Show menu title at column 12 EQUB 11 \ Menu 4: Show menu title at column 11
Name: menu_offset [Show more] Type: Variable Category: Encyclopedia Summary: Table containing token numbers for the first item in each menu Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * menu calls menu_offset

Text tokens for the menu system can be found in the msg_3 table. The menus are as follows: 0 = Encyclopedia Galactica 1 = Ships A-G 2 = Ships I-W 3 = Controls 4 = Equipment
.menu_offset EQUB 2 \ Menu 0: First item is text token 2: \ \ "SHIPS {all caps}A-G{sentence case}" EQUB 7 \ Menu 1: First item is text token 7: \ \ "ADDER" EQUB 21 \ Menu 2: First item is text token 21: \ \ "KRAIT" EQUB 91 \ Menu 3: First item is text token 91: \ \ "FLIGHT" EQUB 95 \ Menu 4: First item is text token 95: \ \ "{standard tokens, sentence case} \ MISSILE{extended tokens}"
Name: menu_entry [Show more] Type: Variable Category: Encyclopedia Summary: Table containing the number of entries in each menu Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * menu calls menu_entry * ships_ag calls menu_entry

Text tokens for the menu system can be found in the msg_3 table. The menus are as follows: 0 = Encyclopedia Galactica 1 = Ships A-G 2 = Ships I-W 3 = Controls 4 = Equipment
.menu_entry EQUB 4 \ Menu 0: Contains 4 entries EQUB 14 \ Menu 1: Contains 14 entries EQUB 14 \ Menu 2: Contains 14 entries EQUB 4 \ Menu 3: Contains 4 entries EQUB 13 \ Menu 4: Contains 13 entries
Name: menu_query [Show more] Type: Variable Category: Encyclopedia Summary: Table containing token numbers for each menu's query prompt Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * menu calls menu_query

Text tokens for the menu system can be found in the msg_3 table. The menus are as follows: 0 = Encyclopedia Galactica 1 = Ships A-G 2 = Ships I-W 3 = Controls 4 = Equipment
.menu_query EQUB 6 \ Menu 0: Query prompt is text token 6: \ \ "INFORMATION" EQUB 67 \ Menu 1: Query prompt is text token 67: \ \ " SHIP" EQUB 67 \ Menu 2: Query prompt is text token 67: \ \ " SHIP" EQUB 5 \ Menu 3: Query prompt is text token 5: \ \ "CONTROLS" EQUB 4 \ Menu 4: Query prompt is text token 4: \ \ "EQUIPMENT"
Name: ship_centre [Show more] Type: Variable Category: Encyclopedia Summary: Table containing column positions for each ship card's title Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * ships_ag calls ship_centre
.ship_centre EQUB 13 \ Adder EQUB 12 \ Anaconda EQUB 12 \ Asp Mk II EQUB 11 \ Boa EQUB 13 \ Bushmaster EQUB 12 \ Chameleon EQUB 11 \ Cobra Mk I EQUB 11 \ Cobra Mk III EQUB 8 \ Coriolis station EQUB 7 \ Dodo station EQUB 9 \ Escape Pod EQUB 10 \ Fer-de-Lance EQUB 13 \ Gecko EQUB 12 \ Ghavial EQUB 13 \ Iguana EQUB 13 \ Krait EQUB 13 \ Mamba EQUB 12 \ Monitor EQUB 13 \ Moray EQUB 12 \ Ophidian EQUB 13 \ Python EQUB 12 \ Shuttle EQUB 11 \ Sidewinder EQUB 12 \ Thargoid EQUB 12 \ Thargon EQUB 10 \ Transporter EQUB 13 \ Viper EQUB 14 \ Worm
Name: card_pattern [Show more] Type: Variable Category: Encyclopedia Summary: Layout pattern for the encyclopedia's ship cards Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * write_card calls card_pattern

Each ship card in the encyclopedia consists of multiple sections, each of which consists of one or more text labels, plus the corresponding ship data. The card pattern table defines these sections and how they are laid out on screen - in other words, this table contains a set of patterns, one for each section, that define how to lay out that section on-screen. Each line in the table below defines a screen position and something to print there. The first two numbers are the text column and row, and the third number specifies a text token from the msg_3 table (when non-zero) or the actual data (when zero). So, for example, the "cargo space" section looks like this: EQUB 1, 12, 61 EQUB 1, 13, 45 EQUB 1, 14, 0 which defines the following layout pattern: * Token 61 ("CARGO") at column 1, row 12 * Token 45 ("SPACE:") at column 1, row 13 * The relevant ship data (the ship's cargo capacity) at column 1, row 14 The data itself comes from the card data for the specific ship - see the table at card_addr for a list of card data blocks. Each section corresponds to the same section number in the card data, so the cargo space section is number 7, for example. As well as the ship data, the ship cards show the ship itself, rotating in the middle of the card.
.card_pattern EQUB 1, 3, 37 \ 1: Inservice date "INSERVICE DATE:" @ (1, 3) EQUB 1, 4, 0 \ Data @ (1, 4) EQUB 24, 6, 38 \ 2: Combat factor "COMBAT" @ (24, 6) EQUB 24, 7, 47 \ "FACTOR:" @ (24, 7) EQUB 24, 8, 65 \ "CF" @ (24, 8) EQUB 26, 8, 0 \ Data @ (26, 8) EQUB 1, 6, 43 \ 3: Dimensions "DIMENSIONS:" @ (1, 6) EQUB 1, 7, 0 \ Data @ (1, 7) EQUB 1, 9, 36 \ 4: Speed "SPEED:" @ (1, 9) EQUB 1, 10, 0 \ Data @ (1, 10) EQUB 24, 10, 39 \ 5: Crew "CREW:" @ (24, 10) EQUB 24, 11, 0 \ Data @ (24, 11) EQUB 24, 13, 41 \ 6: Range "RANGE:" @ (24, 13) EQUB 24, 14, 0 \ Data @ (24, 14) EQUB 1, 12, 61 \ 7: Cargo space "CARGO" @ (1, 12) EQUB 1, 13, 45 \ "SPACE:" @ (1, 13) EQUB 1, 14, 0 \ Data @ (1, 14) EQUB 1, 16, 35 \ 8: Armaments "ARMAMENTS:" @ (1, 16) EQUB 1, 17, 0 \ Data @ (1, 17) EQUB 23, 20, 44 \ 9: Hull "HULL:" @ (23, 20) EQUB 23, 21, 0 \ Data @ (23, 21) EQUB 1, 20, 40 \ 10: Drive motors "DRIVE MOTORS:" @ (1, 20) EQUB 1, 21, 0 \ Data @ (1, 21) EQUB 1, 20, 45 \ 11: Space "SPACE:" @ (1, 20) EQUB 1, 21, 0 \ Data @ (1, 21)
Name: card_addr [Show more] Type: Variable Category: Encyclopedia Summary: Lookup table for the encyclopedia's ship cards Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * write_card calls card_addr

The numbers in the table below give the ship type that can be passed to routines like write_card.
.card_addr EQUW adder \ 0: Adder EQUW anaconda \ 1: Anaconda EQUW asp_2 \ 2: Asp Mk II EQUW boa \ 3: Boa EQUW bushmaster \ 4: Bushmaster EQUW chameleon \ 5: Chameleon EQUW cobra_1 \ 6: Cobra Mk I EQUW cobra_3 \ 7: Cobra Mk III EQUW coriolis \ 8: Coriolis station EQUW dodecagon \ 9: Dodo station EQUW escape_pod \ 10: Escape pod EQUW fer_de_lance \ 11: Fer-de-Lance EQUW gecko \ 12: Gecko EQUW ghavial \ 13: Ghavial EQUW iguana \ 14: Iguana EQUW krait \ 15: Krait EQUW mamba \ 16: Mamba EQUW monitor \ 17: Monitor EQUW moray \ 18: Moray EQUW ophidian \ 19: Ophidian EQUW python \ 20: Python EQUW shuttle \ 21: Shuttle EQUW sidewinder \ 22: Sidewinder EQUW thargoid \ 23: Thargoid EQUW thargon \ 24: Thargon EQUW transporter \ 25: Transporter EQUW viper \ 26: Viper EQUW worm \ 27: Worm
Name: CTOK [Show more] Type: Macro Category: Text Summary: Macro definition for ship data in the encyclopedia's ship cards Deep dive: Extended text tokens
Context: See this macro on its own page References: No direct references to this macro in this source file

The following macro is used when building the ship data: CTOK n Insert recursive token [n] * Tokens 0-127 get stored as n + 128 The ship data tables work differently to the recursive token tables. Data is stored in the table as follows: Value Contents Macro ----- -------- ----- 0-31 Jump tokens EJMP 32-127 ASCII characters with no obfuscation EQUS 128-214 Recursive msg_3 text tokens (subtract 128 to get 0-86) CTOK 215-255 Extended two-letter tokens (subtract 215 to get 0-40) ETWO Printing of ship data is handled by the write_card routine. Arguments: n The number of the recursive token to insert into the table, in the range 0 to 127
MACRO CTOK n EQUB n + 128 ENDMACRO
Name: adder [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Adder Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls adder
.adder EQUB 1 \ 1: Inservice date: "2914 ({single cap}OUTWORLD EQUS "2914" \ WORKSHOPS)" CTOK 85 \ CTOK 69 \ Encoded as: "2914[85][69][81]" CTOK 81 EQUB 0 EQUB 2 \ 2: Combat factor: "6" EQUS "6" \ EQUB 0 \ Encoded as: "6" EQUB 3 \ 3: Dimensions: "45/8/30FT" EQUS "45/8/30" \ CTOK 42 \ Encoded as: "45/8/30[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.24{all caps}LM{sentence case}" EQUS "0.24" \ CTOK 64 \ Encoded as: "0.24[64]" EQUB 0 EQUB 5 \ 5: Crew: "1" EQUS "1" \ EQUB 0 \ Encoded as: "1" EQUB 6 \ 6: Range: "6{all caps}LY{sentence case}" EQUS "6" \ CTOK 63 \ Encoded as: "6[63]" EQUB 0 IF _RELEASED OR _SOURCE_DISC EQUB 7 \ 7: Cargo space: "4{all caps}TC{sentence case}" EQUS "4" \ CTOK 62 \ Encoded as: "4[62]" EQUB 0 ELIF _BUG_FIX EQUB 7 \ 7: Cargo space: "8{all caps}TC{sentence case}" EQUS "8" \ CTOK 62 \ Encoded as: "8[62]" EQUB 0 ENDIF EQUB 8 \ 8: Armaments: "INGRAM 1928 AZ BEAM LASER{cr} CTOK 56 \ GERET STARSEEKER MISSILES" EQUS " 1928 AZ " \ ETWO 'B', 'E' \ Encoded as: "[56] 1928 AZ <247>am[49]{12}[48] EQUS "am" \ [46]" CTOK 49 EJMP 12 CTOK 48 CTOK 46 EQUB 0 EQUB 9 \ 9: Hull: "D4-18{all caps}/2L{sentence EQUS "D4-18" \ case}" CTOK 83 \ EQUB 0 \ Encoded as: "D4-18[83]" EQUB 10 \ 10: Drive motors: "AM 18 BI THRUST" EQUS "AM 18 " \ ETWO 'B', 'I' \ Encoded as: "AM 18 <234> [66]" EQUS " " CTOK 66 EQUB 0 EQUB 0
Name: anaconda [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Anaconda Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls anaconda
.anaconda EQUB 1 \ 1: Inservice date: "2856 ({single cap}RIMLINER EQUS "2856" \ GALACTIC)" CTOK 85 \ EQUS "Riml" \ Encoded as: "2856[85]Riml<240><244> G<228>ac ETWO 'I', 'N' \ <251>c)" ETWO 'E', 'R' EQUS " G" ETWO 'A', 'L' EQUS "ac" ETWO 'T', 'I' EQUS "c)" EQUB 0 EQUB 2 \ 2: Combat factor: "3" EQUS "3" \ EQUB 0 \ Encoded as: "3" EQUB 3 \ 3: Dimensions: "170/60/75FT" EQUS "170/60/75" \ CTOK 42 \ Encoded as: "170/60/75[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.14{all caps}LM{sentence case}" EQUS "0.14" \ CTOK 64 \ Encoded as: "0.14[64]" EQUB 0 EQUB 5 \ 5: Crew: "2-10" EQUS "2-10" \ EQUB 0 \ Encoded as: "2-10" EQUB 6 \ 6: Range: "10{all caps}LY{sentence case}" EQUS "10" \ CTOK 63 \ Encoded as: "10[63]" EQUB 0 EQUB 7 \ 7: Cargo space: "245{all caps}TC{sentence case}" EQUS "245" \ CTOK 62 \ Encoded as: "245[62]" EQUB 0 EQUB 8 \ 8: Armaments: "HASSONI HI-RAD PULSE LASER{cr} CTOK 59 \ GERET STARSEEKER MISSILES" EQUS " Hi-" \ ETWO 'R', 'A' \ Encoded as: "[59] Hi-<248>d[50][49]{12}[48] EQUS "d" \ [46]" CTOK 50 CTOK 49 EJMP 12 CTOK 48 CTOK 46 EQUB 0 EQUB 9 \ 9: Hull: "M8-**{all caps}/4L{sentence EQUS "M8-**" \ case}" CTOK 84 \ EQUB 0 \ Encoded as: "M8-**[84]" EQUB 10 \ 10: Drive motors: "V & K 32.24{cr} CTOK 73 \ ERGMASTERS" EQUS "32.24" \ EJMP 12 \ Encoded as: "[73]32.24{12}<244>g<239><222> ETWO 'E', 'R' \ <244>s" EQUS "g" ETWO 'M', 'A' ETWO 'S', 'T' ETWO 'E', 'R' EQUS "s" EQUB 0 EQUB 0
Name: asp_2 [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Asp Mk II Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls asp_2
.asp_2 EQUB 1 \ 1: Inservice date: "2878 ({single cap}GALCOP EQUS "2878" \ WORKSHOPS)" CTOK 85 \ EQUS "G" \ Encoded as: "2878[85]G<228>cop[81]" ETWO 'A', 'L' EQUS "cop" CTOK 81 EQUB 0 EQUB 2 \ 2: Combat factor: "6" EQUS "6" \ EQUB 0 \ Encoded as: "6" EQUB 3 \ 3: Dimensions: "70/20/65FT" EQUS "70/20/65" \ CTOK 42 \ Encoded as: "70/20/65[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.40{all caps}LM{sentence case}" EQUS "0.40" \ CTOK 64 \ Encoded as: "0.40[64]" EQUB 0 EQUB 5 \ 5: Crew: "1" EQUS "1" \ EQUB 0 \ Encoded as: "1" EQUB 6 \ 6: Range: "12.5{all caps}LY{sentence case}" EQUS "12.5" \ CTOK 63 \ Encoded as: "12.5[63]" EQUB 0 EQUB 7 \ 7: Cargo space: "0{all caps}TC{sentence case}" EQUS "0" \ CTOK 62 \ Encoded as: "0[62]" EQUB 0 EQUB 8 \ 8: Armaments: "HASSONI-{single cap}KRUGER BURST CTOK 59 \ LASER{cr} EQUS "-" \ GERET STARSEEKER MISSILES" CTOK 58 \ EQUS "Bur" \ Encoded as: "[59]-[58]Bur<222>[49]{12}[48] ETWO 'S', 'T' \ [46]" CTOK 49 EJMP 12 CTOK 48 CTOK 46 EQUB 0 EQUB 9 \ 9: Hull: "J6-31{all caps}/1L{sentence EQUS "J6-31" \ case}" CTOK 82 \ EQUB 0 \ Encoded as: "J6-31[82]" EQUB 10 \ 10: Drive motors: "VOLTAIRE WHIPLASH{cr} CTOK 60 \ {all caps}HK{sentence case} EQUS " Whip" \ PULSEDRIVE" ETWO 'L', 'A' \ EQUS "sh" \ Encoded as: "[60] Whip<249>sh{12}{all caps}HK EJMP 12 \ {sentence case} [50][53]" EJMP 1 EQUS "HK" EJMP 2 EQUS " " CTOK 50 CTOK 53 EQUB 0 EQUB 0
Name: boa [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Boa Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls boa
.boa EQUB 1 \ 1: Inservice date: "3017 ({single cap}GEREGE EQUS "3017" \ FEDERATION)" CTOK 85 \ ETWO 'G', 'E' \ Encoded as: "3017[85]<231><242><231> [76])" ETWO 'R', 'E' ETWO 'G', 'E' EQUS " " CTOK 76 EQUS ")" EQUB 0 EQUB 2 \ 2: Combat factor: "4" EQUS "4" \ EQUB 0 \ Encoded as: "4" EQUB 3 \ 3: Dimensions: "115/60/65FT" EQUS "115/60/65" \ CTOK 42 \ Encoded as: "115/60/65[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.24{all caps}LM{sentence case}" EQUS "0.24" \ CTOK 64 \ Encoded as: "0.24[64]" EQUB 0 EQUB 5 \ 5: Crew: "2-6" EQUS "2-6" \ EQUB 0 \ Encoded as: "2-6" EQUB 6 \ 6: Range: "9{all caps}LY{sentence case}" EQUS "9" \ CTOK 63 \ Encoded as: "9[63]" EQUB 0 EQUB 7 \ 7: Cargo space: "125{all caps}TC{sentence case}" EQUS "125" \ CTOK 62 \ Encoded as: "125[62]" EQUB 0 EQUB 8 \ 8: Armaments: "ERGON LASER SYSTEM{cr} CTOK 52 \ {all caps}IFS{sentence case} SEEK CTOK 49 \ & HUNT MISSILES" CTOK 51 \ EJMP 12 \ Encoded as: "[52][49][51]{12}[86][54] & [79] CTOK 86 \ [46]" CTOK 54 EQUS " & " CTOK 79 CTOK 46 EQUB 0 EQUB 9 \ 9: Hull: "J7-24{all caps}/2L{sentence EQUS "J7-24" \ case}" CTOK 83 \ EQUB 0 \ Encoded as: "J7-24[83]" EQUB 10 \ 10: Drive motors: "{all caps}4*C40KV{sentence case} CTOK 72 \ AMES DRIVE{cr} EJMP 12 \ SEEKLIGHT THRUSTERS" CTOK 54 \ CTOK 55 \ Encoded as: "[72]{12}[54][55] [66]<244>s" EQUS " " CTOK 66 ETWO 'E', 'R' EQUS "s" EQUB 0 EQUB 0
Name: bushmaster [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Bushmaster Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls bushmaster
.bushmaster EQUB 1 \ 1: Inservice date: "3001 ({single cap}ONRIRA EQUS "3001" \ ORBITAL)" CTOK 85 \ ETWO 'O', 'N' \ Encoded as: "3001[85]<223>ri<248> <253>b<219> EQUS "ri" \ <228>)" ETWO 'R', 'A' EQUS " " ETWO 'O', 'R' EQUS "b" ETWO 'I', 'T' ETWO 'A', 'L' EQUS ")" EQUB 0 EQUB 2 \ 2: Combat factor: "8" EQUS "8" \ EQUB 0 \ Encoded as: "8" EQUB 3 \ 3: Dimensions: "50/20/50FT" EQUS "50/20/50" \ CTOK 42 \ Encoded as: "50/20/50[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.35{all caps}LM{sentence case}" EQUS "0.35" \ CTOK 64 \ Encoded as: "0.35[64]" EQUB 0 EQUB 5 \ 5: Crew: "1-2" EQUS "1-2" \ EQUB 0 \ Encoded as: "1-2" EQUB 8 \ 8: Armaments: "DUAL 22-18 LASER{cr} EQUS "Du" \ GERET STARSEEKER MISSILES" ETWO 'A', 'L' \ EQUS " 22-18" \ Encoded as: "Du<228> 22-18[49]{12}[48][46]" CTOK 49 EJMP 12 CTOK 48 CTOK 46 EQUB 0 \EQUB 9 \ This data is commented out in the original source \EQUS "3" \ \CTOK 82 \ It would show the hull as "3{all caps}/1L{sentence \EQUB 0 \ case}" EQUB 10 \ 10: Drive motors: "VOLTAIRE WHIPLASH{cr} CTOK 60 \ {all caps}HT{sentence case} EQUS " Whip" \ PULSEDRIVE" ETWO 'L', 'A' \ EQUS "sh" \ Encoded as: "[60] Whip<249>sh{12}{all caps}HT EJMP 12 \ {sentence case} [50][53]" EJMP 1 EQUS "HT" EJMP 2 EQUS " " CTOK 50 CTOK 53 EQUB 0 EQUB 0
Name: chameleon [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Chameleon Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls chameleon
.chameleon EQUB 1 \ 1: Inservice date: "3122 ({single cap}ARDEN EQUS "3122" \ CO-OPERATIVE)" CTOK 85 \ ETWO 'A', 'R' \ Encoded as: "3122[85]<238>d<246> Co-op<244>a EQUS "d" \ <251><250>)" ETWO 'E', 'N' EQUS " Co-op" ETWO 'E', 'R' EQUS "a" ETWO 'T', 'I' ETWO 'V', 'E' EQUS ")" EQUB 0 EQUB 2 \ 2: Combat factor: "6" EQUS "6" \ EQUB 0 \ Encoded as: "6" EQUB 3 \ 3: Dimensions: "75/24/40FT" EQUS "75/24/40" \ CTOK 42 \ Encoded as: "75/24/40[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.29{all caps}LM{sentence case}" EQUS "0.29" \ CTOK 64 \ Encoded as: "0.29[64]" EQUB 0 EQUB 5 \ 5: Crew: "1-4" EQUS "1-4" \ EQUB 0 \ Encoded as: "1-4" EQUB 6 \ 6: Range: "8{all caps}LY{sentence case}" EQUS "8" \ CTOK 63 \ Encoded as: "8[63]" EQUB 0 EQUB 7 \ 7: Cargo space: "30{all caps}TC{sentence case}" EQUS "30" \ CTOK 62 \ Encoded as: "30[62]" EQUB 0 EQUB 8 \ 8: Armaments: "INGRAM MEGABLAST PULSE LASER{cr} CTOK 56 \ SEEKER X3 MISSILES" EQUS " Mega" \ CTOK 74 \ Encoded as: "[56] Mega[74][50][49]{12}[54] CTOK 50 \ <244> X3[46]" CTOK 49 EJMP 12 CTOK 54 ETWO 'E', 'R' EQUS " X3" CTOK 46 EQUB 0 EQUB 9 \ 9: Hull: "H5-23{all caps}/2L{sentence EQUS "H5-23" \ case}" CTOK 83 \ EQUB 0 \ Encoded as: "H5-23[83]" EQUB 10 \ 10: Drive motors: "VOLTAIRE STINGER{cr} CTOK 60 \ PULSEDRIVE" EQUS " " \ ETWO 'S', 'T' \ Encoded as: "[60] <222><240>g<244>{12}Pul<218> ETWO 'I', 'N' \ [53]" EQUS "g" ETWO 'E', 'R' EJMP 12 EQUS "Pul" ETWO 'S', 'E' CTOK 53 EQUB 0 EQUB 0
Name: cobra_1 [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Cobra Mk I Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls cobra_1
.cobra_1 EQUB 1 \ 1: Inservice date: "2855 ({single cap}PAYNOU, PROSSET EQUS "2855" \ & SALEM)" CTOK 85 \ EQUS "Payn" \ Encoded as: "2855[85]Payn[89], [80]& S<228> ETWO 'O', 'U' \ em)" EQUS ", " CTOK 80 EQUS "& S" ETWO 'A', 'L' EQUS "em)" EQUB 0 EQUB 2 \ 2: Combat factor: "5" EQUS "5" \ EQUB 0 \ Encoded as: "5" EQUB 3 \ 3: Dimensions: "55/15/70FT" EQUS "55/15/70" \ CTOK 42 \ Encoded as: "55/15/70[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.26{all caps}LM{sentence case}" EQUS "0.26" \ CTOK 64 \ Encoded as: "0.26[64]" EQUB 0 EQUB 5 \ 5: Crew: "1" EQUS "1" \ EQUB 0 \ Encoded as: "1" EQUB 6 \ 6: Range: "6{all caps}LY{sentence case}" EQUS "6" \ CTOK 63 \ Encoded as: "6[63]" EQUB 0 EQUB 7 \ 7: Cargo space: "10{all caps}TC{sentence case}" EQUS "10" \ CTOK 62 \ Encoded as: "10[62]" EQUB 0 EQUB 8 \ 8: Armaments: "HASSONI VARISCAN LASER{cr} CTOK 59 \ LANCE & FERMAN MISSILES" EQUS " V" \ ETWO 'A', 'R' \ Encoded as: "[59] V<238>isc<255>[49]{12}[57] EQUS "isc" \ [46]" ETWO 'A', 'N' CTOK 49 EJMP 12 CTOK 57 CTOK 46 EQUB 0 EQUB 9 \ 9: Hull: "E4-20{all caps}/4L{sentence EQUS "E4-20" \ case}" CTOK 84 \ EQUB 0 \ Encoded as: "E4-20[84]" EQUB 10 \ 10: Drive motors: "PROSSET DRIVE" CTOK 80 \ CTOK 53 \ Encoded as: "[80][53]" EQUB 0 EQUB 0
Name: cobra_3 [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Cobra Mk III Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls cobra_3
.cobra_3 EQUB 1 \ 1: Inservice date: "3100 ({single cap}COWELL & EQUS "3100" \ MG{all caps}RATH, LAVE)" CTOK 85 \ EQUS "Cowell & Mg" \ Encoded as: "3100[85]Cowell & Mg{single cap} EJMP 19 \ <248><226>, <249><250>)" ETWO 'R', 'A' ETWO 'T', 'H' EQUS ", " ETWO 'L', 'A' ETWO 'V', 'E' EQUS ")" EQUB 0 EQUB 2 \ 2: Combat factor: "7" EQUS "7" \ EQUB 0 \ Encoded as: "7" EQUB 3 \ 3: Dimensions: "65/30/130FT" EQUS "65/30/130" \ CTOK 42 \ Encoded as: "65/30/130[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.28{all caps}LM{sentence case}" EQUS "0.28" \ CTOK 64 \ Encoded as: "0.28[64]" EQUB 0 EQUB 5 \ 5: Crew: "1-3" EQUS "1-3" \ EQUB 0 \ Encoded as: "1-3" EQUB 6 \ 6: Range: "7{all caps}LY{sentence case}" EQUS "7" \ CTOK 63 \ Encoded as: "7[63]" EQUB 0 EQUB 7 \ 7: Cargo space: "35{all caps}TC{sentence case}" EQUS "35" \ CTOK 62 \ Encoded as: "35[62]" EQUB 0 EQUB 8 \ 8: Armaments: "INGRAM LASER SYSTEM{cr} CTOK 56 \ LANCE & FERMAN MISSILES" CTOK 49 \ CTOK 51 \ Encoded as: "[56][49][51]{12}[57][46]" EJMP 12 CTOK 57 CTOK 46 EQUB 0 EQUB 9 \ 9: Hull: "G7-24{all caps}/4L{sentence EQUS "G7-24" \ case}" CTOK 84 \ EQUB 0 \ Encoded as: "G7-24[84]" EQUB 10 \ 10: Drive motors: "{single cap}KRUGER LIGHTFAST{cr} CTOK 58 \ IRRIKAN THRUSPACE" CTOK 55 \ EQUS "fa" \ Encoded as: "[58][55]fa<222>{12}Irrik<255> Thr ETWO 'S', 'T' \ u[77]" EJMP 12 EQUS "Irrik" ETWO 'A', 'N' EQUS " Thru" CTOK 77 EQUB 0 EQUB 0
Name: coriolis [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Coriolis station Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls coriolis
.coriolis EQUB 1 \ 1: Inservice date: "2752 ({single cap}GASEC LABS, EQUS "2752" \ VETITICE)" CTOK 75 \ EQUB 0 \ Encoded as: "2752[75]" EQUB 3 \ 3: Dimensions: "1/1/1km" EQUS "1/1/1km" \ EQUB 0 \ Encoded as: "1/1/1km" EQUB 11 \ 11: Space: "2000 SHIPS" EQUS "2000" \ CTOK 67 \ Encoded as: "2000[67]s" EQUS "s" EQUB 0 EQUB 0
Name: dodecagon [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Dodo station Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls dodecagon
.dodecagon EQUB 1 \ 1: Inservice date: "3152 ({single cap}GASEC LABS, EQUS "3152" \ VETITICE)" CTOK 75 \ EQUB 0 \ Encoded as: "3152[75]" EQUB 3 \ 3: Dimensions: "1/1/1km" EQUS "1/1/1km" \ EQUB 0 \ Encoded as: "1/1/1km" EQUB 11 \ 11: Space: "2700 SHIPS" EQUS "2700" \ CTOK 67 \ Encoded as: "2700[67]s" EQUS "s" EQUB 0 EQUB 0
Name: escape_pod [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the escape pod Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls escape_pod
.escape_pod EQUB 1 \ 1: Inservice date: "PRE-2500" EQUS "p" \ ETWO 'R', 'E' \ Encoded as: "p<242>-2500" EQUS "-2500" EQUB 0 EQUB 3 \ 3: Dimensions: "10/5/5FT" EQUS "10/5/5" \ CTOK 42 \ Encoded as: "10/5/5[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.08{all caps}LM{sentence case}" EQUS "0.08" \ CTOK 64 \ Encoded as: "0.08[64]" EQUB 0 EQUB 5 \ 5: Crew: "1-2" EQUS "1-2" \ EQUB 0 \ Encoded as: "1-2" EQUB 0
Name: fer_de_lance [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Fer-de-Lance Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls fer_de_lance
.fer_de_lance EQUB 1 \ 1: Inservice date: "3100 ({single cap}ZORGON EQUS "3100" \ PETTERSON)" CTOK 85 \ CTOK 70 \ Encoded as: "3100[85][70]" EQUB 0 EQUB 2 \ 2: Combat factor: "6" EQUS "6" \ EQUB 0 \ Encoded as: "6" EQUB 3 \ 3: Dimensions: "85/20/45FT" EQUS "85/20/45" \ CTOK 42 \ Encoded as: "85/20/45[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.30{all caps}LM{sentence case}" EQUS "0.30" \ CTOK 64 \ Encoded as: "0.30[64]" EQUB 0 EQUB 5 \ 5: Crew: "1-3" EQUS "1-3" \ EQUB 0 \ Encoded as: "1-3" EQUB 6 \ 6: Range: "8.5{all caps}LY{sentence case}" EQUS "8.5" \ CTOK 63 \ Encoded as: "8.5[63]" EQUB 0 EQUB 7 \ 7: Cargo space: "2{all caps}TC{sentence case}" EQUS "2" \ CTOK 62 \ Encoded as: "2[62]" EQUB 0 EQUB 8 \ 8: Armaments: "ERGON LASER SYSTEM{cr} CTOK 52 \ {all caps}IFS{sentence case} SEEK CTOK 49 \ & HUNT MISSILES" CTOK 51 \ EJMP 12 \ Encoded as: "[52][49][51]{12}[86][54] & [79] CTOK 86 \ [46]" CTOK 54 EQUS " & " CTOK 79 CTOK 46 EQUB 0 EQUB 9 \ 9: Hull: "H7-28{all caps}/4L{sentence EQUS "H7-28" \ case}" CTOK 84 \ EQUB 0 \ Encoded as: "H7-28[84]" EQUB 10 \ 10: Drive motors: "TITRONIX INTERSUN{cr} EQUS "T" \ {all caps}LT{sentence case} ETWO 'I', 'T' \ {single cap}IONIC" EQUS "r" \ ETWO 'O', 'N' \ Encoded as: "T<219>r<223>ix <240>t<244>sun{12} EQUS "ix " \ {all caps}LT{sentence case} [78]" ETWO 'I', 'N' EQUS "t" ETWO 'E', 'R' EQUS "sun" EJMP 12 EJMP 1 EQUS "LT" EJMP 2 EQUS " " CTOK 78 EQUB 0 EQUB 0
Name: gecko [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Gecko Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls gecko
.gecko EQUB 1 \ 1: Inservice date: "2852 ({single cap}ACE & FABER, EQUS "2852" \ LERELACE)" CTOK 85 \ EQUS "A" \ Encoded as: "2852[85]A<233> & F[88]<244>, ETWO 'C', 'E' \ <229><242><249><233>)" EQUS " & F" ETWO 'A', 'B' ETWO 'E', 'R' EQUS ", " ETWO 'L', 'E' ETWO 'R', 'E' ETWO 'L', 'A' ETWO 'C', 'E' EQUS ")" EQUB 0 EQUB 2 \ 2: Combat factor: "7" EQUS "7" \ EQUB 0 \ Encoded as: "7" EQUB 3 \ 3: Dimensions: "40/12/65FT" EQUS "40/12/65" \ CTOK 42 \ Encoded as: "40/12/65[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.30{all caps}LM{sentence case}" EQUS "0.30" \ CTOK 64 \ Encoded as: "0.30[64]" EQUB 0 EQUB 5 \ 5: Crew: "1-2" EQUS "1-2" \ EQUB 0 \ Encoded as: "1-2" EQUB 6 \ 6: Range: "7{all caps}LY{sentence case}" EQUS "7" \ CTOK 63 \ Encoded as: "7[63]" EQUB 0 EQUB 7 \ 7: Cargo space: "3{all caps}TC{sentence case}" EQUS "3" \ CTOK 62 \ Encoded as: "3[62]" EQUB 0 EQUB 8 \ 8: Armaments: "INGRAM 1919 A4 LASER{cr} CTOK 56 \ {all caps}LM{sentence case} EQUS " 1919 A4" \ HOMING MISSILES" CTOK 49 \ EJMP 12 \ Encoded as: "[56] 1919 A4[49]{12}[64] Hom<240> CTOK 64 \ g[46]" EQUS " Hom" ETWO 'I', 'N' EQUS "g" CTOK 46 EQUB 0 EQUB 9 \ 9: Hull: "E6-19{all caps}/2L{sentence EQUS "E6-19" \ case}" CTOK 83 \ EQUB 0 \ Encoded as: "E6-19[83]" EQUB 10 \ 10: Drive motors: "BREAM PULSELIGHT {all caps}XL EQUS "B" \ {sentence case}" ETWO 'R', 'E' \ EQUS "am" \ Encoded as: "B<242>am[50][55] {all caps}XL CTOK 50 \ {sentence case}" CTOK 55 EQUS " " EJMP 1 EQUS "XL" EJMP 2 EQUB 0 EQUB 0
Name: ghavial [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Ghavial Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls ghavial
.ghavial EQUB 1 \ 1: Inservice date: "3077 ({single cap}ARDEN EQUS "3077" \ CO-OPERATIVE)" CTOK 85 \ ETWO 'A', 'R' \ Encoded as: "3077[85]<238>d<246> Co-op<244>a EQUS "d" \ <251><250>)" ETWO 'E', 'N' EQUS " Co-op" ETWO 'E', 'R' EQUS "a" ETWO 'T', 'I' ETWO 'V', 'E' EQUS ")" EQUB 0 EQUB 2 \ 2: Combat factor: "5" EQUS "5" \ EQUB 0 \ Encoded as: "5" EQUB 3 \ 3: Dimensions: "80/30/60FT" EQUS "80/30/60" \ CTOK 42 \ Encoded as: "80/30/60[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.25{all caps}LM{sentence case}" EQUS "0.25" \ CTOK 64 \ Encoded as: "0.25[64]" EQUB 0 EQUB 5 \ 5: Crew: "2-7" EQUS "2-7" \ EQUB 0 \ Encoded as: "2-7" EQUB 6 \ 6: Range: "8{all caps}LY{sentence case}" EQUS "8" \ CTOK 63 \ Encoded as: "8[63]" EQUB 0 EQUB 7 \ 7: Cargo space: "50{all caps}TC{sentence case}" EQUS "50" \ CTOK 62 \ Encoded as: "50[62]" EQUB 0 EQUB 8 \ 8: Armaments: "FAIREY PULSE LASER{cr} EQUS "Fai" \ LANCE & FERMAN MISSILES" ETWO 'R', 'E' \ EQUS "y" \ Encoded as: "Fai<242>y[50][49]{12}[57][46]" CTOK 50 CTOK 49 EJMP 12 CTOK 57 CTOK 46 EQUB 0 EQUB 9 \ 9: Hull: "I5-25{all caps}/4L{sentence EQUS "I5-25" \ case}" CTOK 84 \ EQUB 0 \ Encoded as: "I5-25[84]" EQUB 10 \ 10: Drive motors: "SPALDER & PRIME {all caps}TT1 EQUS "Sp" \ {sentence case}" ETWO 'A', 'L' \ EQUS "d" \ Encoded as: "Sp<228>d<244> & Prime {all caps} ETWO 'E', 'R' \ TT1{sentence case}" EQUS " & Prime " EJMP 1 EQUS "TT1" EJMP 2 EQUB 0 EQUB 0
Name: iguana [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Iguana Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls iguana
.iguana EQUB 1 \ 1: Inservice date: "3095 ({single cap}FAULCON EQUS "3095" \ MANSPACE)" CTOK 85 \ EQUS "Faulc" \ Encoded as: "3095[85]Faulc<223> <239>n[77])" ETWO 'O', 'N' EQUS " " ETWO 'M', 'A' EQUS "n" CTOK 77 EQUS ")" EQUB 0 EQUB 2 \ 2: Combat factor: "6" EQUS "6" \ EQUB 0 \ Encoded as: "6" EQUB 3 \ 3: Dimensions: "65/20/40FT" EQUS "65/20/40" \ CTOK 42 \ Encoded as: "65/20/40[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.33{all caps}LM{sentence case}" EQUS "0.33" \ CTOK 64 \ Encoded as: "0.33[64]" EQUB 0 EQUB 5 \ 5: Crew: "1-3" EQUS "1-3" \ EQUB 0 \ Encoded as: "1-3" EQUB 6 \ 6: Range: "7.5{all caps}LY{sentence case}" EQUS "7.5" \ CTOK 63 \ Encoded as: "7.5[63]" EQUB 0 EQUB 7 \ 7: Cargo space: "15{all caps}TC{sentence case}" EQUS "15" \ CTOK 62 \ Encoded as: "15[62]" EQUB 0 EQUB 8 \ 8: Armaments: "LANCE & FERMAN LASER{cr} CTOK 57 \ SEEKER X1 MISSILES" CTOK 49 \ EJMP 12 \ Encoded as: "[57][49]{12}[54]<244> X1[46]" CTOK 54 ETWO 'E', 'R' EQUS " X1" CTOK 46 EQUB 0 EQUB 9 \ 9: Hull: "G6-20{all caps}/4L{sentence EQUS "G6-20" \ case}" CTOK 84 \ EQUB 0 \ Encoded as: "G6-20[84]" EQUB 10 \ 10: Drive motors: "DE{single cap}LACY SUPER CTOK 71 \ THRUST{cr} EQUS " Sup" \ {all caps}VC{sentence case}9" ETWO 'E', 'R' \ EQUS " " \ Encoded as: "[71] Sup<244> [66]{12}{all caps}V CTOK 66 \ C{sentence case}9" EJMP 12 EJMP 1 EQUS "VC" EJMP 2 EQUS "9" EQUB 0 EQUB 0
Name: krait [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Krait Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls krait
.krait EQUB 1 \ 1: Inservice date: "3027 ({single cap}DE{single cap} EQUS "3027" \ LACY SHIPWORKS, ININES)" CTOK 85 \ CTOK 71 \ Encoded as: "3027[85][71][67]W<253>ks, <240> CTOK 67 \ <240><237>)" EQUS "W" ETWO 'O', 'R' EQUS "ks, " ETWO 'I', 'N' ETWO 'I', 'N' ETWO 'E', 'S' EQUS ")" EQUB 0 EQUB 2 \ 2: Combat factor: "7" EQUS "7" \ EQUB 0 \ Encoded as: "7" EQUB 3 \ 3: Dimensions: "80/20/90FT" EQUS "80/20/90" \ CTOK 42 \ Encoded as: "80/20/90[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.30{all caps}LM{sentence case}" EQUS "0.30" \ CTOK 64 \ Encoded as: "0.30[64]" EQUB 0 EQUB 5 \ 5: Crew: "1" EQUS "1" \ EQUB 0 \ Encoded as: "1" EQUB 7 \ 7: Cargo space: "10{all caps}TC{sentence case}" EQUS "10" \ CTOK 62 \ Encoded as: "10[62]" EQUB 0 EQUB 8 \ 8: Armaments: "ERGON LASER SYSTEM" CTOK 52 \ CTOK 49 \ Encoded as: "[52][49][51]" CTOK 51 EQUB 0 \EQUB 9 \ This data is commented out in the original source \EQUS "8" \ \CTOK 83 \ It would show the hull as "8{all caps}/2L{sentence \EQUB 0 \ case}" EQUB 10 \ 10: Drive motors: "DE{single cap}LACY SPIN{single CTOK 71 \ cap}IONIC ZX14" EQUS " Sp" \ ETWO 'I', 'N' \ Encoded as: "[71] Sp<240>[78] ZX14" CTOK 78 EQUS " ZX14" EQUB 0 EQUB 0
Name: mamba [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Mamba Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls mamba
.mamba EQUB 1 \ 1: Inservice date: "3110 ({single cap}REORTE SHIP EQUS "3110" \ FEDERATION)" CTOK 85 \ ETWO 'R', 'E' \ Encoded as: "3110[85]<242><253>te[67] [76])" ETWO 'O', 'R' EQUS "te" CTOK 67 EQUS " " CTOK 76 EQUS ")" EQUB 0 EQUB 2 \ 2: Combat factor: "8" EQUS "8" \ EQUB 0 \ Encoded as: "8" EQUB 3 \ 3: Dimensions: "55/12/65FT" EQUS "55/12/65" \ CTOK 42 \ Encoded as: "55/12/65[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.30{all caps}LM{sentence case}" EQUS "0.30" \ CTOK 64 \ Encoded as: "0.30[64]" EQUB 0 EQUB 5 \ 5: Crew: "1-2" EQUS "1-2" \ EQUB 0 \ Encoded as: "1-2" EQUB 7 \ 7: Cargo space: "10{all caps}TC{sentence case}" EQUS "10" \ CTOK 62 \ Encoded as: "10[62]" EQUB 0 EQUB 8 \ 8: Armaments: "ERGON LASER SYSTEM{cr} CTOK 52 \ {all caps}IFS{sentence case} SEEK CTOK 49 \ & HUNT MISSILES" CTOK 51 \ EJMP 12 \ Encoded as: "[52][49][51]{12}[86][54] & [79] CTOK 86 \ [46]" CTOK 54 EQUS " & " CTOK 79 CTOK 46 EQUB 0 \EQUB 9 \ This data is commented out in the original source \EQUS "7" \ \CTOK 82 \ It would show the hull as "7{all caps}/1L{sentence \EQUB 0 \ case}" EQUB 10 \ 10: Drive motors: "SEEKLIGHT {all caps}HV{sentence CTOK 54 \ case}THRUST" CTOK 55 \ EQUS " " \ Encoded as: "[54][55] {all caps}HV{sentence EJMP 1 \ case}[66]" EQUS "HV" EJMP 2 EQUS " " CTOK 66 EQUB 0 EQUB 0
Name: monitor [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Monitor Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls monitor
.monitor EQUB 1 \ 1: Inservice date: "3112 ({single cap}ZORGON EQUS "3112" \ PETTERSON)" CTOK 85 \ CTOK 70 \ Encoded as: "3112[85][70]" EQUB 0 EQUB 2 \ 2: Combat factor: "4" EQUS "4" \ EQUB 0 \ Encoded as: "4" EQUB 3 \ 3: Dimensions: "100/40/50FT" EQUS "100/40/50" \ CTOK 42 \ Encoded as: "100/40/50[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.16{all caps}LM{sentence case}" EQUS "0.16" \ CTOK 64 \ Encoded as: "0.16[64]" EQUB 0 EQUB 5 \ 5: Crew: "7-19" EQUS "7-19" \ EQUB 0 \ Encoded as: "7-19" EQUB 6 \ 6: Range: "11{all caps}LY{sentence case}" EQUS "11" \ CTOK 63 \ Encoded as: "11[63]" EQUB 0 EQUB 7 \ 7: Cargo space: "75{all caps}TC{sentence case}" EQUS "75" \ CTOK 62 \ Encoded as: "75[62]" EQUB 0 EQUB 8 \ 8: Armaments: "{single cap}KRUGER {all caps}HMB CTOK 58 \ {sentence case} LASER{cr} EJMP 1 \ GERET STARSEEKER MISSILE" EQUS "HMB" \ EJMP 2 \ Encoded as: "[58]{all caps}HMB{sentence case} CTOK 49 \ [49]{12}[48][46]" EJMP 12 CTOK 48 CTOK 46 EQUB 0 EQUB 9 \ 9: Hull: "J6-28{all caps}/4L{sentence EQUS "J6-28" \ case}" CTOK 84 \ EQUB 0 \ Encoded as: "J6-28[84]" EQUB 10 \ 10: Drive motors: "V & K 29.01{cr}LIGHT BLASTERS" CTOK 73 \ EQUS "29.01" \ Encoded as: "[73]29.01{12}[55] [74]<244>s" EJMP 12 CTOK 55 EQUS " " CTOK 74 ETWO 'E', 'R' EQUS "s" EQUB 0 EQUB 0
Name: moray [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Moray Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls moray
.moray EQUB 1 \ 1: Inservice date: "3028 ({single cap}MARINE TRENCH EQUS "3028" \ CO.)" CTOK 85 \ EQUS "M" \ Encoded as: "3028[85]M<238><240>e T<242>nch C ETWO 'A', 'R' \ o.)" ETWO 'I', 'N' EQUS "e T" ETWO 'R', 'E' EQUS "nch Co.)" EQUB 0 EQUB 2 \ 2: Combat factor: "7" EQUS "7" \ EQUB 0 \ Encoded as: "7" EQUB 3 \ 3: Dimensions: "60/25/60FT" EQUS "60/25/60" \ CTOK 42 \ Encoded as: "60/25/60[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.25{all caps}LM{sentence case}" EQUS "0.25" \ CTOK 64 \ Encoded as: "0.25[64]" EQUB 0 EQUB 5 \ 5: Crew: "1-4" EQUS "1-4" \ EQUB 0 \ Encoded as: "1-4" EQUB 6 \ 6: Range: "8{all caps}LY{sentence case}" EQUS "8" \ CTOK 63 \ Encoded as: "8[63]" EQUB 0 EQUB 7 \ 7: Cargo space: "7{all caps}TC{sentence case}" EQUS "7" \ CTOK 62 \ Encoded as: "7[62]" EQUB 0 EQUB 8 \ 8: Armaments: "INGRAM LASER SYSTEM{cr} CTOK 56 \ GERET STARSEEKER MISSILES" CTOK 49 \ CTOK 51 \ Encoded as: "[56][49][51]{12}[48][46]" EJMP 12 CTOK 48 CTOK 46 EQUB 0 EQUB 9 \ 9: Hull: "F4-22{all caps}/4L{sentence EQUS "F4-22" \ case}" CTOK 84 \ EQUB 0 \ Encoded as: "F4-22[84]" EQUB 10 \ 10: Drive motors: "TURBULEN QUARK{cr}RE-CHARGER EQUS "Turbul" \ 1287" ETWO 'E', 'N' \ EQUS " " \ Encoded as: "Turbul<246> <254><238>k{12}<242>- ETWO 'Q', 'U' \ ch<238>g<244> 1287" ETWO 'A', 'R' EQUS "k" EJMP 12 ETWO 'R', 'E' EQUS "-ch" ETWO 'A', 'R' EQUS "g" ETWO 'E', 'R' EQUS " 1287" EQUB 0 EQUB 0
Name: ophidian [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Ophidian Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls ophidian
.ophidian EQUB 1 \ 1: Inservice date: "2981 ({single cap}OUTWORLD EQUS "2981" \ WORKSHOPS)" CTOK 85 \ CTOK 69 \ Encoded as: "2981[85][69][81]" CTOK 81 EQUB 0 EQUB 2 \ 2: Combat factor: "8" EQUS "8" \ EQUB 0 \ Encoded as: "8" EQUB 3 \ 3: Dimensions: "65/15/30FT" EQUS "65/15/30" \ CTOK 42 \ Encoded as: "65/15/30[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.34{all caps}LM{sentence case}" EQUS "0.34" \ CTOK 64 \ Encoded as: "0.34[64]" EQUB 0 EQUB 5 \ 5: Crew: "1-3" EQUS "1-3" \ EQUB 0 \ Encoded as: "1-3" EQUB 6 \ 6: Range: "7{all caps}LY{sentence case}" EQUS "7" \ CTOK 63 \ Encoded as: "7[63]" EQUB 0 EQUB 7 \ 7: Cargo space: "20{all caps}TC{sentence case}" EQUS "20" \ CTOK 62 \ Encoded as: "20[62]" EQUB 0 EQUB 8 \ 8: Armaments: "LANCE & FERMAN LASER{cr} CTOK 57 \ SEEKER X1 MISSILES" CTOK 49 \ EJMP 12 \ Encoded as: "[57][49]{12}[54]<244> X1[46]" CTOK 54 ETWO 'E', 'R' EQUS " X1" CTOK 46 EQUB 0 EQUB 9 \ 9: Hull: "D4-16{all caps}/1L{sentence EQUS "D4-16" \ case}" CTOK 82 \ EQUB 0 \ Encoded as: "D4-16[82]" EQUB 10 \ 10: Drive motors: "VOLTAIRE STINGER{cr} CTOK 60 \ PULSEDRIVE" EQUS " " \ ETWO 'S', 'T' \ Encoded as: "[60] <222><240>g<244>{12}Pul<218> ETWO 'I', 'N' \ [53]" EQUS "g" ETWO 'E', 'R' EJMP 12 EQUS "Pul" ETWO 'S', 'E' CTOK 53 EQUB 0 EQUB 0
Name: python [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Python Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls python
.python EQUB 1 \ 1: Inservice date: "2700 ({single cap}WHATT & PRITNEY EQUS "2700" \ SC)" CTOK 85 \ EQUS "Wh" \ Encoded as: "2700[85]Wh<245>t & Pr<219>ney S ETWO 'A', 'T' \ C)" EQUS "t & Pr" ETWO 'I', 'T' EQUS "ney SC)" EQUB 0 EQUB 2 \ 2: Combat factor: "3" EQUS "3" \ EQUB 0 \ Encoded as: "3" EQUB 3 \ 3: Dimensions: "130/40/80FT" EQUS "130/40/80" \ CTOK 42 \ Encoded as: "130/40/80[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.20{all caps}LM{sentence case}" EQUS "0.20" \ CTOK 64 \ Encoded as: "0.20[64]" EQUB 0 EQUB 5 \ 5: Crew: "2-9" EQUS "2-9" \ EQUB 0 \ Encoded as: "2-9" EQUB 6 \ 6: Range: "8{all caps}LY{sentence case}" EQUS "8" \ CTOK 63 \ Encoded as: "8[63]" EQUB 0 EQUB 7 \ 7: Cargo space: "100{all caps}TC{sentence case}" EQUS "100" \ CTOK 62 \ Encoded as: "100[62]" EQUB 0 EQUB 8 \ 8: Armaments: "VOLT-{all caps}VARISCAN PULSE EQUS "Volt-" \ LASER" EJMP 19 \ EQUS "V" \ Encoded as: "Volt-{single cap}V<238>isc<255> ETWO 'A', 'R' \ [50][49]" EQUS "isc" ETWO 'A', 'N' CTOK 50 CTOK 49 EQUB 0 EQUB 9 \ 9: Hull: "K6-27{all caps}/4L{sentence EQUS "K6-27" \ case}" CTOK 84 \ EQUB 0 \ Encoded as: "K6-27[84]" EQUB 10 \ 10: Drive motors: "{all caps}4*C40KV{sentence case} CTOK 72 \ AMES DRIVE{cr} EJMP 12 \ EXLON 76NN MODEL" EQUS "Exl" \ ETWO 'O', 'N' \ Encoded as: "[72]{12}Exl<223> 76NN Model" EQUS " 76NN Model" EQUB 0 EQUB 0
Name: shuttle [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Shuttle Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls shuttle
.shuttle EQUB 1 \ 1: Inservice date: "2856 ({single cap}SAUD-{single EQUS "2856" \ cap}KRUGER ASTRO)" CTOK 85 \ EQUS "Saud-" \ Encoded as: "2856[85]Saud-[58]A<222>ro)" CTOK 58 EQUS "A" ETWO 'S', 'T' EQUS "ro)" EQUB 0 EQUB 2 \ 2: Combat factor: "4" EQUS "4" \ EQUB 0 \ Encoded as: "4" EQUB 3 \ 3: Dimensions: "35/20/20FT" EQUS "35/20/20" \ CTOK 42 \ Encoded as: "35/20/20[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.08{all caps}LM{sentence case}" EQUS "0.08" \ CTOK 64 \ Encoded as: "0.08[64]" EQUB 0 EQUB 5 \ 5: Crew: "2" EQUS "2" \ EQUB 0 \ Encoded as: "2" EQUB 7 \ 7: Cargo space: "60{all caps}TC{sentence case}" EQUS "60" \ CTOK 62 \ Encoded as: "60[62]" EQUB 0 EQUB 10 \ 10: Drive motors: "V & K 20.20{cr} CTOK 73 \ STARMAT DRIVE" EQUS "20.20" \ EJMP 12 \ Encoded as: "[73]20.20{12}<222><238><239>t ETWO 'S', 'T' \ [53]" ETWO 'A', 'R' ETWO 'M', 'A' EQUS "t " CTOK 53 EQUB 0 EQUB 0
Name: sidewinder [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Sidewinder Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls sidewinder
.sidewinder EQUB 1 \ 1: Inservice date: "2982 ({single cap}ONRIRA EQUS "2982" \ ORBITAL)" CTOK 85 \ ETWO 'O', 'N' \ Encoded as: "2982[85]<223>ri<248> <253>b<219> EQUS "ri" \ <228>)" ETWO 'R', 'A' EQUS " " ETWO 'O', 'R' EQUS "b" ETWO 'I', 'T' ETWO 'A', 'L' EQUS ")" EQUB 0 EQUB 2 \ 2: Combat factor: "9" EQUS "9" \ EQUB 0 \ Encoded as: "9" EQUB 3 \ 3: Dimensions: "35/15/65FT" EQUS "35/15/65" \ CTOK 42 \ Encoded as: "35/15/65[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.37{all caps}LM{sentence case}" EQUS "0.37" \ CTOK 64 \ Encoded as: "0.37[64]" EQUB 0 EQUB 5 \ 5: Crew: "1" EQUS "1" \ EQUB 0 \ Encoded as: "1" EQUB 8 \ 8: Armaments: "DUAL 22-18 LASER" EQUS "Du" \ ETWO 'A', 'L' \ Encoded as: "Du<228> 22-18[49]" EQUS " 22-18" CTOK 49 EQUB 0 \EQUB 0, 9 \ This data is commented out in the orginal source \EQUA "3|!R" EQUB 10 \ 10: Drive motors: "DE{single cap}LACY SPIN{single CTOK 71 \ cap}IONIC {all caps}MV{sentence EQUS " Sp" \ case}" ETWO 'I', 'N' \ CTOK 78 \ Encoded as: "[71] Sp<240>[78] {all caps}MV EQUS " " \ {sentence case}" EJMP 1 EQUS "MV" EJMP 2 EQUB 0 EQUB 0
Name: thargoid [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Thargoid Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls thargoid
.thargoid EQUB 2 \ 2: Combat factor: "6" EQUS "6" \ EQUB 0 \ Encoded as: "6" EQUB 3 \ 3: Dimensions: "180/40/180FT" EQUS "180/40/180" \ CTOK 42 \ Encoded as: "180/40/180[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.39{all caps}LM{sentence case}" EQUS "0.39" \ CTOK 64 \ Encoded as: "0.39[64]" EQUB 0 EQUB 5 \ 5: Crew: "50" EQUS "50" \ EQUB 0 \ Encoded as: "50" EQUB 6 \ 6: Range: "UNKNOWN" EQUS "Unk" \ ETWO 'N', 'O' \ Encoded as: "Unk<227>wn" EQUS "wn" EQUB 0 EQUB 8 \ 8: Armaments: "WIDELY VARYING" EQUS "Widely v" \ ETWO 'A', 'R' \ Encoded as: "Widely v<238>y<240>g" EQUS "y" ETWO 'I', 'N' EQUS "g" EQUB 0 \EQUB 9 \ This data is commented out in the original source \EQUS "Unk" \ \TWOK 'N', 'O' \ It would show the hull as "UNKNOWN" \EQUS "wn" \EQUB 0 EQUB 10 \ 10: Drive motors: "THARGOID INVENTION" CTOK 30 \ EQUS " " \ Encoded as: "[30] [68]" CTOK 68 EQUB 0 EQUB 0
Name: thargon [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Thargon Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls thargon
.thargon EQUB 2 \ 2: Combat factor: "6" EQUS "6" \ EQUB 0 \ Encoded as: "6" EQUB 3 \ 3: Dimensions: "40/10/35FT" EQUS "40/10/35" \ CTOK 42 \ Encoded as: "40/10/35[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.30{all caps}LM{sentence case}" EQUS "0.30" \ CTOK 64 \ Encoded as: "0.30[64]" EQUB 0 EQUB 5 \ 5: Crew: "NONE" ETWO 'N', 'O' \ EQUS "ne" \ Encoded as: "<227>ne" EQUB 0 EQUB 8 \ 8: Armaments: "THARGOID LASER" CTOK 30 \ CTOK 49 \ Encoded as: "[30][49]" EQUB 0 \EQUB 9 \ This data is commented out in the original source \TWOK 'N', 'O' \ \EQUS "ne" \ It would show the hull as "NONE" \EQUB 0 EQUB 10 \ 10: Drive motors: "THARGOID INVENTION" CTOK 30 \ EQUS " " \ Encoded as: "[30] [68]" CTOK 68 EQUB 0 EQUB 0
Name: transporter [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Transporter Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls transporter
.transporter EQUB 1 \ 1: Inservice date: "PRE-2500 ({single cap}SPACELINK EQUS "p" \ SHIPYARDS)" ETWO 'R', 'E' \ EQUS "-2500" \ Encoded as: "p<242>-2500[85][77]L<240>k[67]y CTOK 85 \ <238>ds)" CTOK 77 EQUS "L" ETWO 'I', 'N' EQUS "k" CTOK 67 EQUS "y" ETWO 'A', 'R' EQUS "ds)" EQUB 0 EQUB 3 \ 3: Dimensions: "35/10/30FT" EQUS "35/10/30" \ CTOK 42 \ Encoded as: "35/10/30[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.10{all caps}LM{sentence case}" EQUS "0.10" \ CTOK 64 \ Encoded as: "0.10[64]" EQUB 0 EQUB 5 \ 5: Crew: "5" EQUS "5" \ EQUB 0 \ Encoded as: "5" EQUB 7 \ 7: Cargo space: "10{all caps}TC{sentence case}" EQUS "10" \ CTOK 62 \ Encoded as: "10[62]" EQUB 0 EQUB 0
Name: viper [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Viper Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls viper
.viper EQUB 1 \ 1: Inservice date: "2762 ({single cap}FAULCON EQUS "2762" \ MANSPACE)" CTOK 85 \ EQUS "Faulc" \ Encoded as: "2762[85]Faulc<223> <239>n[77])" ETWO 'O', 'N' EQUS " " ETWO 'M', 'A' EQUS "n" CTOK 77 EQUS ")" EQUB 0 EQUB 2 \ 2: Combat factor: "7" EQUS "7" \ EQUB 0 \ Encoded as: "7" EQUB 3 \ 3: Dimensions: "55/20/50FT" EQUS "55/20/50" \ CTOK 42 \ Encoded as: "55/20/50[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.32{all caps}LM{sentence case}" EQUS "0.32" \ CTOK 64 \ Encoded as: "0.32[64]" EQUB 0 EQUB 5 \ 5: Crew: "1-10" EQUS "1-10" \ EQUB 0 \ Encoded as: "1-10" EQUB 8 \ 8: Armaments: "INGRAM MEGABLAST PULSE LASER{cr} CTOK 56 \ SEEKER X3 MISSILES" EQUS " Mega" \ CTOK 74 \ Encoded as: "[56] Mega[74][50][49]{12}[54] CTOK 50 \ <244> X3[46]" CTOK 49 EJMP 12 CTOK 54 ETWO 'E', 'R' EQUS " X3" CTOK 46 EQUB 0 \EQUB 9 \ This data is commented out in the original source \EQUS "9" \ \CTOK 82 \ It would show the hull as "9{all caps}/1L{sentence \EQUB 0 \ case}" EQUB 10 \ 10: Drive motors: "DE{single cap}LACY SUPER CTOK 71 \ THRUST{cr} EQUS " Sup" \ {all caps}VC{sentence case}10" ETWO 'E', 'R' \ EQUS " " \ Encoded as: "[71] Sup<244> [66]{12}{all caps}V CTOK 66 \ C{sentence case}10" EJMP 12 EJMP 1 EQUS "VC" EJMP 2 EQUS "10" EQUB 0 EQUB 0
Name: worm [Show more] Type: Variable Category: Encyclopedia Summary: Ship card data for the encyclopedia entry for the Worm Deep dive: The Encyclopedia Galactica
Context: See this variable on its own page References: This variable is used as follows: * card_addr calls worm
.worm EQUB 1 \ 1: Inservice date: "3101" EQUS "3101" \ EQUB 0 \ Encoded as: "3101" EQUB 2 \ 2: Combat factor: "6" EQUS "6" \ EQUB 0 \ Encoded as: "6" EQUB 3 \ 3: Dimensions: "35/12/35FT" EQUS "35/12/35" \ CTOK 42 \ Encoded as: "35/12/35[42]" EQUB 0 EQUB 4 \ 4: Speed: "0.23{all caps}LM{sentence case}" EQUS "0.23" \ CTOK 64 \ Encoded as: "0.23[64]" EQUB 0 EQUB 5 \ 5: Crew: "1" EQUS "1" \ EQUB 0 \ Encoded as: "1" EQUB 8 \ 8: Armaments: "INGRAM PULSE LASER" CTOK 56 \ CTOK 50 \ Encoded as: "[56][50][49]" CTOK 49 EQUB 0 \EQUB 9 \ This data is commented out in the original source \EQUS "3" \ \CTOK 82 \ It would show the hull as "3{all caps}/1L{sentence \EQUB 0 \ case}" EQUB 10 \ 10: Drive motors: "SEEKLIGHT {all caps}HV{sentence CTOK 54 \ case} THRUST" CTOK 55 \ EQUS " " \ Encoded as: "[54][55] {all caps}HV{sentence EJMP 1 \ case} [66]" EQUS "HV" EJMP 2 EQUS " " CTOK 66 EQUB 0 EQUB 0
Name: install_ship [Show more] Type: Subroutine Category: Universe Summary: Install a ship blueprint into the ship blueprints lookup table
Context: See this subroutine on its own page References: This subroutine is called as follows: * BR1 (Part 1 of 2) calls install_ship * LSHIPS calls install_ship * ships_ag calls install_ship

Arguments: X The type of the ship to install, with the number being taken from the full list of available blueprints in the ship_list table, so that's: * 0 = Dodo station * 1 = Coriolis station * 2 = Escape pod ... * 35 = Iguana * 36 = Shuttle Mk II * 37 = Chameleon Y The position in which to install the ship blueprint in the ship blueprints lookup table at ship_data, so that's: * 0 = Our current ship * 1 = Missile * 2 = Space station ... * 29 = Thargoid * 30 = Thargon * 31 = Constrictor
.install_ship TXA \ Store X * 2 on the stack so we can use it below as an ASL A \ index into the ship_list table, which has 2 bytes per PHA \ entry ASL A \ Set X = X * 4, so we can use it as an index into the TAX \ ship_bytes table, which has 4 bytes per entry LDA ship_flags,Y \ Fetch the ship_flags byte for this ship position, i.e. \ the Y-th entry in the ship_flags table, where the NEWB \ flags live, so this sets A to the default NEWB flags \ for the ship position that we are filling AND #%01111111 \ Set bit 7 of the NEWB flags to that of the second byte ORA ship_bytes+1,X \ in this ship type's entry in the ship_bytes table, so \ this determines whether this ship type has an escape \ pod fitted as standard (if the second ship_byte is \ %10000000) or not (if the second ship_byte is \ %00000000) STA ship_flags,Y \ Update the Y-th entry in the ship_flags table with the \ updated bit 7, so when we spawn a ship from this \ blueprint position, it correctly spawns with or \ without an escape pod, depending on the ship type TYA \ Set Y = Y * 2, so we can use it as an index into the ASL A \ ship_data table, which has 2 bytes per entry TAY PLA \ Retrieve the value of X * 2 that we stored above, so TAX \ we can use it as an index into the ship_list table, \ which has 2 bytes per entry LDA ship_list,X \ Set the address at position Y in the ship_data table STA ship_data,Y \ to the blueprint address for ship number X in the LDA ship_list+1,X \ ship_list table (i.e. install ship number X into STA ship_data+1,Y \ position Y) RTS \ Return from the subroutine
Name: printer [Show more] Type: Subroutine Category: Text Summary: This routine is commented out in the original source
Context: See this subroutine on its own page References: No direct references to this subroutine in this source file
\.printer \ These instructions are commented out in the original \TXA \ source \PHA \LDA #&9C \JSR tube_write \JSR tube_read \PLA \TAX \RTS
Name: DOENTRYS [Show more] Type: Subroutine Category: Loader Summary: Dock at the space station, show the ship hanger and work out any mission progression
Context: See this subroutine on its own page References: This subroutine is called as follows: * Main flight loop (Part 9 of 16) calls DOENTRYS
.DOENTRYS JSR RES2 \ Reset a number of flight variables and workspaces JMP DOENTRY \ Jump to DOENTRY to dock at the space station
Name: DEATH2 [Show more] Type: Subroutine Category: Start and end Summary: Reset most of the game and restart from the title screen
Context: See this subroutine on its own page References: This subroutine is called as follows: * DEATH calls DEATH2 * DK4_FLIGHT calls DEATH2 * check_keys calls DEATH2

This routine is called following death, and when the game is quit by pressing ESCAPE when paused.
.DEATH2 JSR RES2 \ Reset a number of flight variables and workspaces \ and fall through into the entry code for the game \ to restart from the title screen JMP INBAY \ Jump to INBAY to restart the game following death
Save ELTI.bin
PRINT "ELITE I" PRINT "Assembled at ", ~CODE_I% PRINT "Ends at ", ~P% PRINT "Code size is ", ~(P% - CODE_I%) PRINT "Execute at ", ~LOAD% PRINT "Reload at ", ~LOAD_I% PRINT "S.2.ELTI ", ~CODE_I%, " ", ~P%, " ", ~LOAD%, " ", ~LOAD_I% SAVE "versions/disc/3-assembled-output/2.ELTI.bin", CODE_I%, P%, LOAD%
[X]
Table containing the number of entries in each menu