Filesystem's temporary workspace (&B0-&BF): -------------------------------------------------------------------------------- &B0-&B9 Points to the same memory positions as &C0-&C9. Used by service call &05 (Unknown interrupt), &02 (Relative Space Claim) and &06 (BRK has been executed) &BA Temporary storage for LSB pointer to parameterblock (=&F0) &BB Temporary storage for MSB pointer to parameterblock (=&F1) &BC Not used &BD Not used &BE Used by the ROM's Service call &05 Unknown Interrupt routine to store the TMS9914A's Interrupt status register 0 &BF Used by the ROM's Service call &05 Unknown Interrupt routine to store the TMS9914A's Interrupt status register 1 Filesystem's permanent workspace (&C0-&CF): -------------------------------------------------------------------------------- (&C0),0 &1900 Number of EOS bytes (&C0),1 &1901 Second EOS byte (&C0),2 &1902 First EOS byte (&C2),&F0-&FD &1910-191D MLA / MTA bit 8 is set if file handle is open bit 0-3 contain the value of the first parameter of the OSFIND call to open the file pointer (&C4),&F0-&FD &191F-192C MSA (My Secondary Address) bit 8 is set if file handle is open and a secondary address is available for this channel bit 0-3 contain the value of the second parameter of the OSFIND call to open the file pointer (&C6),0 &190B bit 0: 951B=0, 954A=0, 95DD=0, 97AE?=, 97BF?=, 98CF=1, 9918=0, 9960=0 bit 1: 951B=0, 954A=0, 95DD=0, 98E0=1 bit 2: 92A3=0, 951B=0, 954A=1, 9980?=, 99E0?=, 99FB?=, bit 3: 88B2=1, 9146=1, 951B=0, 954A=0, 9692?=, 9980?=, 981D?= bit 4: 951B=0, 954A=0, 95DD=0, 974B=1, 975B?= bit 5: 951B=0, 954A=0, 9816?=, 9A23=1 bit 6: 951B=0, 954A=0, 95DD=0, bit 7: 951B=0, 954A=0, 95DD=0, 9A04?= (&C6),1 &190C bit 0: 0=No more bytes to send/received (see 98F9/992B) 1=More bytes are available to be sent/received bit 1: is set by cmd &51, cleared by cmd &52 (check for escape during calls? 977D) bit 2: is set if the COMMAND file handle (&FF) is open bit 3: is set if the DATA file handle (&FE) is open bit 4: 910F: is cleared when an UNT (Untalk) command is issued/99BD: Check bit 4: No device talked bit 5: 90BB: is cleared when an UNL (Unlisten) command is issued/99BD: Check bit 5: No device listened bit 6: the user has supplied IEEEFS a GPIB address using an OSWORD &80 command &40 call bit 7: 9225/9231/997D: jsr 9969, 9522:=0, 954F:=1, 9969: if=0 then "Clear not executed" (&C6),2 &190D bit 0: Interrupt flag??? (977D) bit 1: Interrupt flag??? (97A4) bit 2: bit 3: is set when this controller is the active controller on the GPIB bus bit 4: DAC holdoff released ??? (8685) bit 5: bit 6: bit 7 is set if the TMS9914A is in 'Send remote enable' mode (95F4/9602) (&C6),3 &190E bit 0-6: unused (set to 0) bit 7: non-fatal error (&C8),0 &192C bit0-4: primary GPIB address of controller bit5-7: unused (set to 0) (&C8),1 &192D &00: IEEEFS is not the current filing system, and is not initialized &FF: IEEEFS is the current filing system, and is initialized (&C8),2 &192E &11: &12: &80: (&C8),3 &192F &00: &FF &0E00 ??? (Used in combination with &0F00) &0E01 ??? (Used in combination with &0E0F) &0E02 - &0E09 Unused??? &0E0A - &0E0D 32 bit value: &00000000 - number of bytes to be transferred (&0F00-&0F03) &0E0E Byte to be written/Byte read &0E0F ??? (Used in combination with &0E01) &0E10 ??? &0E11 ??? (Also used for OSWORD &03) &0E12-&0E16 &9855: OSWORD &03 parameter block &0E17-&0E1B &97D8: OSWORD &03 parameter block &0E1C &87A7 (call &44), &9277, &9843 &0E1D Temporary storage for number of bytes to be written/number of EOS bytes in routine at &985F &0E1E Unused??? &0E1F This stores the contents of the X register, so it can be restored after an OSWORD &80, OSBGET or OSBPUT call &0E20 This stores the contents of the Y register, so it can be restored after an OSWORD &80, OSBGET or OSBPUT call &0E21 This stores the contents of the A register, so it can be restored after an OSWORD &80, OSBGET or OSBPUT call &0E22 This stores the contents of the stack pointer, so it can be restored after an OSWORD &80, OSBGET or OSBPUT call &0E25-&0E26 Used at &939A to jump to command &0E27 Used by OSWORD &80 command &20-3F, &60-&7F, &A0-&BF and &E0-&FF to store XY+&00 &0E28-&0EFE Unused &0EFF &0F00 - &0F03 32 bit value: number of bytes to be transferred Procedures: -------------------------------------------------------------------------------- OSWORD &80 calls: -------------------------------------------------------------------------------- OSWORD &80 parameter block: -------------------------------------------------------------------------------- on entry: &00 &01 &02 Command &04 &05 &06 &07 &08 &09 &0A &0B &0C &0D &0E &0F &10 &11 on return: &00 &01 &02 Command &03 &82BD: Set to &00 if function is between &00 and &3F &8471: Set to &01 if pwrkspc+&04 = 0 &847D: Set to &02 if pwrkspc+&05 = 0 &8489: Set to &03 if pwrkspc+&06 = 0 &8495: Set to &04 if pwrkspc+&06 != 0 &04 &05 &06 &07 &08 &09 &0A &0B &0C &0D &0E &8D3A: Set to parameterblock+&0A + ?&B6 &0F &8D3A: Set to parameterblock+&0B + ?&B7 &10 &8D3A: Set to parameterblock+&0C + ?&B8 &11 &8D3A: Set to &00 done: 8d14-8f10