██████╗  ██████╗ ███████╗███████╗       ██╗███╗   ██╗███╗   ██╗███████╗███████╗
██╔══██╗██╔═══██╗██╔════╝██╔════╝       ██║████╗  ██║████╗  ██║██╔════╝██╔════╝
██████╔╝██║   ██║███████╗█████╗  █████╗ ██║██╔██╗ ██║██╔██╗ ██║█████╗  ███████╗
██╔══██╗██║   ██║╚════██║██╔══╝  ╚════╝ ██║██║╚██╗██║██║╚██╗██║██╔══╝  ╚════██║
██║  ██║╚██████╔╝███████║███████╗       ██║██║ ╚████║██║ ╚████║███████╗███████║
╚═╝  ╚═╝ ╚═════╝ ╚══════╝╚══════╝       ╚═╝╚═╝  ╚═══╝╚═╝  ╚═══╝╚══════╝╚══════╝
A U C T I O N S  ·  V E N D U E  R O L L  S Y S T E M
REFERENCE MANUAL — covering the system in service since 1992
and its faithful PWA re-implementation. Every behaviour described herein was
verified against the running original.  East London, South Africa.
CHAPTER 1  ·  INTRODUCTION

This system runs an auction house. It keeps three master files — sellers, buyers and the vendue roll — and two history files, sales and purchases. During an auction, every lot that goes under the hammer is entered onto the vendue roll: which seller brought it, what it was, which buyer took it, and for how much. After the auction the system prints each buyer an invoice and each seller a statement, collects money in both directions, and finally archives the whole event into the history files, wiping the slate for the next auction.

The word vendue is an old term for a public auction sale. The vendue roll is the paged ledger of everything sold — the beating heart of the system. Everything else exists to feed it or settle it.

WHO OWES WHAT — the two directions of money

Buyers owe the auction house for what they bought. Their paperwork is an invoice; their payments are receipts.

The auction house owes sellers for what was sold on their behalf, minus commission and costs. Their paperwork is a statement; their payments are cheques.
CHAPTER 2  ·  THE AUCTION CYCLE

The system is built around a strict cycle. Understanding it explains almost every screen:

   ┌──────────────┐     ┌──────────────┐     ┌──────────────────┐
   │ 1. ENTER     │     │ 2. ENTER     │     │ 3. ENTER THE     │
   │    SELLERS   ├────►│    BUYERS    ├────►│    VENDUE ROLL   │
   └──────────────┘     └──────────────┘     └────────┬─────────┘
                                                      │
                    ┌─────────────────────────────────┘
                    ▼
   ┌──────────────────────────┐      ┌───────────────────────────┐
   │ 4. PRINT EVERY BUYER'S   │      │ 5. PRINT EVERY SELLER'S   │
   │    INVOICE               ├─────►│    STATEMENT              │
   └──────────────────────────┘      └────────────┬──────────────┘
                                                  │
                    ┌─────────────────────────────┘
                    ▼
   ┌──────────────────────────┐      ┌───────────────────────────┐
   │ 6. CONTROL CHECK         │      │ 7. UPDATE ANALYSIS        │
   │    (do the books         ├─────►│    archive + wipe for     │
   │     balance?)            │      │    the next auction       │
   └──────────────────────────┘      └───────────────────────────┘
                    then, at any time afterwards:
        RECEIPTS from buyers  ·  CHEQUES to sellers  ·  REPORTS

Two flags drive the cycle's safety interlocks:

PRINTED — every seller and buyer record carries a printed flag. Printing an account sets it; editing anything afterwards clears it again, forcing a reprint. The UPDATE run (chapter 12) refuses to archive while anyone is unprinted. This guarantees no account is ever archived without paperwork having been produced from its final figures.

PERMANENT — sellers and buyers marked permanent survive the end-of-auction wipe; the rest are cleared out. In practice the house keeps all regular buyers permanent, so the buyer book carries over from auction to auction.

CHAPTER 3  ·  KEYBOARD & SCREEN CONVENTIONS

The system is keyboard-only. Every screen is 80 columns by 25 rows. Entry fields show as  highlighted blocks ; the blinking cursor sits in the active field.

Inside any entry form

