ORG 0x1000
db 0x3A, 0x3C
SinusSequence:
db 0x3C, 0x3E, 0x41, 0x43, 0x45, 0x48, 0x4A, 0x4C, 0x4F, 0x51, 0x53, 0x55, 0x57, 0x59, 0x5C, 0x5E, 0x5F, 0x61, 0x63, 0x65
db 0x67, 0x68, 0x6A, 0x6B, 0x6D, 0x6E, 0x6F, 0x71, 0x72, 0x73, 0x74, 0x74, 0x75, 0x76, 0x76, 0x77, 0x77, 0x78, 0x78, 0x78
CosinusSequence:
db 0x78, 0x78, 0x78, 0x78, 0x77, 0x77, 0x76, 0x76, 0x75, 0x74, 0x73, 0x72, 0x71, 0x70, 0x6F, 0x6D, 0x6C, 0x6B, 0x69, 0x67
db 0x66, 0x64, 0x62, 0x60, 0x5E, 0x5D, 0x5B, 0x58, 0x56, 0x54, 0x52, 0x50, 0x4E, 0x4B, 0x49, 0x47, 0x44, 0x42, 0x40, 0x3D
db 0x3B, 0x38, 0x36, 0x34, 0x31, 0x2F, 0x2D, 0x2A, 0x28, 0x26, 0x24, 0x22, 0x20, 0x1D, 0x1B, 0x1A, 0x18, 0x16, 0x14, 0x12
db 0x11, 0x0F, 0x0D, 0x0C, 0x0B, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00
db 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x04, 0x04, 0x05, 0x06, 0x07, 0x09, 0x0A, 0x0B, 0x0D, 0x0E, 0x10, 0x11
db 0x13, 0x15, 0x17, 0x19, 0x1A, 0x1C, 0x1F, 0x21, 0x23, 0x25, 0x27, 0x29, 0x2C, 0x2E, 0x30, 0x33, 0x35, 0x37, 0x3A, 0x3C
db 0x3C, 0x3E, 0x41, 0x43, 0x45, 0x48, 0x4A, 0x4C, 0x4F, 0x51, 0x53, 0x55, 0x57, 0x59, 0x5C, 0x5E, 0x5F, 0x61, 0x63, 0x65
db 0x67, 0x68, 0x6A, 0x6B, 0x6D, 0x6E, 0x6F, 0x71, 0x72, 0x73, 0x74, 0x74, 0x75, 0x76, 0x76, 0x77, 0x77, 0x78, 0x78, 0x78
db 0x78, 0x78, 0x78, 0x78, 0x77, 0x77, 0x76, 0x76, 0x75, 0x74, 0x73, 0x72, 0x71, 0x70, 0x6F, 0x6D, 0x6C, 0x6B, 0x69, 0x67
db 0x66, 0x64, 0x62, 0x60, 0x5E, 0x5D, 0x5B, 0x58, 0x56, 0x54, 0x52, 0x50, 0x4E, 0x4B, 0x49, 0x47, 0x44, 0x42, 0x40, 0x3D
db 0x3B, 0x38, 0x36, 0x34, 0x31, 0x2F, 0x2D, 0x2A, 0x28, 0x26, 0x24, 0x22, 0x20, 0x1D, 0x1B, 0x1A, 0x18, 0x16, 0x14, 0x12
db 0x11, 0x0F, 0x0D, 0x0C, 0x0B, 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00
db 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x04, 0x04, 0x05, 0x06, 0x07, 0x09, 0x0A, 0x0B, 0x0D, 0x0E, 0x10, 0x11
db 0x13, 0x15, 0x17, 0x19, 0x1A, 0x1C, 0x1F, 0x21, 0x23, 0x25, 0x27, 0x29, 0x2C, 0x2E, 0x30, 0x33, 0x35, 0x37, 0x3A, 0x3C
db 0x3C, 0x3E, 0x41, 0x43, 0x45, 0x48, 0x4A, 0x4C, 0x4F, 0x51, 0x53, 0x55, 0x57, 0x59, 0x5C, 0x5E, 0x5F, 0x61, 0x63, 0x65
db 0x67, 0x68, 0x6A, 0x6B, 0x6D, 0x6E, 0x6F, 0x71, 0x72, 0x73, 0x74, 0x74, 0x75, 0x76, 0x76, 0x77, 0x77, 0x78, 0x78, 0x78
db 0x78, 0x78, 0x78, 0x78, 0x77, 0x77, 0x76, 0x76, 0x75, 0x74, 0x73, 0x72, 0x71, 0x70, 0x6F, 0x6D, 0x6C, 0x6B, 0x69, 0x67
db 0x66, 0x64, 0x62, 0x60, 0x5E, 0x5D, 0x5B, 0x58, 0x56, 0x54, 0x52, 0x50, 0x4E, 0x4B, 0x49, 0x47, 0x44, 0x42, 0x40, 0x3D
The program loops through the data from 0...159 values. TBLPTR is used to lookup the data (y-position).
For drawing a single pixel, the ROWS COLS are set to [x,y], [x+1, y] which leaves an are of 2 pixels.
Three bytes of color are sent: RRRRGGGG BBBBRRRR GGGGBBBB => First byte contains RED and GREEN values of pixel 1, second byte contains BLUE value of pixel 1 and RED value of pixel 2, third byte contains GREEN and BLUE values of pixel 2.