MIXAL
All Classes Files Functions Variables Typedefs Enumerations Friends Pages
Public Member Functions | List of all members
mixal::IODeviceTape Class Reference

#include <io.h>

Inheritance diagram for mixal::IODeviceTape:
mixal::IODeviceStorage mixal::IODevice

Public Member Functions

 IODeviceTape (int32_t storageSize=4096)
 
void control (int32_t operation) final
 
- Public Member Functions inherited from mixal::IODeviceStorage
 IODeviceStorage (int32_t storageSize=4096)
 
 IODeviceStorage (const IODeviceStorage &)=default
 
IODeviceStorageoperator= (const IODeviceStorage &)=default
 
bool ready (int32_t elapsed) override
 
void read (ComputerWord *memory, int32_t address) override
 
void write (const ComputerWord *memory, int32_t address) override
 
ComputerWordwordAt (int32_t index) override
 
- Public Member Functions inherited from mixal::IODevice
 IODevice (int32_t blockSize, bool allowRead, bool allowWrite)
 
IODeviceType type () const
 
int blockSize () const
 
bool allowRead () const
 
bool allowWrite () const
 

Additional Inherited Members

- Protected Attributes inherited from mixal::IODeviceStorage
IODeviceStatus _status
 
int32_t _address
 
int32_t _locator
 
ComputerWord_memory
 
std::vector< ComputerWord_buffer
 
std::vector< ComputerWord_storage
 
- Protected Attributes inherited from mixal::IODevice
IODeviceType _type
 
int32_t _blockSize
 
bool _allowRead
 
bool _allowWrite
 
int32_t _timestamp
 
double _readyRate
 

Detailed Description

Magnetic tape.

Definition at line 110 of file io.h.

Member Function Documentation

◆ control()

void mixal::IODeviceTape::control ( int32_t  operation)
finalvirtual

If M = 0, the tape is rewound. If M < 0 the tape is skipped backward −M blocks, or to the beginning of the tape. If M > 0, the tape is skipped forward;

Reimplemented from mixal::IODevice.

Definition at line 75 of file io.cpp.

75  {
76  if (operation == 0) {
77  _locator = 0;
78  } else {
79  _locator += operation * _blockSize;
80  _locator = std::max(0, _locator);
81  }
82 }

References mixal::IODevice::_blockSize.


The documentation for this class was generated from the following files:
mixal::IODevice::_blockSize
int32_t _blockSize
Definition: io.h:74