KeyAction
EnterAccept the field and move to the next one. Every field needs Enter — even a full field waits for it. The last field's Enter completes the form.
/ Next / previous field, keeping what you typed.
Tab / Shift-TabSame as ↓ / ↑.
Ctrl-WSave everything and finish the form at once — no need to Enter through remaining fields. The power user's best friend.
Ctrl-Home / Ctrl-EndJump to the first / last field of the form.
Ctrl-YDelete from the cursor to the end of the field.
InsToggle insert mode. The cursor becomes a block and a small Ins indicator appears at the top of the screen. Sticky — stays on until pressed again.
BackspaceDelete the character to the left (the rest shifts left).
EscNothing. Forms cannot be abandoned — this system predates the idea. You leave a form by completing it (enter 0 in a reference field, or answer N to the "another?" question).

Inside any browse (full-screen table)

KeyAction
PgUp PgDn Home EndMove through records.
Pan across columns too wide for the screen.
EscLeave the browse. (Here it does work.)

The scoreboard

The top right of the screen (row 0) is the scoreboard. It shows Ins while insert mode is on, and complaints such as Invalid date (the date field blanks and waits for a proper one) or RANGE is 0 to 255 (the number you typed is outside the allowed range — fix it before you may leave the field).

Yes/No questions

Questions like DO YOU WANT TO ADD? show a highlighted Y or N. Type Y or N then Enter, or just Enter to accept what is shown. Take note of the default — it is usually Y for "carry on" questions and N for dangerous ones.

CHAPTER 4  ·  THE MAIN MENU
 ╔══════════════════════════════════════════════════════════════════════════════╗
 ║                            M A I N M E N U                                   ║
 ╠══════════════════════════════════════════════════════════════════════════════╣
                              1. ENTER SELLERS
                              2. ENTER BUYERS
                              3. ENTER VENDUE ROLL
                              4. PRINT BUYERS A/C
                              5. PRINT SELLERS A/C
                              6. DISPLAY DETAILS ON SCREEN
                              7. ENTER CHEQUES
                              8. ENTER RECEIPTS
                              9. SYSTEM MAINTENANCE AND REPORTS

                              0. EXIT
 ║                                select  0                                     ║
 ╚══════════════════════════════════════════════════════════════════════════════╝

Type the option number and Enter. Option 0 backs out of any menu; at the main menu it closes the system. The menu order mirrors the auction cycle — on auction day you will walk it nearly top to bottom.

CHAPTER 5  ·  SELLERS  (menu 1)

A seller is anyone whose goods the house auctions. Each has a reference number from 1 to 999. The seller record carries their contact details, banking details, an inventory of goods received, and — most importantly — their commission code and advertising code, which decide what the house deducts from their proceeds (see Appendix A).

1 · Amend sellers — adding and editing

The screen suggests the next free reference number. Accept it with Enter to add a new seller, or type an existing number to edit that seller. An unknown number asks SELLER NOT ON FILE — DO YOU WANT TO ADD?

 ╔══════════════════════════════════════════════════════════════════════════════╗
 ║                            SELLERS DETAILS                                   ║
 ╠══════════════════════════════════════════════════════════════════════════════╣
 ║ REF.         82    DATE 18/08/2026    NAME    TEST SELLER VAT               ║
 ║ ADDRESS1    1 TEST ROAD                     VAT REG.    4123456789           ║
 ║                                             PERMANENT   N                     ║
 ║                                             TEL.                              ║
 ║                                                                              ║
 ║ CARTAGE          50.00                      COMM.       A                     ║
 ║ MISC.            10.00                      ADV.        A                     ║
 ║ BANK                              ACOUNT.                                    ║
 ║ BRANCH                                                                       ║
 ║ ITEMS :  HOUSEHOLD GOODS                                                     ║
 ╚══════════════════════════════════════════════════════════════════════════════╝

Field notes, in entry order:

FieldMeaning
DATEDate the goods were delivered. Defaults to today.
VAT REG.The VAT switch. If this is filled in, every one of this seller's lots gets 15% VAT added on top of the hammer price. Leave it blank for private (non-VAT) sellers. The house convention for "registered but number unknown" is 99999999999.
PERMANENTY = survives the end-of-auction wipe.
CARTAGE / MISC.Fixed rand amounts deducted from this seller's proceeds (transport, sundries). These survive the UPDATE wipe and carry into the next auction as defaults.
COMM. / ADV.One-letter deduction codes — the money rules. See Appendix A.
ITEMSFourteen free-text lines describing the goods received.

After the form, the system offers to print the goods-received document — a full page for the seller to sign, listing their goods and the house conditions ("reserve" items, 14-day collection, etc.).

