;:ts=8
	far	code
	far	data
;//  TT8 specific includes
;#include        <TT8.h>                 /* Tattletale Model 8 Definitions */
;#include        <tat332.h>              /* 68332 Tattletale (7,8) Hardware Definitions */
;#include        <sim332.h>              /* 68332 System Integration Module Definitions */
;#include        <qsm332.h>              /* 68332 Queued Serial Module Definitions */
;#include        <tpu332.h>              /* 68332 Time Processing Unit Definitions */
;#include        <dio332.h>              /* 68332 Digital I/O Port Pin Definitions */
;#include        <tt8pic.h>              /* Model 8 PIC Parallel Slave Port Definitions */
;#include        <tt8lib.h>              /* definitions and prototypes for Model 8 library */
;
;//  general C includes
;#include        <stdio.h>
;#include        <stdlib.h>
;
;//  includes for the data logger
;#include		"assert.h"
;#include		"lpsleep.h"
;
;//  includes for the disk routines
;#include		<pcdisk.h>
;
;void low_power_setup_IRQ1 (void);
;void low_power_IRQ1_handler (void);
;
;//  start_lp_sleep ()
;//
;//  Enters the low power sleep mode.  Only wakeup is on a keystroke
;//  from COM1
;//
;void low_power_start_sleep (void)  {
# 30 'lpsleep.c' 659244557
| .2
	xdef	_low_power_start_sleep
_low_power_start_sleep:
;	printf ("Entering low power mode.\n");
^	pea	.1+0
	jsr	_printf
;	StopWatchStart ();
^	jsr	_StopWatchStart
;	while (StopWatchTime () < 100000L)
^	add.w	#4,sp
.10001
	jsr	_StopWatchTime
	cmp.l	#100000,d0
	bcc	.10002
;		{;}
^	bra	.10001
.10002
;
;	//  make sure to turn off the power supplies.  Set all SPI interface
;	//  pins to 0 so that we don't accidentally power external chips through
;	//  these outputs.
;//	prep_pins_low_power ();
;
;	//  The disks should all be off, but make sure just in case
;	disk_power_off ("A:");
^^^^^^^^	pea	.1+26
	jsr	_disk_power_off
;	disk_power_off ("B:");
^	pea	.1+29
	jsr	_disk_power_off
;	disk_power_off ("C:");
^	pea	.1+32
	jsr	_disk_power_off
;	disk_power_off ("D:");
^	pea	.1+35
	jsr	_disk_power_off
;		
;	//  install the handler for IRQ1
;	low_power_setup_IRQ1 ();
^^^	jsr	_low_power_setup_IRQ1
;	SerShutDown (1, 1);
^	move.w	#1,-(sp)
	move.w	#1,-(sp)
	jsr	_SerShutDown
;	
;	//  Accept IRQ1 interrupts, which are tied to the Rxd line
;	PConfBus(F,1);
^^^;			PConfBusF1
	dc.w	$8f8
	dc.w	$1
	dc.w	$fa1f
;
;	//  Low voltage regulator not used; conflict with +5 IDE
;//	VRegSelect(v3);
;//	LMDelay (32766);
;
;	//  stop here until interrupt from RS232
;    while (SerByteAvail () == 0)
^^^^^^^	lea	20(sp),sp
.10003
	jsr	_SerByteAvail
	tst.w	d0
	bne	.10004
;		Stop (0x2000);
^	move.w	#8192,-(sp)
	jsr	_Stop
	add.w	#2,sp
	bra	.10003
.10004
;
;	//  restarted - must have got an IRQ1 interrupt
;	SerActivate ();
^^^	jsr	_SerActivate
;	printf ("\n\nExiting low power mode\n");
^	pea	.1+38
	jsr	_printf
;	
;//	VRegSelect(v5);			/* return to 5 volt operation */
;//	LMDelay (32766);
;
;//	PicAckCmpAlrm();		/* turn off interrupt (ack) */
;}
^^^^^^	add.w	#4,sp
.3
	rts
.2
.1
	dc.b	69,110,116,101,114,105,110,103,32,108,111,119,32,112,111
	dc.b	119,101,114,32,109,111,100,101,46,10,0,65,58,0,66
	dc.b	58,0,67,58,0,68,58,0,10,10,69,120,105,116,105
	dc.b	110,103,32,108,111,119,32,112,111,119,101,114,32,109,111
	dc.b	100,101,10,0
	ds	0
