These microcontrollers are supported by GCBASIC compliler. Microchip PIC-AS ( as of version 3.10 ) do not support. The microcontrollers will require validation in terms of all the capabilities but the basic complilation process is supported.
New microcontrollers added!! PIC16F (13276 family) 16f13276 16f13275 16f13256 16f13255 16f13254 PIC18F (Q35 family) 18f56q35 18f55q35 18f54q35 18f46q35 18f45q35 18f44q35 18f26q35 18f25q35 18f24q35
New microcontrollers added!! PIC16F (13276 family) 16f13276 16f13275 16f13256 16f13255 16f13254 PIC18F (Q35 family) 18f56q35 18f55q35 18f54q35 18f46q35 18f45q35 18f44q35 18f26q35 18f25q35 18f24q35
You have to write a block. That is the only method.
And, no ASM. To write this in ASM would take weeks, months. There are very very few cases where ASM is the answer in GCBASIC. With that said, there will be some edge cases where i would recommend/approve.
Using your methid.You would need to clear the buffer tyuningYou would need to clear the buffer to ensure it was at a known value. The buffer ram will be random values.
Take this sub from system.h and adapt. Sub PFMWrite (in _PFM_ADDR as long , in _PFM_DataWord as Word ) //~ Tested on 18F16Q41;q43 Dim _PFM_BlockNum, _PFM_Offset as long Dim _PFM_Buffer(SAF_ROWSIZE_BYTES) //~ Writes a Word of data [_PFM_PFM_DataOut] //~ at relative location [_PFM_Address] between 0 and extent of page //~ //~ The existing data in the row of [_PFM_Address] is preserved ; Calculate block number _PFM_BlockNum = _PFM_ADDR / SAF_ROWSIZE_BYTES ; Calculate offset in block/row _PFM_Offset...
That would be a strange approach. Why not update the buffer directly and write the buffer? No need for Asm.