Editing a seller clears their PRINTED flag: their statement must be reprinted before the next UPDATE run will proceed. This is deliberate.

2 · Delete sellers

Shows the seller read-only and asks for confirmation. Deleted records vanish from every screen immediately, and are physically removed at the next re-index (chapter 11).

CHAPTER 6  ·  BUYERS  (menu 2)

A buyer is anyone bidding at the auction. The record is small: reference number, name, address, telephone, and the permanent flag. Money fields (amount owed, received, balance) are filled in by the system, never by hand.

 ╔══════════════════════════════════════════════════════════════════════════════╗
 ║                            BUYERS DEATILS                                    ║
 ╠══════════════════════════════════════════════════════════════════════════════╣
 ║                     BUYER CODE     199                                       ║
 ║                     NAME           TEST BUYER ONE                            ║
 ║                     ADDRESS        9 BUYER LANE                              ║
 ║                                                                              ║
 ║                     TELEPHONE                                                ║
 ║                     PERMANENT      N                                         ║
 ╚══════════════════════════════════════════════════════════════════════════════╝

(Yes, the title really says DEATILS. It has said so since 1992 and it is preserved on purpose — see Appendix C.)

The suggested "next" buyer code is unreliable — it wraps back to 1 once numbers pass 99, and the house's numbers run higher. Ignore the suggestion and type the code you want. Numbers up to 999 work fine.

CHAPTER 7  ·  THE VENDUE ROLL  (menu 3)

This is auction day's screen. The roll is organised as numbered pages, each holding up to 19 lines — mirroring the paper sheets used at the podium. Each line is one lot sold.

1 · Add to vendue

 DATE  18/08/2026   PAGE    1
 ╔══════════════════════════════════════════════════════════════════════════════╗
 ║ SELL   DESCRIPTION                   BUY      PRICE          VAT        TOTAL ║
 ╠══════════════════════════════════════════════════════════════════════════════╣
 ║  8V OAK TABLE                      199      333.33       50.00      383.33 ║
 ║  83 TOOL SET                       199       50.00        0.00       50.00 ║
 ║                                                                              ║
 ╚══════════════════════════════════════════════════════════════════════════════╝
 ENTER ANOTHER ITEM? Y                      383.33       50.00      433.33

The rhythm per lot: seller ref Enterdescription Enterbuyer ref Enterprice EnterENTER ANOTHER ITEM? The bottom row keeps running totals for the page.

The system validates as you go: an unknown seller ref stops with SELLER NOT ON FILE!!! and an unknown buyer with BUYER NOT ON FILE!!! (press any key, then re-enter the line). VAT is computed automatically the moment the price is entered — if and only if the seller has a VAT registration — and a V marker appears beside the seller number on VAT lines.

When a page fills (line 22 of the screen), answer ENTER ANOTHER PAGE? and continue on the next page number.

2 · Edit existing entries

Walks an existing page line by line. For each line: seller ref Enter, description Enter, buyer Enter, price Enter — press Enter through a line to leave it unchanged, or overtype to correct it. VAT is recalculated from the (possibly new) seller's registration on every pass. Enter 0 as the seller ref to stop early.

Three things to know about the edit screen: (1) The date at the top restamps the entire roll — every line on every page takes the date you accept there. (2) Changing which seller a line belongs to silently clears the old seller's PRINTED flag — both statements will need reprinting. Correct, and automatic. (3) There is no way to delete a single line — set its price to 0.00 instead, or correct the line to what it should be.

CHAPTER 8  ·  PRINTING ACCOUNTS  (menus 4 & 5)

Both printing screens ask for a range of reference numbers (default: everyone) and SEND OUTPUT TO PRINTER? — answer Y to print, or N to write the output to a file (XXX.PRN) instead. Printing is not just paperwork: it computes and locks in the money.

Menu 4 · Buyers' invoices

One invoice per buyer who bought anything. Lots are split into VENDOR (VAT lines) and NON-VENDOR columns, VAT is totalled, and the grand total is written onto the buyer's record as the amount they owe. Buyers with no purchases are quietly marked printed with nothing produced.

          ROSE-INNES AUCTIONS
     Reg. No. 2004/073930/23   VAT No. 4640156982
       TAX INVOICE, 26 MAGNOLIA ROAD, BRAELYN, EAST LONDON

DATE       19/08/2026

REF NO.    199                       NAME         TEST BUYER ONE
                                     ADDRESS      9 BUYER LANE