;
;
;
;
;
;//  low_power_setup_IRQ1
;//
;//  Code to install a handler for IRQ1.  This allows us to enter the low
;//  power sleep mode while we wait for the user to give us a keyboard
;//  hit.
;void low_power_setup_IRQ1 (void)  {
# 81
| .5
	xdef	_low_power_setup_IRQ1
_low_power_setup_IRQ1:
;	static ExcCFrame efp1;
	bss	.10005,20
;
;	//  disallow interrupts while we install the handler
;	PConfInp(F,1);
~ ''
~ 1 4 20
~ preamble 0 "[4I"
~ jump 8 "I"
~ target 10 "L"
~ postamble 14 "[3I"
~ efp1 .10005 ":" 1
^^^^;			PConfInpF1
	dc.w	$8b8
	dc.w	$1
	dc.w	$fa1f
	dc.w	$8b8
	dc.w	$1
	dc.w	$fa1d
;
;	//  interrupts should only be turned on just before entering
;	//  the low power sleep mode so that we don't waste time
;	//  everytime a keystroke is received
;
;	InstallHandler(low_power_IRQ1_handler, Level_1_Interrupt, &efp1);
^^^^^^	pea	.10005
	move.w	#25,-(sp)
	pea	_low_power_IRQ1_handler
	jsr	_InstallHandler
;}
^	lea	10(sp),sp
.6
	rts
.5
;
;
;
;
;//  low_power_IRQ1_handler
;//
;//  Catch the interrupt which wakes us up.  Don't need to do anything
;//  with it.
;//
;void low_power_IRQ1_handler (void)  {
# 102
| .7
	xdef	_low_power_IRQ1_handler
_low_power_IRQ1_handler:
;	//  disallow further interrupts.
;	PConfInp(F,1);
^^;			PConfInpF1
	dc.w	$8b8
	dc.w	$1
	dc.w	$fa1f
	dc.w	$8b8
	dc.w	$1
	dc.w	$fa1d
;}
^.8
	rts