SELL   DESCRIPTION                          VAT          VENDOR      NON-VENDOR
===============================================================================
 82    OAK TABLE                          50.00          333.33
 83    TOOL SET                            0.00                           50.00
 82    CHAIR                              18.52          123.45
                                         ======================================
                                          68.52          456.78           50.00

                                         NON-VENDOR                      50.00
                                         VENDOR                         456.78
                                         VAT                             68.52
                                                                     ==========
                                                                        575.30

Menu 5 · Sellers' statements

One statement per seller who sold anything. The system totals their lots, then applies the deductions in this order: it computes commission from the commission code, advertising from the advertising code, and subtracts both plus the fixed miscellaneous and cartage amounts:

THE SELLER'S PAYOUT

NETT = GROSS + VAT − MISC − COMMISSION − ADVERTISING − CARTAGE

Worked example (verified): gross 456.78, VAT 68.52, comm code A → 94.55, adv code A → 26.26, misc 10.00, cartage 50.00 → NETT 344.49.

Codes E (commission) and B (advertising) are "manual": the printing run pauses, shows that seller's figures on screen, and asks you to type the amount. See Appendix A for the full code table.

Print buyers (menu 4) before sellers (menu 5) — the cycle expects it, and the UPDATE run checks buyers first.

CHAPTER 9  ·  DISPLAYS & THE CONTROL CHECK  (menu 6)

Menu 6 is the read-only wing: browses over every file (options 2–6), a drill-down (option 1) showing one buyer's purchases with totals — from which you can jump straight to printing their invoice or taking their receipt — and the control check (option 7):

 ╔══════════════════════════════════════════════════════════════════════════════╗
 ║                         C O N T R O L    C H E C K                           ║
 ╠══════════════════════════════════════════════════════════════════════════════╣
 ║                               GROSS        VAT         TOTAL                 ║
 ║          VENDUE ROLL         506.78       68.52      575.30                 ║
 ║                                                                              ║
 ║          BUYERS                                        575.30                 ║
 ║                                                                              ║
 ║          SELLERS             506.78       68.52      575.30                 ║
 ║                                     - MISCELLANEOUS     10.00                 ║
 ║                                     - COMMISSION       100.30                 ║
 ║                                     - ADVERTISING       26.26                 ║
 ║                                     - CARTAGE           50.00                 ║
 ║                                       TOTAL            388.74                 ║
 ║                                       NETT             388.74                 ║
 ╚══════════════════════════════════════════════════════════════════════════════╝

Three independent tallies of the same auction — the roll itself, what buyers owe, what sellers grossed — must agree, and the two bottom figures must equal each other. If they do, the books balance. If not, something was mis-entered; find it before running UPDATE. (The UPDATE run shows you this same screen and asks Is the control correct?)

CHAPTER 10  ·  CHEQUES & RECEIPTS  (menus 7 & 8)

Menu 8 · Receipts — money in from buyers

First question: Enter receipts for current vendue roll? Y means the buyer is paying for the auction just entered (before UPDATE) — you give the buyer's ref. N means paying for a past, archived auction — you give the date of that sale plus the ref. Then enter the receipt number and the amount paid. The system accumulates: RECEIVED grows, and BALANCE = AMOUNT − RECEIVED. Part-payments are normal; pay in as many receipts as needed.

Menu 7 · Cheques — money out to sellers

Cheques always work against archived auctions (after UPDATE): give the date of the sale and the seller's ref, and the statement figures appear. Enter the cheque number and amount paid; BALANCE = NETT − PAID.

The system allows overpayment without complaint — pay a seller 400.01 against a 344.49 statement and the balance simply shows −55.52. Watch the sign.

CHAPTER 11  ·  SYSTEM MAINTENANCE  (menu 9)
OptionWhat it does
1 · COMPANY DETAILSThe letterhead and settings: name, addresses, registration and VAT numbers, phone/fax, printer control codes, and the VAT rate (0.15). These print on every document. (Note: the first address line doubles as the document heading — it currently reads "TAX INVOICE" on purpose.)
2 · INDEX FILESHousekeeping: physically removes deleted records and rebuilds all indexes. Run it if anything ever looks out of order. Harmless.
3/4 · MASTER LISTINGSPrints the full seller / buyer address books.
5/6 · ANALYSIS REPORTSPrints archived purchases (sellers' side) or sales (buyers' side) for a date range — including outstanding balances. This is where you chase debtors: run the sales analysis and look at the OUTSTANDING column.
7 · CLEAR ANALYSISPermanently deletes archived history up to a date you give. Only ever run this after a backup. The current file holds history back to 2009 — there is no reason to run this in normal use.
8 · UPDATE ANALYSISThe end-of-auction run. Big enough for its own chapter →
CHAPTER 12  ·  THE UPDATE RUN  (menu 9 · 8)

UPDATE closes an auction. It is the one truly irreversible action in daily use, and the system guards it accordingly. What it does, in order:

1Checks every buyer and seller is printed. If anyone is not, it refuses: "Buyer NN has not been printed — The sales analysis cannot be updated!!!" Fix by printing everyone (menus 4 and 5, full range) and rerun.
2Shows the control check and asks Is the control correct? Answer honestly — N aborts safely.
3Re-indexes all files.
4Archives buyers → SALES: every buyer with an amount owing gets a history record (amount, receipts so far, balance).
5Archives sellers → PURCHASES: every seller with a nett payout gets a history record (gross, VAT, all deductions, nett).
6Wipes the vendue roll completely.
7Resets buyers: amounts, receipts and balances to zero; buyers not marked PERMANENT are deleted entirely.
8Resets sellers: gross, VAT, commission, advertising and nett to zero — but MISC and CARTAGE are kept as next-auction defaults. Sellers are never deleted by UPDATE.

After UPDATE, the current auction lives only in the history files — which is exactly where receipts (non-current) and cheques then find it.

CHAPTER 13  ·  TUTORIAL — A COMPLETE PRACTICE AUCTION

The best way to understand the system is to run one tiny auction end to end. This walkthrough takes about fifteen minutes. If you are using the PWA, open it with ?reset on the address to start from a fresh copy of the data — nothing you do here can hurt anything. Every figure below is what the system will actually show.

Step 1 — two sellers

1.1Main menu 11 (amend sellers). Accept the suggested ref (82 on fresh data) with Enter, answer Y to add.
1.2Enter through DATE. Name: TEST SELLER VAT. Address: 1 TEST ROAD. VAT REG: 4123456789 (this makes their lots attract VAT). Permanent N. Cartage 50, Misc 10. COMM code A, ADV code A. First items line: HOUSEHOLD GOODS. Ctrl-W to finish. Decline the print, answer Y to another.
1.3Add seller 83: name TEST SELLER NOVAT, leave VAT REG blank, COMM code C, no adv code, no cartage/misc. Ctrl-W, no print, N to another, 0 back to the main menu.

Step 2 — a buyer

2.121. Type ref 199 (ignore the suggestion), Y to add. Name TEST BUYER ONE, address 9 BUYER LANE, permanent N. Finish, N, 0.

Step 3 — the auction itself

3.131 (add to vendue). Accept date and page 1.
3.2Lot 1: seller 82, description OAK TABLE, buyer 199, price 333.33. Watch: VAT appears as 50.00 and a V marker flags the line. Y for another.
3.3Lot 2: seller 83, TOOL SET, buyer 199, price 50. VAT stays 0.00 — seller 83 has no VAT number. Y again.
3.4Lot 3: seller 82, CHAIR, buyer 199, price 123.45 → VAT 18.52. Answer N, then 0 out. The totals row read 506.78 · 68.52 · 575.30.

Step 4 — paperwork

4.14: invoices from buyer 199 to 199, printer Y (or N for a file). The invoice splits VENDOR 456.78 / NON-VENDOR 50.00 / VAT 68.52 → total 575.30, now owed by buyer 199.
4.25: statements from seller 82 to 83. Seller 82's statement shows commission 94.55, advertising 26.26, and a payout (NETT) of 344.49. Seller 83: commission 5.75, payout 44.25.

Step 5 — some money arrives

5.18, current roll Y, buyer 199, receipt no R1, amount 250.50 → balance 324.80.

Step 6 — check and close the auction

6.167: the control check. All three totals agree at 575.30. Any key, 0.
6.298, Y. It refuses — "Buyer  0 has not been printed" — because the other buyers on file were never printed this auction. This is the interlock doing its job.
6.3Print everyone: 4 with range 0–999 to file (N), then 5 likewise. Now 98Y → control check → any key → Y. Watch the progress lines run. The auction is archived; the roll is empty.

Step 7 — settle up afterwards

7.17 (cheques): today's date, seller 82. The archived statement appears. Cheque C77, paid 400.01 → balance −55.52. (An overpayment — the system permits it. Note the minus.)
7.28 (receipts), current roll N — the sale is archived now. Today's date, buyer 199, receipt R2, amount 99.99 → received 350.49, balance 224.81.