.7
;
;
;
;/*******************************************************************************
;**      prep_pins_low_power
;**      
;**      This routine  sets up the port and tpu lines for a stock
;**      Model 8 to force possible floating I/O pins (possible source of extra
;**      current drain in CMOS circuits) to outputs.  The technique used samples
;**      each of the I/O lines as inputs, then configures and writes the sampled
;**      value back as outputs.  For this example code, we use a brute force pin-
;**      by-pin approach which allows for ease of modification.  Real applications
;**      can save quite a bit of code by condensing the pin operations to byte
;**      wide configuration of the various ports and putting the tpu settings
;**      into a loop.
;*******************************************************************************/
;void prep_pins_low_power(void)  {
# 122
| .9
	xdef	_prep_pins_low_power
_prep_pins_low_power:
;	
;	//  The Port D lines used by the QSPI and the Port 1 Com port.  They
;	//  are configured elsewhere
;
;	//  68332 PORT E pins are available as either BUS signals or general I/O
;	PInpToOut(E,0);		//	E0 -> unused connection to MS system
^^^^^^;			PInpToOutE0
	dc.w	$8b8
	dc.w	$0
	dc.w	$fa17
	dc.w	$8b8
	dc.w	$0
	dc.w	$fa15
	dc.w	$11f8
	dc.w	$fa11
	dc.w	$fa11
	dc.w	$8f8
	dc.w	$0
	dc.w	$fa15
;	PInpToOut(E,1);     //	E1 -> unused connection to MS system
^;			PInpToOutE1
	dc.w	$8b8
	dc.w	$1
	dc.w	$fa17
	dc.w	$8b8
	dc.w	$1
	dc.w	$fa15
	dc.w	$11f8
	dc.w	$fa11
	dc.w	$fa11
	dc.w	$8f8
	dc.w	$1
	dc.w	$fa15
;	PInpToOut(E,2);		//	E2 -> unused connection to MS system
^;			PInpToOutE2
	dc.w	$8b8
	dc.w	$2
	dc.w	$fa17
	dc.w	$8b8
	dc.w	$2
	dc.w	$fa15
	dc.w	$11f8
	dc.w	$fa11
	dc.w	$fa11
	dc.w	$8f8
	dc.w	$2
	dc.w	$fa15
;	//  Pin 4 will be re-configured by the IDE init software.
;	//  Do not call this routine AFTER the IDE init software.
;	PInpToOut(E,4);		//	E4 -> DS bus signal; connected to MS system
^^^;			PInpToOutE4
	dc.w	$8b8
	dc.w	$4
	dc.w	$fa17
	dc.w	$8b8
	dc.w	$4
	dc.w	$fa15
	dc.w	$11f8
	dc.w	$fa11
	dc.w	$fa11
	dc.w	$8f8
	dc.w	$4
	dc.w	$fa15
;	
;	//  Pins 3, 5, 6, 7 will be reconfigured by the ADC software.
;	//  Do not call this routine AFTER the ADC init software
;	PInpToOut(E,3);		//	E3 -> Output to ADC board controls CH1 gain
^^^^;			PInpToOutE3
	dc.w	$8b8
	dc.w	$3
	dc.w	$fa17
	dc.w	$8b8
	dc.w	$3
	dc.w	$fa15
	dc.w	$11f8
	dc.w	$fa11
	dc.w	$fa11
	dc.w	$8f8
	dc.w	$3
	dc.w	$fa15
;	PInpToOut(E,5);		//	E5 -> Output to ADC board controls Ch2 gain
^;			PInpToOutE5
	dc.w	$8b8
	dc.w	$5
	dc.w	$fa17
	dc.w	$8b8
	dc.w	$5
	dc.w	$fa15
	dc.w	$11f8
	dc.w	$fa11
	dc.w	$fa11
	dc.w	$8f8
	dc.w	$5
	dc.w	$fa15
;	PInpToOut(E,6);		//	E6 -> Output to ADC board controls Ch3 gain
^;			PInpToOutE6
	dc.w	$8b8
	dc.w	$6
	dc.w	$fa17
	dc.w	$8b8
	dc.w	$6
	dc.w	$fa15
	dc.w	$11f8
	dc.w	$fa11
	dc.w	$fa11
	dc.w	$8f8
	dc.w	$6
	dc.w	$fa15
;	PInpToOut(E,7);		//	E7 -> Output to ADC board controls Ch4 gain
^;			PInpToOutE7
	dc.w	$8b8
	dc.w	$7
	dc.w	$fa17
	dc.w	$8b8
	dc.w	$7
	dc.w	$fa15
	dc.w	$11f8
	dc.w	$fa11
	dc.w	$fa11
	dc.w	$8f8
	dc.w	$7
	dc.w	$fa15
;
;	//  68332 PORT F pins are available as either IRQ's or general I/O
;	PConfInp(F,0);      //  sel5vpic (has pullup)
^^^;			PConfInpF0
	dc.w	$8b8
	dc.w	$0
	dc.w	$fa1f
	dc.w	$8b8
	dc.w	$0
	dc.w	$fa1d
;	PConfInp(F,1);      //  IRQ1/Rxd1
^;			PConfInpF1
	dc.w	$8b8
	dc.w	$1
	dc.w	$fa1f
	dc.w	$8b8
	dc.w	$1
	dc.w	$fa1d
;	PInpToOut(F,2);     //  Connected to MS system; unused disk IRQ
^;			PInpToOutF2
	dc.w	$8b8
	dc.w	$2
	dc.w	$fa1f
	dc.w	$8b8
	dc.w	$2
	dc.w	$fa1d
	dc.w	$11f8
	dc.w	$fa19
	dc.w	$fa19
	dc.w	$8f8
	dc.w	$2
	dc.w	$fa1d
;	PConfInp(F,3);      //  IRQ3/led (has pullup)
^;			PConfInpF3
	dc.w	$8b8
	dc.w	$3
	dc.w	$fa1f
	dc.w	$8b8
	dc.w	$3
	dc.w	$fa1d
;	
;	//  Pin F4 is used as a Data Ready interrupt from the AD7716 chip.
;	//  It is reconfigured by the ADC software.  Do not call this routine
;	//  AFTER the ADC init software
;	PConfInp(F,4);      //  Connected to Data Ready on the 7716 chip
^^^^^;			PConfInpF4
	dc.w	$8b8
	dc.w	$4
	dc.w	$fa1f
	dc.w	$8b8
	dc.w	$4
	dc.w	$fa1d
;	PConfInp(F,5);      //  picirq (PIC asserts)
^;			PConfInpF5
	dc.w	$8b8
	dc.w	$5
	dc.w	$fa1f
	dc.w	$8b8
	dc.w	$5
	dc.w	$fa1d
;	PConfInp(F,6);      //  connected to TP15;
^;			PConfInpF6
	dc.w	$8b8
	dc.w	$6
	dc.w	$fa1f
	dc.w	$8b8
	dc.w	$6
	dc.w	$fa1d
;
;	PConfOutp(F,7);		//  MAX186 A/D shutdown
^^;			PConfOutpF7
	dc.w	$8b8
	dc.w	$7
	dc.w	$fa1f
	dc.w	$8f8
	dc.w	$7
	dc.w	$fa1d
;	PClear(F,7);
^;			PClearF7
	dc.w	$8b8
	dc.w	$7
	dc.w	$fa19
;
;	//  68332 TPU PINS
;	TPUGetPin (0);	    	//  1 PPS input from CM
^^^	clr.w	-(sp)
	jsr	_TPUGetPin
;	TPUSetPin(1, CLR);    	//  Clock Sync Output to CM
^	clr.w	-(sp)
	move.w	#1,-(sp)
	jsr	_TPUSetPin
;	TPUSetPin(2, SET);		//  Connection to PS board; CLR to turn on -Sensor 
^	move.w	#65535,-(sp)
	move.w	#2,-(sp)
	jsr	_TPUSetPin
;	TPUSetPin(3, SET);		//  Connection to PS board; CLR to turn on +Sensor 
^	move.w	#65535,-(sp)
	move.w	#3,-(sp)
	jsr	_TPUSetPin
;	TPUSetPin(4, SET);		//  Connection to PS board; CLR to turn on -Analog
^	move.w	#65535,-(sp)
	move.w	#4,-(sp)
	jsr	_TPUSetPin
;	TPUSetPin(5, SET);		//  Connection to PS board; CLR to turn on +Analog
^	move.w	#65535,-(sp)
	move.w	#5,-(sp)
	jsr	_TPUSetPin
;	TPUSetPin(6, CLR);    	//  Connection to MS board; unused IDE reset line
^	clr.w	-(sp)
	move.w	#6,-(sp)
	jsr	_TPUSetPin
;	TPUGetPin(7);	    	//  Connection to CLKEN pin of TT8; set by jumper.
^	move.w	#7,-(sp)
	jsr	_TPUGetPin
;							//  Configure as an input.
;	TPUSetPin(9, CLR);    	//  Spare RS232 Tx3 line
^^	clr.w	-(sp)
	move.w	#9,-(sp)
	jsr	_TPUSetPin
;	TPUSetPin(10, CLR);   	//  Spare RS232 Rx3 line
^	clr.w	-(sp)
	move.w	#10,-(sp)
	jsr	_TPUSetPin
;	TPUSetPin(11, CLR);   	//  Spare RS232 Tx4 line
^	clr.w	-(sp)
	move.w	#11,-(sp)
	jsr	_TPUSetPin
;	TPUSetPin(12, CLR);   	//  Spare RS232 Rx3 line
^	clr.w	-(sp)
	move.w	#12,-(sp)
	jsr	_TPUSetPin
;	//  next two are nominally no connects;  I've taken state configuration
;	//  info and comments from the Onset LPSleep example.
;	TPUSetPin(13, SET);   	//  Txd2
^^^	move.w	#65535,-(sp)
	move.w	#13,-(sp)
	jsr	_TPUSetPin
;	TPUGetPin(14);      	//  Rxd2 (active in shutdown)
^	move.w	#14,-(sp)
	jsr	_TPUGetPin
;	//  REVIEW - should add weak pull-ndown to hardware so we can configure
;	//  as an input all the time without worrying about excess current draw
;	//  For now, configure as an input regardless of what it does to current.
;	TPUGetPin(15);		   	//  connected to F, 6
^^^^	move.w	#15,-(sp)
	jsr	_TPUGetPin
	lea	52(sp),sp
;
;	return;
^^.10
	rts
;	//  Next pin state taken from Onset's LPSleep example
;	//  REVIEW - call skip about this
;	//  This is currently skipped because it kills the EEPROM read routines.
;	TPUSetPin(8, CLR);    	//  -IRQ3 to flash LED (?)
^^^^	clr.w	-(sp)
	move.w	#8,-(sp)
	jsr	_TPUSetPin
;}
^	add.w	#4,sp
.9
;
;
;
;
;
# 190
|
~ _low_power_IRQ1_handler * "(v"
~ _low_power_setup_IRQ1 * "(v"
~ 'system_user'
~ 2 4 46
~ task_handle 0 "i"
~ rtfs_errno 2 "i"
~ dfltdrv 4 "i"
~ lcwd 6 "[10#v"
~ PSYSTEM_USER "#:" 2
~ SYSTEM_USER ":" 2
~ 'finode'
~ 'ddrive'
~ 'fatswap'
~ 5 7 300
~ n_to_swap 0 "I"
~ n_blocks_used 2 "I"
~ n_blocks_total 4 "I"
~ pdirty 6 "[32C"
~ block_0_is_valid 38 "i"
~ data_map 40 "[256C"
~ data_array 296 "#C"
~ 4 37 484
~ opencount 0 "i"
~ volume_serialno 2 "L"
~ volume_label 6 "[14C"
~ drv_serial_number 20 "[62C"
~ partition_base 82 "L"
~ partition_size 86 "L"
~ partition_type 90 "C"
~ current_power_count 92 "L"
~ bytespcluster 96 "I"
~ byte_into_cl_mask 98 "L"
~ fasize 102 "I"
~ rootblock 104 "L"
~ firstclblock 108 "L"
~ driveno 112 "I"
~ maxfindex 114 "L"
~ fatblock 118 "L"
~ secproot 122 "I"
~ fat_is_dirty 124 "i"
~ fat_swap_structure 126 ":" 5
~ bootaddr 426 "L"
~ oemname 430 "[9c"
~ bytspsector 440 "I"
~ secpalloc 442 "C"
~ log2_secpalloc 444 "I"
~ secreserved 446 "I"
~ numfats 448 "C"
~ numroot 450 "I"
~ numsecs 452 "L"
~ mediadesc 456 "C"
~ secpfat 458 "L"
~ secptrk 462 "I"
~ numhead 464 "I"
~ numhide 466 "L"
~ free_contig_base 470 "L"
~ free_contig_pointer 474 "L"
~ known_free_clusters 478 "l"
~ infosec 482 "I"
~ 'segdesc'
~ 6 4 14
~ nsegs 0 "i"
~ segindex 2 "i"
~ ncksum 4 "C"
~ segblock 6 "[2L"
~ 3 18 72
~ fname 0 "[8C"
~ fext 8 "[3C"
~ fattribute 11 "C"
~ resarea 12 "[8C"
~ fclusterhi 20 "I"
~ ftime 22 "I"
~ fdate 24 "I"
~ fcluster 26 "I"
~ fsize 28 "L"
~ alloced_size 32 "L"
~ opencount 36 "i"
~ openflags 38 "i"
~ my_drive 40 "#:" 4
~ my_block 44 "L"
~ my_index 48 "i"
~ pnext 50 "#:" 3
~ pprev 54 "#:" 3
~ s 58 ":" 6
~ 'drobj'
~ 'dirblk'
~ 8 3 10
~ my_frstblock 0 "L"
~ my_block 4 "L"
~ my_index 8 "i"
~ 'blkbuff'
~ 9 7 532
~ pnext 0 "#:" 9
~ lru 4 "L"
~ pdrive 8 "#:" 4
~ blockno 12 "L"
~ use_count 16 "i"
~ pad_to_4_align 18 "i"
~ data 20 "[512C"
~ 7 5 24
~ pdrive 0 "#:" 4
~ finode 4 "#:" 3
~ blkinfo 8 ":" 8
~ isroot 18 "i"
~ pblkbuff 20 "#:" 9
~ 'datestr'
~ 10 2 4
~ date 0 "I"
~ time 2 "I"
~ 'pc_file'
~ 11 8 24
~ pobj 0 "#:" 7
~ flag 4 "I"
~ fptr 6 "L"
~ fptr_cluster 10 "L"
~ fptr_block 14 "L"
~ needs_flush 18 "i"
~ is_free 20 "i"
~ at_eof 22 "i"
~ 'block_alloc'
~ 12 1 512
~ core 0 "[512C"
~ 'ptable'
~ 'ptable_entry'
~ 14 8 16
~ boot 0 "C"
~ s_head 1 "C"
~ s_cyl 2 "I"
~ p_typ 4 "C"
~ e_head 5 "C"
~ e_cyl 6 "I"
~ r_sec 8 "L"
~ p_size 12 "L"
~ 13 2 66
~ ents 0 "[4:" 14
~ signature 64 "I"
~ PTABLE ":" 13
~ PTABLE_ENTRY ":" 14
~ 'format_dec_tree'
~ 15 3 8
~ sec_p_alloc 0 "I"
~ ents_p_root 2 "I"
~ n_blocks 4 "L"
~ FORMAT_DEC_TREE ":" 15
~ PC_FILE ":" 11
~ DROBJ ":" 7
~ BLKBUFF ":" 9
~ DIRBLK ":" 8
~ FINODE ":" 3
~ SEGDESC ":" 6
~ 'lfninode'
~ 16 8 32
~ lfnorder 0 "C"
~ lfname1 1 "[10C"
~ lfnattribute 11 "C"
~ lfnres 12 "C"
~ lfncksum 13 "C"
~ lfname2 14 "[12C"
~ lfncluster 26 "I"
~ lfname3 28 "[4C"
~ LFNINODE ":" 16
~ 'dosinode'
~ 17 9 32
~ fname 0 "[8C"
~ fext 8 "[3C"
~ fattribute 11 "C"
~ resarea 12 "[8C"
~ fclusterhi 20 "I"
~ ftime 22 "I"
~ fdate 24 "I"
~ fcluster 26 "I"
~ fsize 28 "L"
~ DOSINODE ":" 17
~ DDRIVE ":" 4
~ FATSWAP ":" 5
~ BLOCK_ALLOC ":" 12
~ CLUSTERTYPE "L"
~ 'ide_control'
~ 'ide_drive_desc'
~ ''
~ 'atapi_packet_desc'
~ 'transfer_length'
~ 22 2 2
~ msb 0 "C"
~ lsb 1 "C"
~ 21 8 14
~ op_code 0 "C"
~ lun 1 "C"
~ lba 2 "L"
~ reserved1 6 "C"
~ transfer_length 8 ":" 22
~ reserved2 10 "C"
~ reserved3 11 "C"
~ reserved4 12 "C"
~ 'atapi_mode_sense_packet_desc'
~ 23 11 14
~ op_code 0 "C"
~ lun 1 "C"
~ pc_code_page 2 "C"
~ reserved1 3 "C"
~ reserved2 4 "C"
~ reserved3 5 "C"
~ reserved4 6 "C"
~ transfer_length 8 ":" 22
~ reserved5 10 "C"
~ reserved6 11 "C"
~ reserved7 12 "C"
~ 'atapi_format_unit_packet_desc'
~ 24 5 12
~ op_code 0 "C"
~ defect_list_format 1 "C"
~ track_number 2 "C"
~ interleave 3 "[2C"
~ reserved 5 "[7C"
~ 'atapi_old_format_unit_packet_de'
~ 25 7 12
~ op_code 0 "C"
~ reserved1 1 "C"
~ medium 2 "C"
~ reserved2 3 "[3C"
~ control_byte 6 "C"
~ track_number 7 "C"
~ reserved3 8 "[4C"
~ 'atapi_start_stop_packet_desc'
~ 26 6 12
~ op_code 0 "C"
~ lun 1 "C"
~ reserved1 2 "C"
~ reserved2 3 "C"
~ eject 4 "C"
~ reserved 5 "[7C"
~ 20 5 14
~ generic 0 ":" 21
~ mode_sense 0 ":" 23
~ format 0 ":" 24
~ old_format 0 ":" 25
~ start_stop 0 ":" 26
~ 19 17 48
~ num_heads 0 "C"
~ sec_p_track 1 "C"
~ sec_p_cyl 2 "I"
~ num_cylinders 4 "I"
~ max_multiple 6 "C"
~ supports_lba 8 "i"
~ total_lba 10 "L"
~ enable_mapping 14 "i"
~ media_changed 16 "i"
~ volume_start 18 "L"
~ volume_end 22 "L"
~ protocol 26 "C"
~ atapi_packet 28 ":" 20
~ atapi_packet_size 42 "I"
~ media_descriptor 44 "C"
~ medium_type_code 45 "C"
~ allocation_unit 46 "C"
~ 18 29 138
~ opencount 0 "i"
~ register_file_address 2 "#I"
~ interrupt_number 6 "i"
~ controller_number 8 "i"
~ command_complete 10 "i"
~ error_code 12 "I"
~ timer 14 "I"
~ block_size 16 "C"
~ sectors_remaining 18 "I"
~ user_address 20 "#C"
~ drive 24 "[2:" 19
~ vo_write_precomp 120 "C"
~ vo_sector_count 121 "C"
~ vo_sector_number 122 "C"
~ vo_cyl_low 123 "C"
~ vo_cyl_high 124 "C"
~ vo_drive_head 125 "C"
~ vo_feature 126 "C"
~ vo_command 127 "C"
~ vo_dig_out 128 "C"
~ vi_error 129 "C"
~ vi_sector_count 130 "C"
~ vi_sector_number 131 "C"
~ vi_cyl_low 132 "C"
~ vi_cyl_high 133 "C"
~ vi_drive_head 134 "C"
~ vi_status 135 "C"
~ vi_alt_status 136 "C"
~ vi_drive_addr 137 "C"
~ PIDE_CONTROLLER "#:" 18
~ IDE_CONTROLLER ":" 18
~ IDE_DRIVE_DESC ":" 19
~ ATAPI_PACKET ":" 20
~ ATAPI_PACKET_DESC ":" 21
~ ATAPI_OLD_FORMAT_UNIT_PACKET_DE ":" 25
~ ATAPI_START_STOP_UNIT_PACKET_DE ":" 26
~ ATAPI_FORMAT_UNIT_PACKET_DESC ":" 24
~ ATAPI_MODE_SENSE_PACKET_DESC ":" 23
~ 'Himawari_format_descriptor'
~ 'Himawari_defect_list_header'
~ 28 4 4
~ reserved 0 "C"
~ control_byte 1 "C"
~ length_msb 2 "C"
~ length_lsb 3 "C"
~ 'Himawari_formattable_capacity_d'
~ 29 3 8
~ number_of_blocks 0 "[4C"
~ reserved 4 "C"
~ block_length 5 "[3C"
~ 27 2 12
~ dlheader 0 ":" 28
~ capacity_descriptor 4 ":" 29
~ HIMAWARI_FORMAT_DESCRIPTOR ":" 27
~ HIMAWARI_FORMATTABLE_CAPACITY_D ":" 29
~ HIMAWARI_DEFECT_LIST_HEADER ":" 28
~ 'himawari_flexible_disk_page'
~ 30 17 32
~ page_code 0 "C"
~ page_length 1 "C"
~ transfer_rate_msb 2 "C"
~ transfer_rate_lsb 3 "C"
~ number_of_heads 4 "C"
~ sectors_per_track 5 "C"
~ bytes_per_cylinder_msb 6 "C"
~ bytes_per_cylinder_lsb 7 "C"
~ number_of_cylinders_msb 8 "C"
~ number_of_cylinders_lsb 9 "C"
~ reserved1 10 "[10C"
~ motor_off_delay 20 "C"
~ swp_swpp 21 "C"
~ reserved2 22 "[6C"
~ medium_rotation_rate_msb 28 "C"
~ medium_rotation_rate_lsb 29 "C"
~ reserved3 30 "[2C"
~ HIMAWARI_FLEXIBLE_DISK_PAGE ":" 30
~ TRANSFER_LENGTH ":" 22
~ BLOCKT "L"
~ _disk_power_off * "(v"
~ 'fmtparms'
~ 31 15 52
~ oemname 0 "[9c"
~ secpalloc 9 "C"
~ secreserved 10 "I"
~ numfats 12 "C"
~ secpfat 14 "L"
~ fmttype 18 "C"
~ numhide 20 "L"
~ numroot 24 "I"
~ mediadesc 26 "C"
~ secptrk 28 "I"
~ numhead 30 "I"
~ numcyl 32 "I"
~ physical_drive_no 34 "C"
~ binary_volume_label 36 "L"
~ text_volume_label 40 "[12c"
~ FMTPARMS ":" 31
~ 'freelistinfo'
~ 32 2 8
~ cluster 0 "L"
~ nclusters 4 "l"
~ FREELISTINFO ":" 32
~ 'fileseginfo'
~ 33 2 8
~ block 0 "l"
~ nblocks 4 "l"
~ FILESEGINFO ":" 33
~ 'stat'
~ 34 12 38
~ st_dev 0 "i"
~ st_ino 2 "i"
~ st_mode 4 "L"
~ st_nlink 8 "i"
~ st_rdev 10 "i"
~ st_size 12 "L"
~ st_atime 16 ":" 10
~ st_mtime 20 ":" 10
~ st_ctime 24 ":" 10
~ st_blksize 28 "l"
~ st_blocks 32 "l"
~ fattribute 36 "C"
~ STAT ":" 34
~ 'dstat'
~ 35 14 578
~ fname 0 "[9c"
~ fext 9 "[4c"
~ lfname 13 "[256C"
~ filename 269 "[15c"
~ fattribute 284 "C"
~ ftime 286 "I"
~ fdate 288 "I"
~ fsize 290 "L"
~ driveno 294 "i"
~ pname 296 "[9C"
~ pext 305 "[4C"
~ path 309 "[260c"
~ pobj 570 "#v"
~ pmom 574 "#v"
~ DSTAT ":" 35
~ DATESTR ":" 10
~ PCFD "i"
~ UNICODE "I"
~ IOADDRESS "#I"
~ PFCBYTE "#C"
~ PFCCHAR "#c"
~ PFVOID "#v"
~ PFCHAR "#c"
~ PFDWORD "#L"
~ PFLONG "#l"
~ PFWORD "#I"
~ PFINT "#i"
~ PFBYTE "#C"
~ BOOLEAN "i"
~ dword "L"
~ word "I"
~ byte "C"
~ _prep_pins_low_power * "(v"
~ _low_power_start_sleep * "(v"
~ ''
~ 36 2 8
~ quot 0 "l"
~ rem 4 "l"
~ ''
~ 37 2 4
~ quot 0 "i"
~ rem 2 "i"
~ ldiv_t ":" 36
~ div_t ":" 37
~ '__stdio'
~ 38 8 22
~ _bp 0 "#C"
~ _bend 4 "#C"
~ _buff 8 "#C"
~ _flags 12 "I"
~ _unit 14 "c"
~ _bytbuf 15 "C"
~ _buflen 16 "L"
~ _tmpnum 20 "I"
~ _printf * "(i"
~ FILE ":" 38
~ fpos_t "l"
~ va_list "#c"
~ ''
~ 39 13 46
~ libVersion 0 "l"
~ ramBase 4 "#c"
~ ramSize 8 "l"
~ ramWaits 12 "i"
~ flashBase 14 "#c"
~ flashSize 18 "l"
~ flashWaits 22 "i"
~ heapBot 24 "#v"
~ heapTop 28 "#v"
~ heapCur 32 "#v"
~ statusReg 36 "I"
~ vectorBase 38 "#v"
~ stackPtr 42 "#v"
~ infoAction "c"
~ TT8info ":" 39
~ _TPUGetPin * "(i"
~ _TPUSetPin * "(v"
~ UeeErr "c"
~ ''
~ 40 2 8
~ secs 0 "L"
~ ticks 4 "l"
~ _StopWatchTime * "(L"
~ _StopWatchStart * "(v"
~ time_tt ":" 40
~ _SerActivate * "(v"
~ _SerShutDown * "(v"
~ _SerByteAvail * "(i"
~ XmdmErr "c"
~ _Stop * "(v"
~ FlashErr "c"
~ _InstallHandler * "(#(v"
~ ''
~ 41 4 24
~ eSR 0 "I"
~ ePC 2 "L"
~ vectofs 6 "I"
~ states 8 "[8I"
~ ExcCFramePtr "#:" 1
~ ExcCFrame ":" 1
~ ExcStackFrame ":" 41
~ 'tm'
~ 42 10 20
~ tm_sec 0 "i"
~ tm_min 2 "i"
~ tm_hour 4 "i"
~ tm_mday 6 "i"
~ tm_mon 8 "i"
~ tm_year 10 "i"
~ tm_wday 12 "i"
~ tm_yday 14 "i"
~ tm_isdst 16 "i"
~ tm_hsec 18 "i"
~ time_t "L"
~ clock_t "L"
~ wchar_t "c"
~ ptrdiff_t "l"
~ size_t "L"
~ PSPErr "c"
~ _PRAM "[8I"
~ bool "c"
~ vfptr "#(v"
~ ptr "#c"
~ ulpv "#L"
~ ulong "L"
~ uspv "#I"
~ unsint "I"
~ ushort "I"
~ ucpv "#C"
~ uchar "C"
	xref	_disk_power_off
	xref	_printf
	xref	_TPUGetPin
	xref	_TPUSetPin
	xref	_StopWatchTime
	xref	_StopWatchStart
	xref	_SerActivate
	xref	_SerShutDown
	xref	_SerByteAvail
	xref	_Stop
	xref	_InstallHandler
	xref	.begin
	dseg
	end