You have now touched every part of the system that matters. Reset the data and run it again until the rhythm feels automatic — then you understand the software.

APPENDIX A  ·  FORMULAS & CODES (all verified to the cent)

VAT

VAT per lot = PRICE × 0.15 — only if the seller's VAT REG field is non-blank. TOTAL = PRICE + VAT. The rate lives in company details.

Commission codes (deducted from the seller)

CodeRateFormulaOn gross 456.78
A18%gross × 0.18 × 1.1594.55
B12.5%gross × 0.125 × 1.1565.66
C10%gross × 0.10 × 1.1552.53
D6%gross × 0.06 × 1.1531.52
Emanualtyped during the statement run

The × 1.15 makes every commission VAT-inclusive — the statement says so at the bottom: (All above inclusive of vat).

Advertising codes

CodeFormula
Agross × 0.05 × 1.15
Btyped during the statement run, then × 1.15 applied
(blank)no advertising charge

Balances

Buyer: BALANCE = AMOUNT − RECEIVED (receipts accumulate).
Seller: BALANCE = NETT − PAID. Negative = overpaid.
APPENDIX B  ·  DATA FILES
FileContentsLifecycle
SELLERSeller book: details, codes, goods inventory, current-auction money Kept forever; money fields wiped by UPDATE (misc/cartage kept)
BUYERBuyer book: details, current-auction amount/receipts Permanent buyers kept, others deleted by UPDATE
VENDUEThe current roll: one record per lot (page, line, seller, desc, buyer, price, VAT) Wiped completely by UPDATE
SALESHistory of every buyer invoice ever archived (31,000+ records back to the 1990s) Grows at each UPDATE; receipts against old sales update it
PURCHASEHistory of every seller statement archived Grows at each UPDATE; cheques update it
DETAILSCompany letterhead, registration numbers, printer codes, VAT rate Edited via menu 9 · 1
APPENDIX C  ·  QUIRKS & ODDITIES (preserved on purpose)

The re-implementation reproduces the original exactly — including its warts. Knowing them saves confusion:

QuirkDetail
"BUYERS DEATILS"The buyer screen title has carried this typo since 1992.
Buyer ref suggestionWraps at 99 and suggests numbers already in use. Type your own.
"ACOUNT." labelThe seller banking section misspells ACCOUNT.
V marker collisionOn the vendue screen the V flag overwrites part of a 2-digit seller ref's display (e.g. "8V" for seller 82). The stored data is correct.
UPDATE refusal messageShows refs over 99 mangled ("Buyer  0" or "**") — the message truncates to two digits. The check itself is correct.
Receipt screen labelsA label paints over another; the visible result is correct.
Date order in browsesHistory browses order dates as text, day-first — so 12/05/2009 is followed by 12/05/2017. Use the date prompt to jump; scrolling order looks odd but is faithful.
No line delete on the rollEdit the line or zero its price instead.
Esc does nothing in formsBy design (the original disabled it). 0 or N exits.
APPENDIX D  ·  QUICK REFERENCE CARD
 ╔═══════════════════ FORM KEYS ═══════════════════╗  ╔═══════ BROWSE KEYS ═══════╗
 ║ Enter      accept field / next                  ║  ║ ↑ ↓ PgUp PgDn Home End    ║
 ║ ↑ ↓        previous / next field                ║  ║        move               ║
 ║ Ctrl-W     SAVE ALL and finish form             ║  ║ ← →    pan columns        ║
 ║ Ctrl-Home  first field    Ctrl-End  last field  ║  ║ Esc    leave browse       ║
 ║ Ctrl-Y     delete to end of field               ║  ╚═══════════════════════════╝
 ║ Ins        insert mode (block cursor, "Ins")    ║
 ║ Esc        (nothing — use 0 / N to exit)        ║
 ╚═════════════════════════════════════════════════╝

 AUCTION DAY, IN ORDER:   1 sellers → 2 buyers → 3 roll → 4 print buyers →
   5 print sellers → 6·7 control check → 9·8 UPDATE → 7 cheques / 8 receipts

 GOLDEN RULES
 · VAT follows the SELLER's VAT REG field, nothing else.
 · Editing anyone after printing = reprint before UPDATE will run.
 · UPDATE only with a balanced control check. It cannot be undone.
 · MISC and CARTAGE on a seller carry over to the next auction — check them.